1 Introduction
ceti.py is a smart tool to calculate electron transfer intergal by means of Gaussian and calc_coupling.x. The recommandtion Gaussian version is Gaussian16 and calc_coupling.x is a open source program can be found from github (https://github.com/snljty/charge_transfer_integral). In addition, calc_coupling.x uses Multiwfn (http://sobereva.com/multiwfn) in calucation. Please correctly install needed programs. If researcher would like to apply ceti.py into their works, please cantant Xi Chen (xxc397@student.bham.ac.uk) for relevant information and codes. Any questions about relevant content are welcomed as well, and please titled ‘ceti.py’ in the email.
In charge transfer study on discotic liquid crystal, electron transfer intergal stands for the coupling constant J in Marcus’s equation as eqution (1).
\begin{equation} k_{ET} = {\frac{J^2}{\hbar}} {\sqrt{\frac{\pi}{{\lambda}k_{B}T}}} {\exp[-{\frac{({\Delta}G_{ij}+{\lambda})^2}{4{\lambda}k_{B}T}}]} \end{equation}
2 Usage for calc_coupling.x
Currently, ceti.py uses calc_coupling.x to acheive electron transfer integral calculation. In addition, author is also developing his own program to achieve the electron transfer integral calculation, which is planned to be added into ceti.py version 1.0.
Get down to business, after install calc_coupling.x, user can run ‘calc_coupling.x -h’ for help information. The executing command is as follows. For calc_coupling.x, we need to prepare the fchk file for dimer, monomer1 and monomer2. They can generate from corresponding Gaussian check point files after Gaussian calculations. Notably, ‘IOp(3/32=2) NoSymmetry’ is necessary in Gaussian input.
calc_coupling.x -d [dimer.fchk] -m1 [monomer1.fchk] -m2 [monomer2.fchk]
3 Usage for ceti.py
(0) Help information.
User can run ceti.py -h to check help information.
Usage:
python ceti.py -s [step] -i [input] -c [optical] -t [distance] -r[degree] -a[degree] -b [degree] -o [dirname]
Options:
-s: choose execute step
1: construct dimer from monomer
2: calculate electron transfer integral
3: summary the result for plot
-i: input file name | default: monomer1.gjf
-c: confirm molecular centre | default: all atoms
-t: copy a translated monomer along vertical axis | default: 3.6 Angstrom
-r: rotate copied monomer each degree | default: 0 degree
-a: rotate range from a | default: 0 degree
-b: rotate range to b | default: 0 degree
-o: output path | default: calculation
(1) Step1: construct dimer from monomer
In first step, ceti.py aims to quickly construct Gaussian input files for rotated dimer and second monomer from offered monomer Gaussian input file. User need to prepare a Gaussian input file as input file. The Gaussian input file should records used calculation cores as ‘%nproc’ or ‘%nprocshared’, calculation memory as ‘%mem’, calculation method following ‘#’, correct charge and multiplicity. It should be noticed ‘IOp(3/32=2) NoSymmetry’ key words should be added in calculation mthod. In addition, check point is not asked in this file since ceti.py will obtain check point file name from options for new generated Gaussian ainput. Following is an input example of ethylene as ethylene.gjf.
%chk=ethylene.chk
%nproc=28
%mem=40GB
#p b3lyp em=gd3bj 6-311g** nosymm IOp(3/32=2)
Title Card Required
0 1
C -2.00169549 1.22353983 -0.02605876
H -2.53754249 2.14969747 -0.02622306
H -2.53584804 0.29640389 -0.02606507
C -0.64649608 1.22477889 -0.02584430
H -0.11064908 0.29862125 -0.02568282
H -0.11234353 2.15191483 -0.02583649
Execute following command, ceti.py will obtain calculation information from input example and generate Gaussian input files according to options. Then all Gaussian input files can be found in the file chosen by ‘-o’. Herein, the author recommond using following command to submit Gaussian jobs, which will be convient for ceti.py dealing with calculation results.
$ python ceti.py -s 1 -i ethylene.gjf -c 1,4 -t 2 -r 10 -a 0 -b 360 -o calculation
# -s 1 | first step to construct dimer structure
# -i ethylene.gjf | inpit filename is ethylene.gjf
# -c 1,4 | use 1st and 4th atom to confirm molecular centre (two carbon atoms in ethylene)
# -t 2 | making distance betweem inital monomer plane and tranlated monomer plane is 2 Angstrom
# -r 10 | rotate translated monomer each 10 degree
# -a 0 | rotate from 0 degree
# -b 360 | rotate to 360 degree
# -o calculation | collect all generated Gaussian input files into caluclation/
# Executing information
Read following information from input file
method: #p b3lyp em=gd3bj 6-311g** nosymm IOp(3/32=2)
nprocshared: 28
mem: 40GB
charge: 0
multiplicity: 1
atoms number: 6
# Gaussian jobs submission
for file in *.gjf; do
if [ -f ${file} ]; then
folder_name=${file%.gjf}
if [ ! -d ${folder_name} ]; then
mkdir ${folder_name}
fi
mv ${file} ${folder_name}
cd ${folder_name}
g16 ${file}
cd ..
fi
done