Quick Start
This chapter introduces the basic use of the various functions of the BDF, and gives basic examples of calculations and analysis of data readings for specific calculation functions.
This chapter introduces the basic use of the various functions of the BDF, and gives basic examples of calculations and analysis of data readings for specific calculation functions.
First example RHF calculation for H2O molecules
Hartree-Fock is the most basic algorithm in quantum chemistry. In this subsection, we will guide the user through a BDF calculation and analyze the input and output information by using an example of Hartree-Fock calculation for a water molecule. Here, we first give the concise inputs to the BDF, and in order to understand the difference between the concise and advanced input modes of the BDF, we also give the advanced input file for each concise input.
Preparing Inputs
First, prepare the input file for the Hartree-Fock calculation of the single-point energy of water molecules, named h2o.inp
, with the following input:
#!bdf.sh
HF/3-21G
Geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # input bond length with the default unit angstrom
End geometry
- The input is interpreted as follows.:
The first line must start with
#!
followed by a string namedbdf.sh
, this can be any letter and array of words into a string, can not contain special characters other than.
in addition to the special characters. The first line is the system reservation line, the user can use this string to mark the calculation task.The second line,
HF/3-21G
is the calculation parameter control line for the BDF.HF
stands for Hartree-Fock, and3-21G
specifies that the calculation uses the3-21G
basis group. The key parameter control line can be multiple consecutive lines.The third row is an empty line and can be ignored. It is entered here to distinguish between different inputs and to enhance the readability of the input, and is recommended to be kept by the user.
The fourth and tenth lines are
Geometry
andEnd geometry
, respectively, marking the start and end of the molecular geometry input, and the default unit of coordinates is angstrom.The fifth through ninth lines enter the structure of the water molecule in the internal coordinate mode. (See Internal coordinate format for molecular structure input for details)
This simple input corresponds to the advanced BDF input as follows:
$compass
Geometry
O
H 1 1.0
H 1 1.0 2 109.
End geometry
Basis
3-21g # set basis set as 3-21g
$end
$xuanyuan
$end
$scf
RHF # Restrictive Hartree-Fock Method
Charge # The charge of the molecule is set to 0, and the default calculation is for neutral molecules with zero charge
0
Spinmulti # spin-multiplicity 2S+1,the default calculation is for double electron system
1
$end
As can be seen from the advanced input, BDF will execute the modules COMPASS , XUANYUAN and SCF in order to complete the single-point energy calculation of the water molecule.
COMPASS is used to read in the basic information such as molecular structure, basis functions, etc., determine the symmetry of the molecule, rotate the molecule to the standard orientation (Standard orientation,see the BDF use of group theory),generate the symmetry-adapted orbitals, etc.,
and store such information into the h2o.chkfil
。 The keywords in COMPASS are
The molecular structure defined between
Geometry
andEnd geometry
;
Basis
defines the basis group as3-21G
;
After executing the COMPASS module, BDF uses the XUANYUAN module to calculate the single and double electron integrals. Since the BDF defaults to the SCF method of repeated calculation of double electron integrals, i.e. Integral Direct SCF 。
Finally, the BDF executes the SCF module to complete the Hartree-Fock based self-consistent field calculation.
The
RHF
specifies the use of the restricted Hartree-Fock method;
Charge
specifies that the charge of the system is 0;
Spinmulti
specifies that the spin multi of the system is 1.
Here RHF
is a mandatory keyword, and Charge
and Spinmulti
can be ignored for the restricted method.
Performing the calculation
To perform the calculation, a shell script named run.sh
is prepared and placed in the directory where the input file h2o.inp
is located. The contents are as follows.
#!/bin/bash
# Set the BDF installation directory
export BDFHOME=/home/bsuo/bdf-pkg-pro
# Set the BDF temporary file storage directory
export BDF_TMPDIR=/tmp/$RANDOM
# Set the available heap memory to be unrestricted, which may be limited by system administration if computing in a supercomputing environment
ulimit -s unlimitted
# Set the available computation time to be unlimited, which may be limited by system administration if computing in a supercomputing environment
ulimit -t unlimitted
# Set the number of OpenMP parallel threads
export OMP_NUM_THREADS=4
# Set the OpenMP availale heap memory size
export OMP_STACKSIZE=1024M
# Perform BDF calculations, note that the default output is printed to standard output
$BDFHOME/sbin/bdfdrv.py -r h2o.inp
The above is a Bash Shell
script that defines some basic environment variables and executes the calculation using $BDFHOME/sbin/bdfdrv.py
. The environment variables defined in the script are:
BDFHOME
ariable specifies the directory where BDF is installed.
BDF_TMPDIR
variable specifies the BDF runtime temporary file storage directory.
ulimit -s unlimitted
sets the available stack area memory for the program to be unlimitted.
ulimit -t unlimitted
sets the program execution time to be unlimited.
export OMP_NUM_THREADS=4
sets the number of OpenMP threads available for parallel computation.
export OMP_STACKSIZE=1024M
sets the available Stack area memory for OpenMP to be 1024 megabytes.
The command to perform the calculation is
$ ./run.sh h2o.inp &>h2o.out&
Since BDF prints the default output to the standard output, we use the Linux redirect command here to redirect the standard output to the file h2o.out
。
Analysis of the calculation results
After the computation, the files h2o.out
, h2o.chkfil
, h2o.scforb
will be obtained.
h2o.out
is a text file, user readable, storing the BDF output printing information.
h2o.chkfil
is a binary file, not user readable, used to pass data between different modules of the BDF;h2o.chkfil
is a binary file, not user readable, used to pass data between different modules of the BDF.
h2o.scforb
is a text file, user-readable, storing information on molecular orbital factors, orbital energies, etc. for self-consistent iterations ofscf
, mainly used for restarting or as initial guess orbits for other scf calculations.
If the input file is in BDF simple input mode, h2o.out
will first give some basic user setup information,
|================== BDF Control parameters ==================|
1: Input BDF Keywords
soc=None scf=rhf skeleton=True xcfuntype=None
xcfun=None direct=True charge=0 hamilton=None
spinmulti=1
2: Basis sets
['3-21g']
3: Wavefunction, Charges and spin multiplicity
charge=0 nuclearcharge=10 spinmulti=1
5: Energy method
scf
7: Acceleration method
ERI
8: Potential energy surface method
energy
|============================================================|
Here, the
Input BDF Keywords
gives some basic control parameters.
Basis set
gives the basis set used for the calculation.
Wavefunction, Charges and spinmulti
gives the system charges, total nuclear charges and spin multiplicity (2S+1).
Energy method
gives the energy calculation method.
Accleration method
gives the two-electron integral calculation acceleration method.
Potential energy surface method
gives the potential energy surface calculation method, here it is a single point energy calculation.
Subsequently, the system executes the **COMPASS**module, which gives the following prompt:
|************************************************************|
Start running module compass
Current time 2021-11-18 11:26:28
|************************************************************|
The Cartesian coordinates of the input molecular structure in Bohr are then printed, as well as details of the basis functions for each type of atom
|---------------------------------------------------------------------------------|
Atom Cartcoord(Bohr) Charge Basis Auxbas Uatom Nstab Alink Mass
O 0.000000 0.000000 0.000000 8.00 1 0 0 0 E 15.9949
H 1.889726 0.000000 0.000000 1.00 2 0 0 0 E 1.0073
H -0.615235 1.786771 0.000000 1.00 2 0 0 0 E 1.0073
|----------------------------------------------------------------------------------|
End of reading atomic basis sets ..
Printing basis sets for checking ....
Atomic label: O 8
Maximum L 1 6s3p ----> 3s2p NBF = 9
#--->s function
Exp Coef Norm Coef Con Coef
322.037000 0.192063E+03 0.059239 0.000000 0.000000
48.430800 0.463827E+02 0.351500 0.000000 0.000000
10.420600 0.146533E+02 0.707658 0.000000 0.000000
7.402940 0.113388E+02 0.000000 -0.404454 0.000000
1.576200 0.355405E+01 0.000000 1.221562 0.000000
0.373684 0.120752E+01 0.000000 0.000000 1.000000
#--->p function
Exp Coef Norm Coef Con Coef
7.402940 0.356238E+02 0.244586 0.000000
1.576200 0.515227E+01 0.853955 0.000000
0.373684 0.852344E+00 0.000000 1.000000
Atomic label: H 1
Maximum L 0 3s ----> 2s NBF = 2
#--->s function
Exp Coef Norm Coef Con Coef
5.447178 0.900832E+01 0.156285 0.000000
0.824547 0.218613E+01 0.904691 0.000000
0.183192 0.707447E+00 0.000000 1.000000
Subsequently, the molecular symmetry is automatically determined and the rotation to the standard orientation mode is decided according to the user settings.
Auto decide molecular point group! Rotate coordinates into standard orientation!
Threshold= 0.10000E-08 0.10000E-11 0.10000E-03
geomsort being called!
gsym: C02V, noper= 4
Exiting zgeomsort....
Representation generated
Binary group is observed ...
Point group name C(2V) 4
User set point group as C(2V)
Largest Abelian Subgroup C(2V) 4
Representation generated
C|2|V| 2
Symmetry check OK
Molecule has been symmetrized
Number of symmery unique centers: 2
|---------------------------------------------------------------------------------|
Atom Cartcoord(Bohr) Charge Basis Auxbas Uatom Nstab Alink Mass
O 0.000000 0.000000 0.000000 8.00 1 0 0 0 E 15.9949
H 1.889726 0.000000 0.000000 1.00 2 0 0 0 E 1.0073
H -0.615235 1.786771 0.000000 1.00 2 0 0 0 E 1.0073
|----------------------------------------------------------------------------------|
Atom Cartcoord(Bohr) Charge Basis Auxbas Uatom Nstab Alink Mass
O 0.000000 -0.000000 0.219474 8.00 1 0 0 0 E 15.9949
H -1.538455 0.000000 -0.877896 1.00 2 0 0 0 E 1.0073
H 1.538455 -0.000000 -0.877896 1.00 2 0 0 0 E 1.0073
|----------------------------------------------------------------------------------|
Careful users may have noticed that the coordinates of the water molecules here are different from the ones entered. Finally, COMPASS generates symmetry adapted orbital and gives the integrable representations to which the dipole and quadrupole moments belong, printing a multiplication table for the C(2v)
point group, giving the total number of basis functions and the number of symmetry adapted orbital for each integrable representation.
Number of irreps: 4
IRREP: 3 4 1
DIMEN: 1 1 1
Irreps of multipole moment operators ...
Operator Component Irrep Row
Dipole x B1 1
Dipole y B2 1
Dipole z A1 1
Quadpole xx A1 1
Quadpole xy A2 1
Quadpole yy A1 1
Quadpole xz B1 1
Quadpole yz B2 1
Quadpole zz A1 1
Generate symmetry adapted orbital ...
Print Multab
1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
|--------------------------------------------------|
Symmetry adapted orbital
Total number of basis functions: 13 13
Number of irreps: 4
Irrep : A1 A2 B1 B2
Norb : 7 0 4 2
|--------------------------------------------------|
Here, the C(2v)
point group has 4 one-dimensional integrable representations, labeled A1, A2, B1, B2
, with 7, 0, 4, 2
symmetrically matched orbitals, respectively.
Attention
Different quantum chemistry software may use different molecular standard orientations, resulting in some molecular orbitals being labeled with different integrable representations in different programs.
Finally, the COMPASS
calculation ends normally, giving the following output.
|******************************************************************************|
Total cpu time: 0.00 S
Total system time: 0.00 S
Total wall time: 0.02 S
Current time 2021-11-18 11:26:28
End running module compass
|******************************************************************************|
Note
For each module execution of BDF, there will be informaton about the start of the execution and the time printed after the end of the execution, so that it is convenient for the user to locate exactly which calculation module has made an error.
The second module executed in this example is XUANYUAN, which is mainly used to calculate single and double electron integrals. Here, the XUANYUAN module only calculates and stores single-electron integrals and special double-electron integrals that require pre-screening of the integrals. If not specified, the BDF defaults to the direct calculation of the double electron integral to construct the Fock matrix. If user write in compass
module the key word Saorb,double electron integral will be calculated and stored. The output of the XUANYUAN module is relatively simple and does not require special attention. Here, we give the most critical output.
[aoint_1e]
Calculating one electron integrals ...
S T and V integrals ....
Dipole and Quadupole integrals ....
Finish calculating one electron integrals ...
---------------------------------------------------------------
Timing to calculate 1-electronic integrals
CPU TIME(S) SYSTEM TIME(S) WALL TIME(S)
0.017 0.000 0.000
---------------------------------------------------------------
Finish calculating 1e integral ...
Direct SCF required. Skip 2e integral!
Set significant shell pairs!
Number of significant pairs: 7
Timing caluclate K2 integrals.
CPU: 0.00 SYS: 0.00 WALL: 0.00
From the output we see that the single-electron overlap, kinetic and nuclear attraction integrals are computed, and also the dipole and quadrupole moment integrals are computed. The two-electron integral calculation is ignored because the input requires the default integration to be calculated directly by SCF (Direct SCF).
Finally, the BDF invokes the SCF module to perform the RHF self-consistent field calculation. Information of interest are:
Wave function information ...
Total Nuclear charge : 10
Total electrons : 10
ECP-core electrons : 0
Spin multiplicity(2S+1) : 1
Num. of alpha electrons : 5
Num. of beta electrons : 5
The nuclear charge number, the total electron number, the core electron number for the pseudopotential calculation, the spin multiplicity, and the alpha and beta electron numbers are given here, and the user should check that the electronic states are correct.
Then, the scf
module first calculates the atoms and generates the initial guess density matrix for the molecular calculations.
[ATOM SCF control]
heff= 0
After initial atom grid ...
Finish atom 1 O -73.8654283850
After initial atom grid ...
Finish atom 2 H -0.4961986360
Superposition of atomic densities as initial guess.
checking for possible linear correlations in the treatment of the basis functions.
Check basis set linear dependence! Tolerance = 0.100000E-04
It then proceeds to the SCF iterations, where after 8 iterations of convergence the accelerated convergence methods such as DIIS and Level shift are turned off and the energies are recalculated.
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -75.465225043 -0.607399386 0.039410497 0.238219747 0.0000 0.00
2 1 0.000 -75.535887715 -0.070662672 0.013896819 0.080831047 0.0000 0.00
3 2 0.000 -75.574187153 -0.038299437 0.004423591 0.029016074 0.0000 0.00
4 3 0.000 -75.583580885 -0.009393732 0.000961664 0.003782740 0.0000 0.00
5 4 0.000 -75.583826898 -0.000246012 0.000146525 0.000871203 0.0000 0.00
6 5 0.000 -75.583831666 -0.000004768 0.000012300 0.000073584 0.0000 0.00
7 6 0.000 -75.583831694 -0.000000027 0.000001242 0.000007487 0.0000 0.00
8 7 0.000 -75.583831694 -0.000000000 0.000000465 0.000002549 0.0000 0.00
diis/vshift is closed at iter = 8
9 0 0.000 -75.583831694 -0.000000000 0.000000046 0.000000221 0.0000 0.00
Label CPU Time SYS Time Wall Time
SCF iteration time: 0.017 S 0.017 S 0.000 S
Finally, the energy contributions and the Viry ratios of the different terms are printed.
Final scf result
E_tot = -75.58383169
E_ele = -84.37566837
E_nn = 8.79183668
E_1e = -121.94337426
E_ne = -197.24569473
E_kin = 75.30232047
E_ee = 37.56770589
E_xc = 0.00000000
Virial Theorem 2.003738
According to the Virial Theorem, the absolute value of the total potential energy of the system is two times the kinetic energy of the electron for a non-relativistic system, where the Virial ratio is 2.003738
. The energy of the system is:
E_tot
is the total energy of the system, i.e.,E_ele
+E_nn
;
E_ele
is the electron energy, i.e.E_1e
+E_ee
+E_xc
;
E_nn
is the nuclear repulsion energy;
E_1e
is the single electron energy, i.e.E_ne
+E_kin
;
E_ne
is the energy of attraction of the nucleus to the electron;
E_kin
is the electron kinetic energy;
E_ee
is the two-electron energy, including Coulomb repulsion and exchange energy.
E_xc
is the exchange-related energy, which is not 0 for DFT calculation.
The output of the energy printout is the occupancy of the orbitals, the orbital energy, the HUMO-LOMO energy and the energy gap, as shown below.
[Final occupation pattern: ]
Irreps: A1 A2 B1 B2
detailed occupation for iden/irep: 1 1
1.00 1.00 1.00 0.00 0.00 0.00 0.00
detailed occupation for iden/irep: 1 3
1.00 0.00 0.00 0.00
detailed occupation for iden/irep: 1 4
1.00 0.00
Alpha 3.00 0.00 1.00 1.00
[Orbital energies:]
Energy of occ-orbs: A1 3
-20.43281195 -1.30394125 -0.52260024
Energy of vir-orbs: A1 4
0.24980046 1.23122290 1.86913815 3.08082943
Energy of occ-orbs: B1 1
-0.66958992
Energy of vir-orbs: B1 3
0.34934415 1.19716413 2.03295437
Energy of occ-orbs: B2 1
-0.47503768
Energy of vir-orbs: B2 1
1.78424252
Alpha HOMO energy: -0.47503768 au -12.92643838 eV Irrep: B2
Alpha LUMO energy: 0.24980046 au 6.79741929 eV Irrep: A1
HOMO-LUMO gap: 0.72483814 au 19.72385767 eV
Here
[Final occupation pattern:]
gives the orbital occupation. Since we are performing a restricted Hartree-Fock calculation, the occupation is given only for the Alpha orbit, which is given separately according to the integrable representation. From this example, it can be seen that the first 3 of the A1 orbitals and the 1st of the B1 and B2 orbitals are occupied by 1 electron each. Since this example is an RHF, the alpha and beta orbitals are the same, so A1 indicates 3 double-occupied orbitals, and B1 and B2 indicate 1 double-occupied orbital each.
[Orbital energies:]
The orbital energies are given separately according to the integrable representation.
Alpha HOMO energy:
gives the HOMO orbital energy in units au and eV; the integrable representation to which the orbital belongs, in this case B2.
Alpha LUMO energy:
the LUMO orbital energy is given in units of au and eV; the integrable representation to which the orbital belongs, in this case A1.
HOMO-LUMO gap:
gives the energy difference between the HOMO and LUMO orbitals.
In order to reduce the number of output lines, BDF does not print the orbital composition and molecular orbital coefficients by default, but only gives the partial orbital occupation and orbital energy information according to the integrable representation. Only partial orbital occupancies and orbital energy information are given according to the integrable representation categories, as follows.
Symmetry 1 A1
Orbital 1 2 3 4 5 6
Energy -20.43281 -1.30394 -0.52260 0.24980 1.23122 1.86914
Occ No. 2.00000 2.00000 2.00000 0.00000 0.00000 0.00000
Symmetry 2 A2
Symmetry 3 B1
Orbital 8 9 10 11
Energy -0.66959 0.34934 1.19716 2.03295
Occ No. 2.00000 0.00000 0.00000 0.00000
Symmetry 4 B2
Orbital 12 13
Energy -0.47504 1.78424
Occ No. 2.00000 0.00000
The SCF module finally prints the results of Mulliken and Lowdin Bourdin analysis, with information on the dipole moments of the molecules.
[Mulliken Population Analysis]
Atomic charges:
1O -0.7232
2H 0.3616
3H 0.3616
Sum: -0.0000
[Lowdin Population Analysis]
Atomic charges:
1O -0.4756
2H 0.2378
3H 0.2378
Sum: -0.0000
[Dipole moment: Debye]
X Y Z
Elec:-.1081E-64 0.4718E-32 -.2368E+01
Nucl:0.0000E+00 0.0000E+00 0.5644E-15
Totl: -0.0000 0.0000 -2.3684
Hint
add the
iprtmo
keyword to the input of the SCF module with a value of2
to output detailed information about the molecular orbitals.
2. add the molden
keyword to the input of the SCF module to output the molecular orbitals and occupancies as a molden format file, which can be used by third-party programs for visualization or wave function analysis(such as GabEdit, JMol,
Molden,Multiwfn),
to calculate wavefunction analysis ,or calculate single electron property 。
Gaussian basis set
In order to solve the Hartree-Fock, Kohn-Sham DFT equations, it is necessary to expand the molecular orbitals into linear combinations of single-electron basis functions.
In quantum chemistry calculations, the basis functions have only mathematical meaning, not physical meaning. The more basis functions there are, the more accurate the result will be, but it also depends on how well the basis functions are set up. The Complete Basis Set Limit (CBS) is reached when there are infinitely many basis functions, which is called a complete set, and the molecular orbitals can be perfectly expanded. The actual use of a finite basis set does not reach the CBS, and the resulting error in the calculation result is called the basis set incompleteness error.
As many basis functions as are used, as many molecular orbitals are produced, but only occupied orbitals, and lower order non-occupied orbitals (valence level empty orbitals) are usually chemically meaningful. If the basis functions are taken to be atomic orbitals, it is called linear combination of atomic orbitals (LCAO), but this is only a concept in structural chemistry, and the basis functions used in actual calculations are not the real atomic orbitals.
The commonly used basis functions in quantum chemistry are as follows.
Gauss type orbital(GTO)basis functions: Most quantum chemistry programs use GTO basis functions because they are mathematically easy to calculate two-electron integrals.
Slater orbital (Slater type orbital, STO) basis functions: Semi-empirical and used by a few quantum chemistry programs (e.g. ADF). It is difficult to calculate two-electron integrals, but its radial behavior is closer to the actual atomic orbitals than the GTO basis functions, so that only a small number of STOs are needed to achieve a large number of GTO results.
Plane wave: A basis function specifically suitable for periodic calculations and much less cost effective than the GTO basis function for isolated systems.
Numerical atomic orbital (NAO) basis functions: Few programs support them, typically Dmol3, Siesta. NAO basis functions do not have an analytic mathematical form, but are described by discrete distributions of points.
The STO basis function was used in the early days of BDF software, and the GTO basis function is mainly used now.
For GTO basis functions with orbital angular momentum L higher than p*(e.g., GTO basis functions such as *d 、f, etc.),there are two ways to represent them. One is written in the form of a Cartesian function (also called a right-angle function).
It has \((L+1)(L+2)/2\) components, e.g., the d function contains xx,yy,zz,xy,xz,yz。The other is written in the form of a spherical function (also called a spherical harmonic function, pure function).
It has \(2L+1\) components, for example, the d function contains -2,-1,0,+1,+2。
The advantage of the Cartesian function is that it is easy to calculate the integral, but there are redundant functions; whereas the spherical function corresponds to exactly \((L+1)(L+2)/2\) magnetic quantum numbers, so in quantum chemistry programs the integral is usually calculated first under the Cartesian function and then combined into the integral of the spherical function by a certain linear relation [53].
Attention
most modern Gaussian basis sets are optimized under spherical basis functions, except for the older basis sets such as Pople type.
Cartesian basis functions have no advantage in terms of accuracy or efficiency, especially for all-electron relativity calculations, which also lead to numerical instability, so spherical basis functions are always used in BDF calculations.
Cartesian and spherical basis functions lead to different results. If the results of BDF calculations are repeated with other quantum chemistry programs, it is necessary to check whether the spherical basis functions are used, in addition to ensuring that the structure, method, and basis set are the same.
In the literature, data sets of optimized GTO basis functions for various atoms in different situations have been created and given different names to be called by quantum chemistry programs. These named GTO basis function data sets are called Gaussian Basis Sets。 the Gaussian Basis Sets built into the BDF are mainly from the following Basis Set Repository websites, and the original literature on the various Basis Sets can be found at the corresponding websites.
Basis Set Exchange [54] :All-electron basis sets, scalar ECP basis sets, can be exported in BDF format(note: ECP basisets have to be manually repositioned for ECP data)。 https://www.basissetexchange.org/
Stuttgart/Cologne pseudopotential basis set library: mainly SOECP basis sets, and a few early scalar ECP basis sets. http://www.tc.uni-koeln.de/PP/clickpse.en.html
Turbomole basis set library:all-electron basis set, scalar ECP basis set, SOECP basis set. http://www.cosmologic-services.de/basis-sets/basissets.php
Dyall Relativistic Basis Set: All-electron relativistic basis set. http://dirac.chem.sdu.dk/basisarchives/dyall/index.html
Sapporo basis set library: all-electron basis sets. http://sapporo.center.ims.ac.jp/sapporo/
Clarkson University ECP basis set library: SOECP basis set. https://people.clarkson.edu/~pchristi/reps.html
ccECP Basis Set Library: Scalar ECP Basis Sets. https://pseudopotentiallibrary.org/
In addition, there are individual elements with built-in motifs from the original literature.
All-electron basis set Dirac-RPF-4Z and Dirac-aug-RPF-4Z, including s-、p-region elements [55],d-region elements [56],f-region elements [57]
Pseudopotential basis set Pitzer-AVDZ-PP、Pitzer-VDZ-PP、Pitzer-VTZ-PP [58]
Ce - Lu [59], Fr - Pu [60], Am - Og [61, 62] in the pseudopotential basis set CRENBL(Note: the Am - Og basis set on the Basis Set Exchange is wrong!)
Am - Og [61, 62] in the pseudopotential basis set CRENBS(Note: the Am - Og basis set on Basis Set Exchange is wrong!)
Ac, Th, Pa [63] ,U [64] in the pseudopotential basis set Stuttgart-ECPMDFSO-QZVP
BDF users can use either the standard basis sets from the BDF basis set library or custom basis sets.
All-electron basis sets
All-electron basis sets are divided into two categories: non-shrinking basis sets and shrinking basis sets. The former can be used for both non-relativistic and relativistic calculations, but mainly for relativistic calculations, while the latter is divided into non-relativistic shrinkage basis sets and relativistic shrinkage basis sets.
All-electron relativistic calculations use Hamiltonians such as DKH, ZORA, X2C, etc. that take relativistic effects into account(see Relativistic effects ), when it is necessary to use shrinkage basis sets optimized specifically for relativistic calculations, such as the cc-pVnZ-DK series, SARC, ANO-RCC, etc. Most relativistic shrinkage basis sets treat the nucleus as a point charge, but some do take into account the nucleus distribution size effect when doing the shrinkage, which has the most pronounced effect on the shrinkage factor of the s and p asis functions. Accordingly, a finite nucleus model must also be used in the calculation of molecular integrals. finite nucleus model 。
Pseudopotential basis sets
The Effective Core Potential (ECP) includes the Pseudopotential (PP) and the Model Core Potential (MCP). The PP in quantum chemical calculations is not fundamentally different from the PP in plane wave calculations, except that it is expressed in a concise analytic form. Most quantum chemistry software, including BDF, supports PP, but fewer quantum chemistry software support MCP, so the names ECP and PP can be used interchangeably without ambiguity.
The pseudopotential basis set needs to be used in conjunction with the pseudopotential, and the basis functions describe only the valence level electrons of the atoms. When heavier elements are involved in the system, the pseudopotential basis set is usually used for them, while the normal basis set is used for the other atoms as usual. The Lan series, the Stuttgart series, and the cc-pVnZ-PP series all belong to this set. For ease of recall, the pseudopotential basis sets of some lighter elements are actually non-relativistic all-electron basis sets, such as the Def2 series of basis sets for elements before the fifth period.
The pseudopotential basis sets are divided into scalar pseudopotential basis sets and spin-orbit coupled pseudopotential (SOECP) basis sets, depending on whether the pseudopotential contains a spin-orbit coupling term or not.
Custom basis set files
The BDF can use non-built-in basis sets, where the basis set data is saved in a text format basis set file, placed in the calculation directory, with the file name is the name of the base set to be referenced in the BDF.
Warning
The file name of the custom base set file must be in all capital letters !However, when referenced in the input file, the case is arbitrary.
For example, create a text file MYBAS-1 in the calculation directory (note: if you create a text file under Windows OS, the system may hide the extension .txt, so the actual name is MYBAS-1.txt) with the following contents
# This is my basis set No. 1. # any blank lines and # leading comment lines
# Supported elements: He and Al
**** # a line beginning with four asterisks, followed by a base set of elements
He 2 1 # element sign, nuclear charge number, highest angular momentum of basis function
S 4 2 # S type GTO basis function, 4 original functions reduced to 2
3.836000E+01 # exponents of four S-type Gaussian primitive functions
5.770000E+00
1.240000E+00
2.976000E-01
2.380900E-02 0.000000E+00 # Two colums of contraction factors, corresponding to two contraction S-type GTO basis functions
1.548910E-01 0.000000E+00
4.699870E-01 0.000000E+00
5.130270E-01 1.000000E+00
P 2 2 # P type GTO basis function, two original functions are reduced to two
1.275000E+00
4.000000E-01
1.0000000E+00 0.000000E+00
0.0000000E+00 1.000000E+00
**** # four asterisks end the base set of he, followed by the base set of another element, or end
Al 13 2
(ellipsis)
In the above basis set, the P function is not contracted and can also be written in the following form.
(S function,ellipsis)
P 2 0 # 0 indicates non shrinkage, and the shrinkage factor is not required at this time
1.275000E+00
4.000000E-01
****
(ellipsis)
For pseudopotential basis sets, it is also necessary to provide ECP data after the valence basis function. For example
**** # for the price basis function, the note is the same as above
Al 13 2
S 4 3
14.68000000
0.86780000
0.19280000
0.06716000
-0.0022368000 0.0000000000 0.0000000000
-0.2615913000 0.0000000000 0.0000000000
0.6106597000 0.0000000000 1.0000000000
0.5651997000 1.0000000000 0.0000000000
P 4 2
6.00100000
1.99200000
0.19480000
0.05655000
-0.0034030000 0.0000000000
-0.0192089000 0.0000000000
0.4925534000 -0.2130858000
0.6144261000 1.0000000000
D 1 1
0.19330000
1.0000000000
ECP # ECP data section
Al 10 2 2 # element symbol, number of core electrons, ECP maximum angular momentum, soecp maximum angular momentum(optional)
D potential 4 # ECP maximum angular momentum(D function)
2 1.22110000000000 -0.53798100000000 # R power,exponent,factor(the same below)
2 3.36810000000000 -5.45975600000000
2 9.75000000000000 -16.65534300000000
1 29.26930000000000 -6.47521500000000
S potential 5 # S number of items projected
2 1.56310000000000 -56.20521300000000
2 1.77120000000000 149.68995500000000
2 2.06230000000000 -91.45439399999999
1 3.35830000000000 3.72894900000000
0 2.13000000000000 3.03799400000000
P potential 5 # P number of items projected
2 1.82310000000000 93.67560600000000
2 2.12490000000000 -189.88896800000001
2 2.57050000000000 110.24810400000000
1 1.75750000000000 4.19959600000000
0 6.76930000000000 5.00335600000000
P so-potential 5 # the number of items projected by P so. Scalar ECP does not have this part
2 1.82310000000000 1.51243200000000 # Scalar ECP does not have this part
2 2.12490000000000 -2.94701800000000 # Scalar ECP does not have this part
2 2.57050000000000 1.64525200000000 # Scalar ECP does not have this part
1 1.75750000000000 -0.08862800000000 # Scalar ECP does not have this part
0 6.76930000000000 0.00681600000000 # Scalar ECP does not have this part
D so-potential 4 # the number of items of D so projection. Scalar ECP does not have this part
2 1.22110000000000 -0.00138900000000 # Scalar ECP does not have this part
2 3.36810000000000 0.00213300000000 # Scalar ECP does not have this part
2 9.75000000000000 0.00397700000000 # Scalar ECP does not have this part
1 29.26930000000000 0.03253000000000 # Scalar ECP does not have this part
****
For scalar ECP, the SOECP highest angular momentum is 0 (which can be omitted and not written), and it is not necessary to provide the data for the SO projection part.
Once the above data is saved, the MYBAS-1
base set can be called in the BDF input file, which is achieved by the following hybrid input mode.
#!bdfbasis.sh
HF/genbas
Geometry
.....
End geometry
$Compass
Basis
mybas-1 # give the name of the base set file in the current directory. It is not case sensitive here
$End
The custom base set must be entered in BDF’s mixed mode. In the second line the input base set is set to genbas, and the custom base set file name needs to use the keyword Basis
in the COMPASS module with a value of mybas-1
, which means that the base set file named MYBAS-1
is called.
Basis set designation
Use the same BDF built-in basis set for all atoms
In simple input mode, the basis set is specified in method/generic/basis set
or method/basis set
. Here, the basis sets
are the BDF built-in ones listed in the previous sections base set names, and the input characters are case-insensitive, as follows.
#! basisexample.sh
TDDFT/PBE0/3-21g
Geometry
H 0.000 0.000 0.000
Cl 0.000 0.000 1.400
End geometry
#! basisexample.sh
HF/lanl2dz
Geometry
H 0.000 0.000 0.000
Cl 0.000 0.000 1.400
End geometry
In case of advanced input mode, the basis set used for the calculation is specified in the compass
module using the keyword basis
, for example
$compass
Basis
lanl2dz
Geometry
H 0.000 0.000 0.000
Cl 0.000 0.000 1.400
End geometry
$end
where lanl2dz
calls the built-in LanL2DZ basis set (registered in the basisname
basisname file), which is case-insensitive.
Specifying different basis sets for different elements
You have to use the mixed input mode, i.e. set the basis set to genbas
in Methods/Generic/Bases
, and add the COMPASS module input, specifying the basis set using the basis-block
… end basis
keyword.
If you specify a different name for a different element, you need to put it in the COMPASS module’s basis-block
… end basis
block.
where the first line is the default base set and the subsequent lines specify other base sets for different elements in the format element= base set name * or *element1, element2, …,element n= base set name 。
For example, an example of using different basis sets for different atoms in mixed input mode is as follows.
#! multibasis.sh
HF/genbas
Geometry
H 0.000 0.000 0.000
Cl 0.000 0.000 1.400
End geometry
$compass
Basis-block
lanl2dz
H = 3-21g
End Basis
$end
In the above example, the 3-21G basis set is used for H, while the default LanL2DZ basis set is used for Cl which is not additionally defined.
In case of advanced input, the following is used.
$compass
Basis-block
lanl2dz
H = 3-21g
End Basis
Geometry
H 0.000 0.000 0.000
Cl 0.000 0.000 1.400
End geometry
$end
Assigning different basis sets to different atoms of the same element
The BDF can also assign different base sets with different names to different atoms of the same element, which need to be distinguished by an arbitrary number after the element symbol to distinguish them. For example
#! CH4.sh
RKS/B3lyp/genbas
Geometry
C 0.000 -0.000 0.000
H1 -0.000 -1.009 -0.357
H2 -0.874 0.504 -0.457
H1 0.874 0.504 -0.357
H2 0.000 0.000 1.200
End geometry
$compass
Basis-block
6-31g
H1= cc-pvdz
H2= 3-21g
End basis
$end
In the above example, the cc-pVDZ basis set is used for the two hydrogen atoms of type H1, the 3-21G basis set for the two hydrogen atoms of type H2, and the 6-31G basis set for the carbon atoms. Note that the symmetry equivalent atoms must use the same basis set, which will be checked by the program;
if the symmetry equivalent atoms have to use different basis sets, the symmetry can be set to a lower point set symmetry by Group
or turned off with Nosymm
.
Auxiliary basis sets
The method using density fitting approximation (RI) requires an auxiliary basis set. the Ahlrichs family of basis sets and the Dunning correlation consistency basis set as well as other individual basis sets have specially optimized auxiliary basis sets. the auxiliary basis sets can be specified in BDF by the RI-J
、 RI-K
and RI-C
keywords in compass. RI-J
is used to assign coulomb fitting basis set, RI-K
is used to assign coulomb exchange fitting basis set, RI-C
assign coulomb correlation fitting basis set. The auxiliary basis sets supported by BDF are stored in the corresponding folder under the $BDFHOME/basis_library
path。
High-level density fitting bases can be used on lower-level bases, e.g. cc-pVTZ/C
can be used to do RI-J on cc-pVTZ
,and for pople series bases such as 6-31G**
that do not have a standard auxiliary base, cc-pVTZ/J
can be used to do RI-J or RIJCOSX. Conversely, a high-level orbital basis set combined with a low-level auxiliary basis set introduces a more significant error.
$Compass
Basis
DEF2-SVP
RI-J
DEF2-SVP
Geometry
C 1.08411 -0.01146 0.05286
H 2.17631 -0.01146 0.05286
H 0.72005 -0.93609 0.50609
H 0.72004 0.05834 -0.97451
H 0.72004 0.84336 0.62699
End Geometry
$End
In the above example, the def2-SVP
basis set was used to calculate the \(\ce{CH4}\) methane molecule, while the def2-SVP standard Coulomb fitting basis set was used for accelerated calculations.
Hint
The RI calculation function of BDF is used to accelerate wave function calculation methods such as MCSCF、 MP2 etc. It is not recommended for users in SCF 、 TDDFT, etc. The MPEC method does not depend on redundant functions and is comparable to the RI method in terms of computational speed and accuracy. The MPEC method does not depend on the redundancy function and is comparable to the RI method in terms of speed and accuracy.
Exchange-dependent generalized functions supported by BDF
The density flooding theory (DFT) of the BDF supports restricted, unrestricted and restricted open-shell Kohn-Sham calculations, referred to as RKS, UKS and ROKS, respectively. The inputs are close to those of RHF, UHF and ROHF. The key is to specify the exchange-related generic functions. bdf supports a variety of generic functions such as LDA, GGA, Meta-GGA, Hybrid, RS Hybrid and Hyrid Meta-GGA.
Attention
VWN5 is used for the LDA correlation term of B3LYP, while VWN3 is used for the LDA correlation term of GB3LYP corresponding to B3LYP in the Gaussian program 2。
For range-separated generalized calculations, the
rs
values must be set manually in theXuanyuan
module(see the list of keywords in the xuanyuan module )。wB97, wB97X, CAM-B3LYP and LC-BLYP have rs values of 0.40, 0.30, 0.33 and 0.33, respectively。For the two-hybrid generalized function calculation, an
MP2
module must be added after theSCF
module(see example test116 in the example description )and the final result is read from the output of theMP2
module.User-defined generalized functions can be implemented in the
SCF
module by adjusting the proportion of HF exchange terms and the proportion of MP2 related terms in the generalized function using thefacex
andfacco
keywords(see the list of keywords in the SCF module )。BDF uses libxc,in principle supports all the general functions included in libxc, but it takes time to refine and add. Users can give us feedback on the required generic functions so that we can add them as needed.
Note that while all general functions support (without dispersion correction) single-point energy calculations for the ground state, some functions are only partially supported by the general function are supported. The following is a list of the general functions supported for various computational tasks.
Self-consistent field methods: Hartree-Fock and Kohn-Sham
The self-consistent fields of the BDF include the Hartree-Fock and Kohn-Sham methods.
Restricted Hartree-Fock Method
An example of the Restricted Hartree-Fock method (RHF) was mentioned in the first example section and will not be repeated here.
Unrestricted Hartree-Fock method
For systems with unpaired electrons, the UHF
method is required, and the restricted open-shell Hartree-Fock (RHF) method can also be used, see later.
For odd-electron systems, the BDF defaults to a spin multiplet of 2 and uses the UHF calculation. For example, to calculate the \(\ce{C3H5}\) molecule,
#!bdf.sh
UHF/3-21G
geometry
C 0.00000000 0.00000000 0.00000000
C 0.00000000 0.00000000 1.45400000
C 1.43191047 0.00000000 1.20151555
H 0.73667537 -0.61814403 -0.54629970
H -0.90366611 0.32890757 -0.54629970
H 2.02151364 0.91459433 1.39930664
H 2.02151364 -0.91459433 1.39930664
H -0.79835551 0.09653770 2.15071009
end geometry
The output of the UHF calculation is similar to that of the RHF, in that the output from the scf
module can be checked for correct charge and spin multiplicity.
Wave function information ...
Total Nuclear charge : 23
Total electrons : 23
Ecp-core electrons : 0
Spin multiplicity(2S+1) : 2
Num. of alpha electrons : 12
Num. of beta electrons : 11
The orbital occupancy is given separately for Alpha
and Beta
orbitals.
[Final occupation pattern: ]
Irreps: A
detailed occupation for iden/irep: 1 1
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00
Alpha 12.00
detailed occupation for iden/irep: 2 1
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00
Beta 11.00
The orbital energy, HOMO-LUMO gap
is also printed separately according to Alpha
and Beta
orbits.
[Orbital energies:]
Energy of occ-orbsA: A 12
-11.18817955 -11.18789391 -11.17752809 -1.11801069 -0.85914580
-0.78861789 -0.65514687 -0.61300160 -0.55514631 -0.49906127
-0.37655522 -0.30477047
Energy of vir-orbsA: A 25
0.18221017 0.28830234 0.31069644 0.32818004 0.35397043
0.38822931 0.42917813 0.49394022 0.93909970 0.94842069
0.96877856 0.97277131 1.02563249 1.05399606 1.11320732
1.17687697 1.26547430 1.31245896 1.32719078 1.34493766
1.37905664 1.45903968 1.80285556 1.93877012 2.01720415
Energy of occ-orbsB: A 11
-11.19670896 -11.16769083 -11.16660825 -1.07470168 -0.84162305
-0.74622771 -0.63695581 -0.58068095 -0.53876236 -0.46400924
-0.37745766
Energy of vir-orbsB: A 26
0.15755278 0.18938428 0.30608423 0.33204779 0.33996597
0.38195612 0.39002159 0.43644421 0.52237314 0.94876233
0.96144960 0.97568581 1.01804430 1.05467405 1.09547593
1.13390456 1.19865205 1.28139866 1.32654541 1.33938005
1.34914150 1.38200544 1.47565481 1.79509704 1.96917149
2.03513467
Alpha HOMO energy: -0.30477047 au -8.29322996 eV Irrep: A
Alpha LUMO energy: 0.18221017 au 4.95819299 eV Irrep: A
Beta HOMO energy: -0.37745766 au -10.27114977 eV Irrep: A
Beta LUMO energy: 0.15755278 au 4.28723115 eV Irrep: A
HOMO-LUMO gap: 0.46232325 au 12.58046111 eV
Other output information can be found in the example of RHF calculation and will not be described in detail here.
Restricted open-shell Hartree-Fock method
Restricted open-shell Hartree-Fock(Restricted open-shell Hartree-Fock - ROHF)can also be calculated for the open-shell molecular system. An example of ROHF calculation for the \(\ce{CH2}\) triplet state is given here.
#!bdf.sh
rohf/cc-pvdz spinmulti=3
geometry # 输入坐标单位 Angstrom
C 0.000000 0.00000 0.31399
H 0.000000 -1.65723 -0.94197
H 0.000000 1.65723 -0.94197
end geometry
Here, the ROHF
is specified in the second line and the triplet state is calculated using the keyword spinmulti=3
。The output of ROHF is similar to that of The output of ROHF is similar to UHF, but its Alpha
orbitals are the same as Beta
so the corresponding Alpha
和 Beta
orbitals are equal in energy, as follows.
[Orbital energies:]
Energy of occ-orbsA: A1 3
-11.42199273 -0.75328533 -0.22649749
Energy of vir-orbsA: A1 8
0.05571960 0.61748052 0.70770696 0.83653819 1.29429307
1.34522491 1.56472153 1.87720054
Energy of vir-orbsA: A2 2
1.34320056 1.53663810
Energy of occ-orbsA: B1 1
-0.37032603
Energy of vir-orbsA: B1 6
0.06082087 0.66761691 0.77091474 1.23122892 1.51131609
1.91351353
Energy of occ-orbsA: B2 1
-0.16343739
Energy of vir-orbsA: B2 3
0.65138659 1.35768658 1.54657952
Energy of occ-orbsB: A1 2
-11.42199273 -0.75328533
Energy of vir-orbsB: A1 9
-0.22649749 0.05571960 0.61748052 0.70770696 0.83653819
1.29429307 1.34522491 1.56472153 1.87720054
Energy of vir-orbsB: A2 2
1.34320056 1.53663810
Energy of occ-orbsB: B1 1
-0.37032603
Energy of vir-orbsB: B1 6
0.06082087 0.66761691 0.77091474 1.23122892 1.51131609
1.91351353
Energy of vir-orbsB: B2 4
-0.16343739 0.65138659 1.35768658 1.54657952
Due to the different occupation numbers of Alpha
and Beta
orbitals, the HOMO, LUMO orbitals, and orbital energies of Alpha
iffer from those of Beta
, as follows.
.. code-block:
Alpha HOMO energy: -0.16343739 au -4.44735961 eV Irrep: B2
Alpha LUMO energy: 0.05571960 au 1.51620803 eV Irrep: A1
Beta HOMO energy: -0.37032603 au -10.07708826 eV Irrep: B1
Beta LUMO energy: -0.22649749 au -6.16331290 eV Irrep: A1
HOMO-LUMO gap: -0.06306010 au -1.71595329 eV
RKS, UKS, and ROKS Calculations
For the Restricted Kohn-Sham (RKS) method, an example of the RKS calculation for an \(\ce{H2O}\) molecule is given here in a concise input mode, using the B3lyp generalized function.
#!bdf.sh
B3lyp/3-21G
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length, unit is Angstrom
end geometry
The corresponding advanced mode input is:
$compass
geometry # On default: bond length unit in angstrom
o
h 1 1.0
h 1 1.0 2 109.
end geometry
basis
3-21g
$end
$xuanyuan
$end
$scf
rks # Restricted Kohn-Sham calculation
dft # ask for B3lyp functional, it is different with B3lyp implemented in Gaussian.
b3lyp
$end
Here, the input requires the use of the B3lyp
generic function. Compared to Hartree-Fock, the output has an additional contribution from the Exc term, as follows.
Final scf result
E_tot = -75.93603354
E_ele = -84.72787022
E_nn = 8.79183668
E_1e = -122.04354727
E_ne = -197.45852687
E_kin = 75.41497960
E_ee = 44.81744844
E_xc = -7.50177140
Virial Theorem 2.006909
The ROKS calculation for the \(\ce{H2O+}\) ion is succinctly entered as follows.
#!bdf.sh
ROKS/B3lyp/cc-pvdz charge=1
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
Hint
In contrast to Hartree-Fock,Kohn-Sham requires the use of the dft keyword in advanced input to specify the exchange-related generic function. For concise input, only the exchange-dependent generic function and basis group need to be specified. The system will choose to use RKS or UKS depending on the spin state, and must be entered explicitly if ROKS is to be used.
Kohn-Sham calculations based on RS heterogeneous generalizations
CAM-B3LYP and other RS hybridization generalization functions, dividing the Coulomb interaction into long and short ranges, the
When using the BDF advanced input, the \(\mu\) parameter can be adjusted using the keyword RS in the xuanyuan module. the default \(\mu\) parameter for CAM-B3lyp is 0.33. other \(\mu\) values in RS Hybrid GGA see RSOMEGA keyword。 for example, for 1,3-Butadiene molecules, the RKS advanced mode input using CAM-B3lyp is.
$compass
basis
cc-pVDZ
geometry
C -2.18046929 0.68443844 -0.00725330
H -1.64640852 -0.24200621 -0.04439369
H -3.24917614 0.68416040 0.04533562
C -1.50331750 1.85817167 -0.02681816
H -0.43461068 1.85844971 -0.07940766
C -2.27196552 3.19155924 0.02664018
H -3.34067218 3.19128116 0.07923299
C -1.59481380 4.36529249 0.00707382
H -2.12887455 5.29173712 0.04421474
H -0.52610710 4.36557056 -0.04551805
end geometry
$end
$xuanyuan
rs
0.33 # define mu=0.33 in CAM-B3lyp functional
$end
$scf
rks # restricted Kohn-Sham
dft
cam-b3lyp
$end
Exact exchange term and correlation term components for custom heterogeneous generalized functions, double heterogeneous generalized functions
For some calculations, it may be necessary for the user to manually adjust the exact exchange term components of the generic function to obtain satisfactory accuracy. In this case, you can add the facex
keyword to the $scf
module, for example, to change the exact exchange term component of the B3LYP generic function from the default 20% to 15%, you can write
.. code-block:: bdf
$scf … dft
b3lyp
- facex
0.15
$end
Similarly, it is possible to customize the MP2-related term components of a two-hybrid generic function with the facco
keyword. Note that not all generic functions support custom facex and facco(see the SCF module for a list of keywords )。
Dispersion correction for weak interactions
Common exchange-correlation general functions such as B3lyp do not describe weak interactions well and require dispersion correction when calculating energy or doing molecular structure optimization. BDF uses the D3 dispersion correction method developed by Stefan Grimme, which requires specifying the D3 keyword in the input to the SCF module, as follows
#!bdf.sh
B3lyp/cc-pvdz
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
$scf
D3 # Grimme's dispersion correction
$end
Tip
The BDF mixed-mode input method is used here to precisely control the SCF calculation by adding the SCF module keyword on top of the simple input.
The dispersion correction is added at the end of the Kohn-Sham calculation, and the calculated output is as follows.
diis/vshift is closed at iter = 8
9 0 0.000 -76.380491166 -0.000000000 0.000000017 0.000000168 0.0000 0.02
Label CPU Time SYS Time Wall Time
SCF iteration time: 0.467 S 0.033 S 0.233 S
Final DeltaE = -7.5459638537722640E-011
Final DeltaD = 1.6950036756030376E-008 5.0000000000000002E-005
Final scf result
E_tot = -76.38106481
E_ele = -85.17290149
E_disp= -0.00057364
E_nn = 8.79183668
E_1e = -122.51287853
E_ne = -198.42779201
E_kin = 75.91491348
E_ee = 44.84995532
E_xc = -7.50940464
Virial Theorem 2.006140
Here the total energy E_tot
includes the dispersion correction energy, E_disp = -0.00057364
。
Improving the accuracy of integration lattice points for Kohn-Sham calculations
Although the BDF defines default integration grid points for different general functions according to their accuracy requirements (e.g., the Meta-GGA class of general functions requires high integration grid points, and the BDF defaults to Fine grid points),
the user may also wish to adjust the integration grid points. The valid values of the Grid are Ultra coarse
,Coarse
, medium
, fine
, Ultra fine
, sg1
etc. From Ultra coarse
to sg1
, the number of integration points increases and the numerical integration accuracy increases.
Example: M062X calculation of \(\ce{H2O}\) molecule. This generalized function is a heterogeneous Meta-GGA type generalized function, which requires a dense integration grid, so the input uses a mixture of advanced input and simple input, as shown below.
#!bdf.sh
M062X/cc-pvdz
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
$scf
grid # set numerical integration grid as ultra fine
ultra fine
$end
The BDF uses Ultra coarse
integration lattice points at the beginning steps of the Kohn-Sham calculation, as shown below.
Switch to Ultra Coarse grid ...
[ATOM SCF control]
heff= 0
After initial atom grid ...
After initial atom grid ...
Generating Numerical Integration Grid.
1 O Second Kind Chebyshev ( 21) Lebedev ( -194)
Atoms: 1
2 H Second Kind Chebyshev ( 21) Lebedev ( -194)
Atoms: 2 3
Partition Function: SSF Partitioning with Scalar= 0.64.
Gtol, Npblock, Icoulpot, Iop_adaptive : 0.10E-04 128 0 0
Number of symmetry operation = 4
Basis Informations for Self-adaptive Grid Generation, Cutoff= 0.10E-04
1O GTO( 14) Ntot= 26 MaxL= 2 MaxNL= 0 MaxRad= 0.530E+01
basis details in form ( N L Zeta Cutradius):
( 1 0 0.117E+05 0.02) ( 1 0 0.176E+04 0.06) ( 1 0 0.401E+03 0.13)
( 1 0 0.114E+03 0.24) ( 1 0 0.370E+02 0.42) ( 1 0 0.133E+02 0.70)
( 1 0 0.503E+01 1.14) ( 1 0 0.101E+01 2.53) ( 1 0 0.302E+00 4.64)
( 2 1 0.177E+02 0.66) ( 2 1 0.385E+01 1.42) ( 2 1 0.105E+01 2.72)
( 2 1 0.275E+00 5.30) ( 3 2 0.119E+01 2.73)
2H GTO( 5) Ntot= 7 MaxL= 1 MaxNL= 0 MaxRad= 0.730E+01
basis details in form ( N L Zeta Cutradius):
( 1 0 0.130E+02 0.71) ( 1 0 0.196E+01 1.82) ( 1 0 0.445E+00 3.82)
( 1 0 0.122E+00 7.30) ( 2 1 0.727E+00 3.26)
Numerical Grid Generated SUCCESSFULLY!
Total and symmetry independent Grid Number: 4352 1181
When the energy converges to within 0.01 Hartree, it switches to the Ultra fine
integration grid point and the output is shown below.
Switch to Ultra Fine grid ...
[ATOM SCF control]
heff= 0
After initial atom grid ...
After initial atom grid ...
Generating Numerical Integration Grid.
1 O Second Kind Chebyshev (100) Lebedev (-1202)
Atoms: 1
2 H Second Kind Chebyshev (100) Lebedev (-1202)
Atoms: 2 3
Partition Function: SSF Partitioning with Scalar= 0.64.
Gtol, Npblock, Icoulpot, Iop_adaptive : 0.10E-04 128 0 0
Number of symmetry operation = 4
Basis Informations for Self-adaptive Grid Generation, Cutoff= 0.10E-04
1O GTO( 14) Ntot= 26 MaxL= 2 MaxNL= 0 MaxRad= 0.530E+01
basis details in form ( N L Zeta Cutradius):
( 1 0 0.117E+05 0.02) ( 1 0 0.176E+04 0.06) ( 1 0 0.401E+03 0.13)
( 1 0 0.114E+03 0.24) ( 1 0 0.370E+02 0.42) ( 1 0 0.133E+02 0.70)
( 1 0 0.503E+01 1.14) ( 1 0 0.101E+01 2.53) ( 1 0 0.302E+00 4.64)
( 2 1 0.177E+02 0.66) ( 2 1 0.385E+01 1.42) ( 2 1 0.105E+01 2.72)
( 2 1 0.275E+00 5.30) ( 3 2 0.119E+01 2.73)
2H GTO( 5) Ntot= 7 MaxL= 1 MaxNL= 0 MaxRad= 0.730E+01
basis details in form ( N L Zeta Cutradius):
( 1 0 0.130E+02 0.71) ( 1 0 0.196E+01 1.82) ( 1 0 0.445E+00 3.82)
( 1 0 0.122E+00 7.30) ( 2 1 0.727E+00 3.26)
Numerical Grid Generated SUCCESSFULLY!
Total and symmetry independent Grid Number: 94208 24827
Here, the integration lattice points of both H and O atoms are 100*1202, where 100 is the number of radial lattice points and 1202 is the number of angular lattice points.
Symmetry and molecular point groups
BDF supports the consideration of molecular point group symmetries in the computation. Most computational tasks support any real representation point group(all Abelian groups, as well as \(\rm C_{nv}, D_{n}, D_{nh}, D_{nd}, T_d, O, O_h, I, I_h\) ; the special point groups \(\rm C_{\infty v}, D_{\infty h}\) are nominally supported but are treated as \(\rm C_{20v}\) and \(\rm D_{20h}\) respectively. except for some computational tasks (e.g., open-shell TDDFT, TDDFT/SOC, etc.) that support only \(\rm D_{2h}\) and its subgroups (i.e., \(\rm C_1, C_i, C_s, C_2, D_2, C_{2h}, C_{2v}, D_{2h}\) ,generally referred to as Abelian groups) while individual atoms are treated as \(\rm O_{h}\) groups), but not the complex representation point groups( \(\rm C_n, C_{nh} (n \ge 3); S_{2n} (n \ge 2); T, T_h\) )。
The program can automatically determine the point group to which a molecule belongs based on the coordinates of the molecule entered by the user in COMPASS module, and automatically change to the appropriate subgroup when the molecule belongs to the complex representation point group. After determining the point group to which the molecule belongs, the program generates the group operator, the characteristic scale, and the integrable representation of the point group for subsequent calculations. Take ammonia molecule as an example.
#! NH3.sh
HF/cc-pVDZ
geometry
N -0.00000000 -0.00000000 -0.10000001
H 0.00000000 -0.94280900 0.23333324
H -0.81649655 0.47140450 0.23333324
H 0.81649655 0.47140450 0.23333324
end geometry
$compass
Title
NH3
thresh
medium
$end
The corresponding advanced input mode in COMPASS is
$COMPASS
Title
NH3
Basis
cc-pvdz
Geometry
N -0.00000000 -0.00000000 -0.10000001
H 0.00000000 -0.94280900 0.23333324
H -0.81649655 0.47140450 0.23333324
H 0.81649655 0.47140450 0.23333324
End geometry
thresh
medium
$END
Note that since the initial structure does not strictly satisfy the \(\rm C_{3v}\) symmetry, the thresh medium
is used here to choose a looser threshold for judging the symmetry (the default is tight
, or a looser one can be loose
)。As can be seen from the output file, the program automatically identifies the molecule as belonging to the \(\rm C_{3v}\) point group.
gsym: C03V, noper= 6
Exiting zgeomsort....
Representation generated
Point group name C(3V) 6
User set point group as C(3V)
Largest Abelian Subgroup C(S) 2
Note that the subscripts of the point group names need to be enclosed in parentheses, e.g. \(\rm C_{\infty v}, D_{\infty h}\) groups need to be written as C(LIN), D(LIN). Next, the integrable representation information, the CG coefficient table, etc. are printed. At the end of the COMPASS section output, the program gives a list of the integrable representations under the point group and the number of orbits belonging to each integrable representation.
|--------------------------------------------------|
Symmetry adapted orbital
Total number of basis functions: 29 29
Number of irreps: 3
Irrep : A1 A2 E1
Norb : 10 1 18
|--------------------------------------------------|
Order of integrable representations
Very often, the user needs to specify in the input file information such as the number of orbits occupied by each integrable representation (specified in the input to the SCF module) and how many excited states are calculated under each integrable representation (specified in the input to the TDDFT module), which is generally provided in the form of an array, e.g.
$TDDFT
Nroot
3 1 2
$END
It indicates that the first integrability indicates the calculation of 3 excited states, the second integrability indicates the calculation of 1 excited state, and the third integrability indicates the calculation of 2 (see the TDDFT section of this manual for details)。This necessarily requires the user to know the order of the integrable representations inside the BDF program at the time of writing the input file. The order of the integrable representations for all point groups supported by the BDF is given below.
C(1) |
A |
C(i) |
Ag, Au |
C(s) |
A’, A” |
C(2) |
A, B |
C(2v) |
A1, A2, B1, B2 |
C(2h) |
Ag, Bg, Au, Bu |
D(2) |
A, B1, B3, B2 |
D(2h) |
Ag, B1g, B3g, B2g, Au, B1u, B3u, B2u |
C(nv) (n=2k+1, k>=1) |
A1, A2, E1, …, Ek |
C(nv) (n=2k+2, k>=1) |
A1, A2, B1, B2, E1, …, Ek |
D(n) (n=2k+1, k>=1) |
A1, A2, E1, …, Ek |
D(n) (n=2k+2, k>=1) |
A1, A2, B1, B2, E1, …, Ek |
D(nh) (n=2k+1, k>=1) |
A1’, A2’, E1’, …, Ek’, A1”, A2”, E1”, …, Ek”, |
D(nh) (n=2k+2, k>=1) |
A1g, A2g, B1g, B2g, E1g, …, Ekg, A1u, A2u, B1u, B2u, E1u, …, Eku |
D(nd) (n=2k+1, k>=1) |
A1g, A2g, E1g, …, Ekg, A1u, A2u, E1u, …, Eku |
D(nd) (n=2k+2, k>=1) |
A1’, A2’, B1’, B2’, E1’, …, Ek’, A1”, A2”, B1”, B2”, E1”, …, Ek” |
T(d) |
A1, A2, E, T1, T2 |
O |
A1, A2, E, T1, T2 |
O(h) |
A1g, A2g, Eg, T1g, T2g, A1u, A2u, Eu, T1u, T2u |
I |
A, T1, T2, F, H |
I(h) |
Ag, T1g, T2g, Fg, Hg, Au, T1u, T2u, Fu, Hu |
The user can also force the program to calculate under a subgroup of the point group to which the molecule belongs by using the group keyword in the COMPASS module input, e.g.
#! N2.sh
HF/def2-TZVP group=D(2h)
geometry
N 0.00 0.00 0.00
N 0.00 0.00 1.10
end geometry
or
$COMPASS
Title
N2
Basis
def2-TZVP
Geometry
N 0.00 0.00 0.00
N 0.00 0.00 1.10
End geometry
Group
D(2h)
$END
That is, the program is forced to compute the \(\rm N_2\) molecule under the \(\rm D_{2h}\) point group, even though the \(\rm N_2\) molecule actually belongs to the \(\rm D_{\infty h}\) point group. Note that the program automatically checks whether the point group entered by the user is a subgroup of the point group to which the molecule actually belongs; if not, the program quits with an error.
Standard orientation
For the convenience of the calculation and the analysis of the results, the program rotates the molecules to the standard orientation after determining the point group used for the calculation, so that the symmetry axes of the molecules coincide as much as possible with the coordinate axes and the symmetry plane is as perpendicular as possible to the coordinate axes. This has the advantage that many quantities involved in the calculation are exactly equal to zero (e.g., some molecular orbital coefficients, some components of the gradient, etc.), which makes it easier to analyze the results.
The BDF determines the standard orientation of a molecule according to the following rules.
take a weighted average of all atomic coordinates of the molecule by nuclear charge to obtain the nuclear charge center of the molecule, and then translate the molecule so that the nuclear charge center is at the origin of the coordinate system.
if the molecule has an axis of symmetry, rotate the highest order axis of symmetry (principal axis) of the molecule to the z-axis direction.
if the molecule has \(\sigma_v\) symmetry planes, rotate one of the \(\sigma_v\) symmetry planes to the xz-plane direction, keeping the major axis direction constant in the process.
if the molecule has other dual or quadruple axes besides the principal axes, rotate one of the axes (any of the quadruple axes if they exist, otherwise any of the dual axes) to the x-axis direction, keeping the direction of the principal axes unchanged in the process.
if the above conditions cannot uniquely determine the orientation of the molecule because the symmetry of the molecule is too low, rotate the molecule so that the axis of inertia (i.e., the eigenvector of rotational inertia) of the molecule and each coordinate axis are oriented in the same direction.
For some special cases, the above rule still cannot uniquely determine the orientation of the molecule. For example, molecules belonging to the \(\rm C_{2v}\) point group have two \(\sigma_v\) symmetry planes, and either of them may be rotated to the xz direction at step 3 of the above rule. In the BDF, a \(\rm C_{2v}\) molecule with a planar structure, such as a water molecule, will be rotated to the xz plane.
|-----------------------------------------------------------------------------------|
Atom Cartcoord(Bohr) Charge Basis Auxbas Uatom Nstab Alink Mass
O 0.000000 -0.000000 0.219474 8.00 1 0 0 0 E 15.9949
H -1.538455 0.000000 -0.877896 1.00 2 0 0 0 E 1.0073
H 1.538455 -0.000000 -0.877896 1.00 2 0 0 0 E 1.0073
|------------------------------------------------------------------------------------|
In contrast, other quantization programs may choose to rotate the numerator to the yz plane. This leads to another problem: according to the customary convention, the \(\mathbf{x}\) operator under the \(\rm C_{2v}\) point group belongs to the B1 integrable representation and the \(\mathbf{y}\) operator belongs to the B2 integrable representation, so if a quantization program chooses to rotate the numerator to the yz plane, its B1 and B2 integrable representations are defined opposite to the BDF, i.e., the B1 representation of the program corresponds to the B2 representation of the BDF, and the B2 representation of the program corresponds to the B2 representation of the BDF of the B1 representation of the BDF. And if the molecule of this \(\rm C_{2v}\) point group is not a planar structure (e.g., ethylene oxide), it is even more difficult to predict whether the standard orientation of the molecule in the BDF is consistent with other quantization software. Therefore, if the user wishes to calculate the molecules of the \(\rm C_{2v}\) point group and compare the results with those of other quantization programs (or try to duplicate the results calculated by other quantization programs in the literature), the user must confirm how the B1 and B2 representations of the quantization program correspond to the BDF.
Other techniques for self-consistent field calculations
Initial Guesses for Self-Consistent Field Calculations
The initial guess track of the self-consistent field calculation has a great impact on the convergence of the calculation. the BDF supports several initial guesses, as follows.
Atom : Combining molecular density matrix guesses using atomic density matrix, default option.
Huckel : semi-empirical Huckel method guess.
Hcore : diagonalized single-electron Hamiltonian guess.
Readmo : read in molecular orbitals as initial guess.
– * Readdm : read in the density matrix as initial guess
BDF defaults to Atom guesses. The initial guess of the BDF can be changed in concise input mode using the keyword guess
, as follows
#! ch3cho.sh
HF/6-31G guess=Hcore unit=Bohr
geometry # notice: unit in Bohr
C 0.1727682300 -0.0000045651 -0.8301598059
C -2.3763311896 0.0000001634 0.5600567139
H 0.0151760290 0.0000088544 -2.9110013387
H -2.0873396672 0.0000037621 2.5902220967
H -3.4601725077 -1.6628370597 0.0320271859
H -3.4601679801 1.6628382651 0.0320205364
O 2.2198078005 0.0000024315 0.2188182082
end geometry
Here, we use the keyword guess=Hcore
n the second line to specify the use of the Hcore guess. 18 iterations of the SCF converge.
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -130.488739529 174.680929376 0.401531162 5.325668770 0.0000 0.03
2 1 0.000 -115.595786784 14.892952744 0.407402695 5.323804678 0.0000 0.02
3 2 0.000 -126.823748834 -11.227962049 0.115300517 1.591646800 0.0000 0.03
4 3 0.000 -150.870636785 -24.046887951 0.011394798 0.154813426 0.0000 0.02
5 4 0.000 -151.121829169 -0.251192384 0.004498398 0.037875784 0.0000 0.03
6 5 0.000 -150.900123989 0.221705180 0.008483436 0.119865266 0.0000 0.02
7 6 0.000 -151.582006133 -0.681882144 0.011892345 0.122063906 0.0000 0.02
8 7 0.000 -152.441656890 -0.859650757 0.007907887 0.062113717 0.0000 0.03
9 8 0.000 -152.729229838 -0.287572947 0.003318529 0.037884676 0.0000 0.02
10 2 0.000 -152.795374919 -0.066145081 0.005951772 0.054625652 0.0000 0.02
11 3 0.000 -152.839276725 -0.043901806 0.000860488 0.010210210 0.0000 0.03
12 4 0.000 -152.841131472 -0.001854746 0.000733951 0.007678730 0.0000 0.02
13 5 0.000 -152.841752921 -0.000621449 0.000348937 0.003519950 0.0000 0.02
14 6 0.000 -152.841816238 -0.000063316 0.000053288 0.000787592 0.0000 0.03
15 7 0.000 -152.841819180 -0.000002942 0.000021206 0.000157533 0.0000 0.02
16 8 0.000 -152.841819505 -0.000000325 0.000004796 0.000031694 0.0000 0.02
17 2 0.000 -152.841819522 -0.000000016 0.000000698 0.000005497 0.0000 0.03
18 3 0.000 -152.841819522 -0.000000000 0.000000236 0.000002276 0.0000 0.02
diis/vshift is closed at iter = 18
19 0 0.000 -152.8418195227 -0.000000000 0.000000078 0.000000848 0.0000 0.03
Warning
The unit of numerator input for this example is Bohr, and the keyword unit=Bohr
must be used to specify that the length of the coordinates is in Bohr
。
This example corresponds to the advanced input
$compass
geometry
C 0.1727682300 -0.0000045651 -0.8301598059
C -2.3763311896 0.0000001634 0.5600567139
H 0.0151760290 0.0000088544 -2.9110013387
H -2.0873396672 0.0000037621 2.5902220967
H -3.4601725077 -1.6628370597 0.0320271859
H -3.4601679801 1.6628382651 0.0320205364
O 2.2198078005 0.0000024315 0.2188182082
end geometry
unit # set unit of coordinates as Bohr
bohr
basis
6-31g
$end
$xuanyuan
$end
$scf
rhf
guess # ask for hcore guess
hcore
$end
Reading in the initial guess orbitals
By default, the SCF calculation in BDF uses the atomic density matrix to construct the molecular density matrix to generate the initial guess orbitals. In practice, the user can read in the converged SCF molecular orbitals as the initial guess orbitals for the current SCF calculation. In this example, we first calculate a neutral \(\ce{H2O}\) molecule and get the converged orbitals as the initial guess orbitals for the \(\ce{H2O+}\) ions.
In the first step, the \(\ce{H2O}\) molecule is calculated and the input file is prepared and named as h2o.inp
. The contents are as follows:
#!bdf.sh
RKS/B3lyp/cc-pvdz
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
After performing the calculation, the working directory generates the readable file h2o.scforb
, which holds the convergence orbits of the SCF calculation.
In the second step, the convergence orbit of the \(\ce{H2O}\) molecule is used as an initial guess for the \(\ce{H2O+}\) ion calculation, and the input file h2o+.inp is prepared, with the following contents.
#!bdf.sh
ROKS/B3lyp/cc-pvdz guess=readmo charge=1
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
%cp $BDF_WORKDIR/h2o.scforb $BDF_TMPDIR/${BDFTASK}.inporb
Here, key word guess=readmo
is used to assign the initial guess orbital to be read. Initial guess orbital is copied by using %
guided copy command from h2o.scforb in
environmental variable BDF_WORKDIR
defined file to ${BDFTASK}.inporb
file in BDF_TMPDIR
.
Here, BDF_WORKDIR
is the directory of executing tasks, BDF_TMPDIR
is directory to store temporary files in BDF.
Extending small basis group convergence orbits to large basis group initial guesses
Initial guess orbits can be generated from different basis groups, again to accelerate computational convergence. This requires an extension of the initial guess track file. The track extensions should use the same base group, such as the cc-pVXZ series, ANO-RCC series, and other base groups. The orbital expansion currently supports only the advanced input mode. For \(\ce{CH3CHO}\) molecules, the orbitals are first calculated with cc-pVDZ and then expanded to the initial guess orbitals calculated with the cc-pVQZ basis set with the following inputs.
# First SCF calculation using small basis set cc-pvdz
$compass
geometry
C 0.1727682300 -0.0000045651 -0.8301598059
C -2.3763311896 0.0000001634 0.5600567139
H 0.0151760290 0.0000088544 -2.9110013387
H -2.0873396672 0.0000037621 2.5902220967
H -3.4601725077 -1.6628370597 0.0320271859
H -3.4601679801 1.6628382651 0.0320205364
O 2.2198078005 0.0000024315 0.2188182082
end geometry
basis
cc-pvdz
unit # set unit of coordinates as Bohr
Bohr
$end
$xuanyuan
$end
$scf
rhf
$end
#change chkfil name into chkfil1
%mv $BDF_WORKDIR/$BDFTASK.chkfil $BDF_WORKDIR/$BDFTASK.chkfil1
$compass
geometry
C 0.1727682300 -0.0000045651 -0.8301598059
C -2.3763311896 0.0000001634 0.5600567139
H 0.0151760290 0.0000088544 -2.9110013387
H -2.0873396672 0.0000037621 2.5902220967
H -3.4601725077 -1.6628370597 0.0320271859
H -3.4601679801 1.6628382651 0.0320205364
O 2.2198078005 0.0000024315 0.2188182082
end geometry
basis
cc-pvqz
unit
Bohr
$end
# change chkfil to chkfil1. notice, should use cp command since we will use
# "$BDFTASK.chkfil" in the next calculation
%cp $BDF_WORKDIR/$BDFTASK.chkfil $BDF_WORKDIR/$BDFTASK.chkfil2
# copy converged SCF orbital as input orbital of the module expandmo
%cp $BDF_WORKDIR/$BDFTASK.scforb $BDF_WORKDIR/$BDFTASK.inporb
# Expand orbital to large basis set. The output file is $BDFTASK.exporb
$expandmo
overlap
$end
$xuanyuan
$end
# use expanded orbital as initial guess orbital
%cp $BDF_WORKDIR/$BDFTASK.exporb $BDF_WORKDIR/$BDFTASK.scforb
$scf
RHF
guess
readmo
iprtmo
2
$end
In the above input, the first RHF calculation is performed using the cc-pVDZ basis set, then the convergence track from the first SCF calculation is extended to the cc-pVQZ basis set using the expandmo module, and finally guess=readmo
is used as the initial guess track to be read into the SCF.
The output of the expandmo module is that
|******************************************************************************|
Start running module expandmo
Current time 2021-11-29 22:20:50
|******************************************************************************|
$expandmo
overlap
$end
/Users/bsuo/check/bdf/bdfpro/ch3cho_exporb.chkfil1
/Users/bsuo/check/bdf/bdfpro/ch3cho_exporb.chkfil2
/Users/bsuo/check/bdf/bdfpro/ch3cho_exporb.inporb
Expanding MO from small to large basis set or revise ...
1 Small basis sets
Number of basis functions (NBF): 62
Maxium NBF of shell : 6
Number of basis functions of small basis sets: 62
2 Large basis sets
Number of basis functions (NBF): 285
Maxium NBF of shell : 15
Overlap expanding : 1
Read guess orb
Read orbital title: TITLE - SCF Canonical Orbital
nsbas_small 62
nsbas_large 285
ipsmall 1
iplarge 1
Overlap of dual basis ...
Overlap of large basis ...
Write expanded MO to scratch file ...
|******************************************************************************|
Total cpu time: 0.42 S
Total system time: 0.02 S
Total wall time: 0.47 S
Current time 2021-11-29 22:20:51
End running module expandmo
|******************************************************************************|
It can be seen that the small base group has 62 tracks and the large base group has 285 tracks. expandmo reads in the regular tracks for SCF convergence, extends them to the large base group and writes them to a temporary file.
The output of the second SCF calculation is that
/Users/bsuo/check/bdf/bdfpro/ch3cho_exporb.scforb
Read guess orb: nden=1 nreps= 1 norb= 285 lenmo= 81225
Read orbital title: TITLE - orthognal Expand CMO
Orbitals initialization is completed.
........
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -152.952976892 122.547522034 0.002218985 0.246735859 0.0000 16.30
2 1 0.000 -152.983462881 -0.030485988 0.000367245 0.026196100 0.0000 16.83
3 2 0.000 -152.983976045 -0.000513164 0.000086429 0.006856831 0.0000 17.18
4 3 0.000 -152.984012062 -0.000036016 0.000016763 0.001472939 0.0000 17.02
5 4 0.000 -152.984019728 -0.000007666 0.000010400 0.001012788 0.0000 17.42
6 5 0.000 -152.984021773 -0.000002045 0.000003396 0.000328178 0.0000 17.28
7 6 0.000 -152.984022197 -0.000000423 0.000001082 0.000075914 0.0000 17.40
8 7 0.000 -152.984022242 -0.000000044 0.000000154 0.000008645 0.0000 17.28
9 8 0.000 -152.984022243 -0.000000001 0.000000066 0.000005087 0.0000 19.38
diis/vshift is closed at iter = 9
10 0 0.000 -152.984022243 -0.000000000 0.000000007 0.000000584 0.0000 18.95
Label CPU Time SYS Time Wall Time
SCF iteration time: 517.800 S 0.733 S 175.617 S
Calculation of excited states by the maximum occupation of molecular orbitals (mom) method
The mom (maximum occupation method) is a ΔSCF method that can be used to calculate excited states.
#----------------------------------------------------------------------
#
# mom method: J. Liu, Y. Zhang, and W. Liu, J. Chem. Theory Comput. 10, 2436 (2014).
#
# gs = -169.86584128
# ab = -169.62226127
# T = -169.62483480
# w(S)= 6.69eV
#----------------------------------------------------------------------
$COMPASS
Title
mom
Basis
6-311++GPP
Geometry
C 0.000000 0.418626 0.000000
H -0.460595 1.426053 0.000000
O 1.196516 0.242075 0.000000
N -0.936579 -0.568753 0.000000
H -0.634414 -1.530889 0.000000
H -1.921071 -0.362247 0.000000
End geometry
Check
$END
$XUANYUAN
$END
$SCF
UKS
DFT
B3LYP
alpha
10 2
beta
10 2
$END
%cp ${BDFTASK}.scforb $BDF_TMPDIR/${BDFTASK}.inporb
# delta scf with mom
$SCF
UKS
DFT
B3LYP
guess
readmo
alpha
10 2
beta
10 2
ifpair
hpalpha
1
10 0
11 0
iaufbau
2
$END
# pure delta scf for triplet
$SCF
UKS
DFT
B3LYP
alpha
11 2
beta
9 2
$END
This example performs three SCF calculations.
For the first SCF, the ground state of the formamide molecule is calculated using the UKS method. The input specifies the occupancy of alpha and beta orbitals using the alpha and beta keywords, respectively. The base state of the formamide molecule is the singlet state S0, where the specified alpha and beta occupancies are the same.
10 2
The integrable designation indicates that A’ and A” have 10 and 2 occupied orbitals, respectively. The SCF module will fill the orbitals with electrons according to the construction principle, from low to high orbital energy.For the second SCF, the S1 state of the formamide molecule is calculated using the UKS and mom methods. The key points here are: 1. the convergent orbitals read into the previous UKS step are specified using guess=readmo; 2. the occupation number of each symmetry orbital is set using alpha, beta keywords; 3. the variable ifpair is set, which needs to be used in conjunction with hpalpha, hpbeta to specify the hole-particle - HP) orbital pairs for electronic excitation; 4. The variable hpalpha is set to specify the HP orbital pairs for excitation. The number 1 indicates the excitation of a pair of HP orbitals, and the following two rows specify the orbital excitation. The first column indicates the excitation of electrons from the 10th alpha orbital to the 11th alpha orbital in the first integrable representation; the elements of the second column are all zero, indicating that no excitation is done for the orbital in the second integrable representation; 5. The iaufbau variable is set to 2, specifying that the mom calculation is to be performed.
For the third SCF, the T1 state of the formamide molecule is calculated using the UKS method. In the input, we specify the orbital occupancies using the alpha and beta keywords, where the number of occupancies of the alpha orbital is
11 2
, indicating 11 and 2 electrons occupying the alpha orbital with symmetries A’ and A”, respectively, and the occupancy of the beta orbital is9 2
. Since the required state for the solution is the lowest energy state for a given number of orbital occupancies, there is no need to specify iaufbau.
Here, the first SCF calculation converges to the result that
Superposition of atomic densities as initial guess.
skipaocheck T F
Solve HC=EC in pflmo space. F 12 75
Initial guess energy = -169.2529540680
[scf_cycle_init_ecdenpot]
Meomory for coulpotential 0.00 G
Start SCF iteration......
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -169.411739263 -0.158785195 0.005700928 0.163822560 0.0000 0.20
Turn on DFT calculation ...
2 1 0.000 -169.743175119 -0.331435856 0.008905349 0.340815886 0.0000 0.42
3 2 0.000 -169.232333660 0.510841459 0.006895796 0.296788710 0.0000 0.43
4 3 0.000 -169.863405142 -0.631071482 0.000364999 0.015732911 0.0000 0.43
5 4 0.000 -169.863345847 0.000059295 0.000209771 0.009205878 0.0000 0.42
6 5 0.000 -169.865811301 -0.002465454 0.000027325 0.000606909 0.0000 0.43
7 6 0.000 -169.865831953 -0.000020651 0.000008039 0.000357726 0.0000 0.43
8 7 0.000 -169.865833199 -0.000001246 0.000003927 0.000114311 0.0000 0.42
9 8 0.000 -169.865833401 -0.000000201 0.000000182 0.000004399 0.0000 0.43
diis/vshift is closed at iter = 9
10 0 0.000 -169.865833402 -0.000000000 0.000000139 0.000003885 0.0000 0.43
Label CPU Time SYS Time Wall Time
SCF iteration time: 8.650 S 0.700 S 4.050 S
Final DeltaE = -4.4343551053316332E-010
Final DeltaD = 1.3872600382452641E-007 5.0000000000000002E-005
Final scf result
E_tot = -169.86583340
E_ele = -241.07729109
E_nn = 71.21145769
E_1e = -371.80490197
E_ne = -541.14538673
E_kin = 169.34048477
E_ee = 148.48285541
E_xc = -17.75524454
Virial Theorem 2.003102
It can be seen that the first SCF calculation uses the atom guess and the energy of S0 is calculated to be -169.8658334023 a.u.. The second SCF calculation reads in the convergent orbitals of the first SCF and does the SCF calculation using the mom method, and the output file first indicates that the molecular orbitals were read in and gives the occupation
[Final occupation pattern: ]
Irreps: A' A''
detailed occupation for iden/irep: 1 1
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
detailed occupation for iden/irep: 1 2
1.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00
Alpha 10.00 2.00
Here, the 10th alpha orbital of the A'
integrable representation is the occupied orbital and the 11th orbital is the empty orbital.
The second SCF calculation reads in the converged orbitals of the first SCF and does the SCF calculation using the mom method,
where the input asks to excite the electrons of the 10th orbital represented by A'
to the 11th orbital.
The output file first suggests that the molecular orbitals were read in and gives the occupation
Read initial orbitals from user specified file.
/tmp/20117/mom_formamide.inporb
Read guess orb: nden=2 nreps= 2 norb= 87 lenmo= 4797
Read orbital title: TITLE - SCF Canonical Orbital
Initial occupation pattern: iden=1 irep= 1 norb(irep)= 66
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.00
1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
Initial occupation pattern: iden=1 irep= 2 norb(irep)= 21
1.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00
Initial occupation pattern: iden=2 irep= 1 norb(irep)= 66
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
Initial occupation pattern: iden=2 irep= 2 norb(irep)= 21
1.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00
Here, iden=1 is the alpha orbital and irep=1 refers to the first integrable representation, and there are a total of norb=66 orbitals, where the occupation number of the 10th orbital is 0.00 and the occupation number of the 11th orbital is 1.00. After 14 SCF iterations, the converged S1 state energy is -169.6222628003 a.u., as follows.
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -169.505632070 125.031578610 0.020428031 1.463174456 0.0000 0.45
2 1 0.000 -169.034645773 0.470986296 0.036913522 1.562284831 0.0000 0.43
3 2 0.000 -165.750862892 3.283782881 0.032162782 1.516480990 0.0000 0.43
4 3 0.000 -169.560678610 -3.809815718 0.008588866 0.807859419 0.0000 0.43
5 4 0.000 -169.596211021 -0.035532411 0.003887621 0.367391029 0.0000 0.42
6 5 0.000 -169.620128518 -0.023917496 0.001826050 0.172456003 0.0000 0.43
7 6 0.000 -169.621976725 -0.001848206 0.000486763 0.044630527 0.0000 0.43
8 7 0.000 -169.622245116 -0.000268391 0.000113718 0.004980035 0.0000 0.43
9 8 0.000 -169.622261269 -0.000016153 0.000112261 0.009715905 0.0000 0.42
10 2 0.000 -169.622262553 -0.000001284 0.000043585 0.004092668 0.0000 0.42
11 3 0.000 -169.622262723 -0.000000169 0.000031601 0.002792075 0.0000 0.42
12 4 0.000 -169.622262790 -0.000000067 0.000010125 0.000848297 0.0000 0.43
13 5 0.000 -169.622262798 -0.000000007 0.000003300 0.000273339 0.0000 0.43
diis/vshift is closed at iter = 13
14 0 0.000 -169.622262800 -0.000000002 0.000001150 0.000079378 0.0000 0.42
Label CPU Time SYS Time Wall Time
SCF iteration time: 13.267 S 0.983 S 6.000 S
Final DeltaE = -1.8403909507469507E-009
Final DeltaD = 1.1501625138328933E-006 5.0000000000000002E-005
Final scf result
E_tot = -169.62226280
E_ele = -240.83372049
E_nn = 71.21145769
E_1e = -368.54021347
E_ne = -537.75897296
E_kin = 169.21875949
E_ee = 145.28871749
E_xc = -17.58222451
Virial Theorem 2.002385
[Final occupation pattern: ]
Irreps: A' A''
detailed occupation for iden/irep: 1 1
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.00
1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00
After convergence of SCF, the orbital occupancy is printed again and it can be seen that the 10th orbital in the alpha orbital with A'
integrable representation has no electron occupation and the 11th orbital has one electron occupation and the 11th orbital is occupied by one electron.
The third SCF calculation gives the T1 state energy as -169.6248370697 a.u. The output is as follows:
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -169.411739263 -0.158785195 0.083821477 9.141182225 0.0000 0.17
Turn on DFT calculation ...
2 1 0.000 -169.480549474 -0.068810211 0.066700318 6.978728919 0.0000 0.40
3 2 0.000 -169.277735673 0.202813801 0.014778190 0.648183923 0.0000 0.42
4 3 0.000 -169.613991196 -0.336255522 0.005923909 0.621843348 0.0000 0.42
5 4 0.000 -169.620096778 -0.006105582 0.001967168 0.164506160 0.0000 0.40
6 5 0.000 -169.623636999 -0.003540220 0.002722812 0.246425639 0.0000 0.42
7 6 0.000 -169.624704514 -0.001067515 0.001064536 0.098138798 0.0000 0.42
8 7 0.000 -169.624814882 -0.000110368 0.000525436 0.046392861 0.0000 0.42
9 8 0.000 -169.624834520 -0.000019637 0.000179234 0.012966641 0.0000 0.42
10 2 0.000 -169.624836694 -0.000002174 0.000063823 0.004902276 0.0000 0.42
11 3 0.000 -169.624836922 -0.000000227 0.000017831 0.001440089 0.0000 0.43
12 4 0.000 -169.624837025 -0.000000103 0.000034243 0.002618897 0.0000 0.42
13 5 0.000 -169.624837065 -0.000000039 0.000006158 0.000466001 0.0000 0.40
14 6 0.000 -169.624837068 -0.000000003 0.000003615 0.000354229 0.0000 0.42
diis/vshift is closed at iter = 14
15 0 0.000 -169.624837069 -0.000000001 0.000000966 0.000070404 0.0000 0.42
Label CPU Time SYS Time Wall Time
SCF iteration time: 13.150 S 0.950 S 5.967 S
Final DeltaE = -1.1375220765330596E-009
Final DeltaD = 9.6591808698539483E-007 5.0000000000000002E-005
Final scf result
E_tot = -169.62483707
E_ele = -240.83629476
E_nn = 71.21145769
E_1e = -368.57834907
E_ne = -537.80483706
E_kin = 169.22648799
E_ee = 145.32683246
E_xc = -17.58477815
Virial Theorem 2.002354
Handling Non-Convergence of Self-Consistent Field Calculations
When the SCF calculation is completed, the user must check whether the SCF has converged or not. The user must check the convergence of the SCF and only if it converges can the results of the SCF calculation (energy, Bourget analysis, orbital energy, etc.) be used and subsequent calculations performed. Note that the convergence of the SCF cannot be judged only by the presence or absence of errors at the end of the output file. Because even if the SCF does not converge, the program does not exit immediately, but only after the output of the SCF iterations and before the output of the SCF energy. indicates that
Warning !!! Total energy not converged!
And even in this case, the program still prints the energy, orbital information, and the results of the booster analysis after this information. Although these results cannot be used as official calculation results, they are useful for analyzing the reasons for the non-convergence of the SCF.
Common causes of SCF non-convergence include
1. the HOMO-LUMO energy gap is too small, resulting in repeated changes in the occupation of the frontline orbitals. For example, two orbitals \(\psi_1\) and \(\psi_2\), at the Nth SCF iteration \(\psi_1\) is the occupied orbitals and \(\psi_2\) is the empty orbitals, however, after constructing the Fock matrix based on such orbital occupancy and diagonalizing it, the orbitals of the N+1th SCF iteration are obtained, but the orbital energy of \(\psi_1\) is higher than that of \(\psi_2\), so the electrons are transferred from \(\psi_1\) orbitals to \(\psi_2\) orbitals. But then, the Fock matrix of the N+1th SCF iteration changes a lot compared to the Nth SCF iteration, resulting in a lower orbital energy of \(\psi_1\) than \(\psi_2\) in the N+2nd SCF iteration, so the orbital occupation number returns to the case of the Nth SCF iteration, and thus the orbital occupation number of the SCF iteration always changes and never converges. This situation is typified by the fact that the SCF energy alternately oscillates between two energies (or oscillates irregularly within a certain range) with an oscillation amplitude around \(10^{-4} \sim 1\) Hartree, and the orbital occupation number printed at the end of the SCF is not as expected. 2. The HOMO-LUMO energy gap is small, and although the orbital occupation number does not change for each step of the iteration, the orbital shape changes repeatedly, leading to non-convergence of the SCF oscillation. The typical performance of this case is similar to the previous one, but the amplitude of the oscillation is generally slightly smaller and the orbital occupation number printed at the end of the SCF is qualitatively consistent with the expectation. 3. The numerical integration grid point is too small or the accuracy of the two-electron integration is too low, resulting in small oscillations of the SCF that do not converge due to numerical errors. This situation is typically characterized by irregular oscillations of the SCF energy with an amplitude below \(10^{-4}\) Hartree, and the number of orbital occupations printed at the end of the SCF is qualitatively as expected. 4. The basis group is nearly linearly correlated, or the projection of the basis group on the grid is nearly linearly correlated because the grid is too small. This situation is typically characterized by the SCF energy varying by more than 1 Hartree (not necessarily in oscillation, but also monotonically or essentially monotonically), the SCF energy being much lower than expected, and the number of orbit occupancies printed at the end of the SCF being completely unphysically realistic. When the SCF energy is very much lower than expected, the SCF energy may not even be displayed as a number, but as a string of asterisks.
The following part is the common solvation to various kinds of SCF convergence failure(also applied to programs other than BDF):
add an energy shift vshift, for both category 1 and category 2 cases, by adding to the $scf module of the input file.
vshift
0.2
If significant oscillations are still observed, it shall gradually increase vshift until convergence. vshift tends to make the convergence of SCF monotonic, but setting vshift too large increases the number of iterations used to converge, so it is appropriate to increase maxiter when increasing vshift. When vshift increases to 1.0 and still fails to converge, one should Consider other methods.
increase the density matrix damping damp for the class 2 case (it also has a slight effect on the class 1 case) by adding to the $scf module of the input file.
damp
0.7
Note that damp can be used in conjunction with vshift, and the two effects are to some extent mutually reinforcing. If significant oscillations are still observed with damping set to 0.7, increase the damping while ensuring that it is less than 1. For example, next try 0.9, 0.95, etc. Similar to vshift, damp also tends to improve the monotonicity of SCF convergence, but too large a damp leads to slower convergence, so maxiter can be increased. when damp is increased to 0.99 and still fails to converge, other methods should be considered.
turn off DIIS for cases 1 and 2, and when increasing vshift and damp does not converge, DIIS will speed up SCF convergence in most cases, but it may slow down or even prevent convergence when the HOMO-LUMO energy gap is particularly small. In the latter case, you can turn off DIIS by adding the NoDIIS keyword to the $scf module, increase maxiter, and set vshift and damp depending on the convergence.
Turn off SMH,applied to the 1 and 2 situation and the above three solvation failed to converge. The solvation is to add NoSMH key word in $scf module, increase maxiter, and set vshift and damp depending on the convergence. We have not yet encountered a situation where SMH does not converge and does not converge, but since SMH is a very new method for convergence of SCF, turning off SMH can be an alternative. However, since SMH is a very new method for convergence of SCF, we cannot rule out that SMH may have a negative impact on convergence in rare cases, so turning off SMH can be an alternative.
Switch to the FLMO or iOI method for cases of type 1 and type 2, where the molecules are large (e.g. larger than 50 atoms) and where it is suspected that the SCF does not converge because the initial guessing accuracy of the atoms is too low or because of qualitative errors. See the sections on FLMO and iOI methods 。
Calculate a similar system that converges more easily and then use the wave function of that system as an initial guess to converge the original system, for both type 1 and type 2 cases. For example, if the SCF calculation of a neutral dibasic transition metal complex does not converge, one can calculate the monovalent cation of its closed-shell layer and use the orbitals of the monovalent cation as the first guess for the SCF calculation of the neutral molecule after convergence (but note that since BDF does not yet support reading the RHF/RKS wave function as the first guess for the UHF/UKS calculation, the monovalent cation of the closed-shell layer should be calculated using UHF /UKS calculation). In extreme cases it is even possible to calculate the higher valence cations first, then add a small number (e.g. 2) of electrons to reconverge the SCF, then add a small number of subs, and so on until the original wave function of the neutral system is obtained. Another common tool is to perform the SCF calculation under the small basis group first, and then use the expandmo module to project the SCF orbitals of the small basis group onto the original basis group after convergence, and then iterate the SCF under the original basis group until convergence.
Increase the grid points, which is applicable to the case of type 3 and sometimes also valid for the case of type 4. This is done by using grid keywords, e.g.
grid
fine
Note:(1)For meta-GGA generalized functions, the default grid point is already fine, so the grid point should be set to ultra fine; (2)Increasing the grid point will increase the time spent in each SCF iteration step; (3)Increasing the grid point will make the converged energy incomparable with other calculations without changing the grid, so if you want to compare this calculation with previous calculations, or to compare the energy/free energy obtained from this calculation with other calculations, etc., you must recalculate all relevant calculations already done with the same grid point as this input file. Therefore, if you want to compare this calculation with previous calculations, or if you want to compare the energy/free energy obtained from this calculation with the results of other calculations, etc., you must recalculate all the relevant calculations already done with the same grid points as this input file, even if those calculations already done can converge without increasing the grid points. If the results do not improve after increasing the grid points, you should try other methods; if the results improve but still do not converge, you can further try to change the fine to ultra fine; if it still does not converge, you should consider the following methods.
The threshold value for the double electron integration is set tightly for the category 3 case and sometimes for the category 4 case as well. This is done by adding to the SCF module.
optscreen
1
This method, like increasing the grid point, also increases the time consumed for each SCF iteration and also leads to results that are not comparable to those without the optscreen. This method is only applicable to calculations without MPEC or MPEC+COSX enabled.
set the threshold for determining the linear correlation of the base group loose, for the category 4 case. This is done by adding to the $scf module.
checklin
tollin
1.d-6
This method will make the converged energy incomparable with other calculations without changing the tollin. It is not recommended to set the tollin larger than 1.d-5, otherwise it will lead to larger errors. If the tollin is set to 1.d-5 and still there is a non-convergence of type 4, then the methods described above, such as increasing the grid point and changing the two-electron integration threshold, should be considered.
Note that among the above methods, if a method does not converge the SCF but makes it converge better than before, the next method should be tried with
guess
readmo
The orbit of the last SCF iteration of the previous method is read as the first guess. However, if the previous method backfired and caused the SCF convergence to deteriorate, the next method should be tried either by starting again with an atomic guess or by picking the track of the last iteration of the other previously tried method as the first guess (this of course requires the user to back up the tracks obtained for each SCF convergence method in advance).
Acceleration algorithms for self-consistent field calculations
An important feature of the BDF is the acceleration of the energy and gradient calculations of SCF and TDDFT using the MPEC+COSX method. Set up the MPEC+COSX calculation with the following inputs.
#! amylose2.sh
HF/cc-pvdz MPEC+COSX
Geometry
H -5.27726610038004 0.15767995434597 1.36892178079618
H -3.89542800401751 -2.74423996083456 -2.30130324998720
H -3.40930212959730 3.04543096108345 1.73325487719318
O -4.25161610042910 -0.18429704053319 1.49882079466485
H -4.12153806480025 0.39113300040060 -0.47267019103680
O -3.93883902709049 -2.16385597983528 -1.37984323910654
H -3.65755506365314 -2.55190701717719 0.56784675873394
H -2.66688104102718 -3.13999999152083 -0.32869523309397
O -3.68737510690803 2.57255697808269 0.79063986197194
H -2.16845111442446 1.40439897322928 1.59675986910159
H -0.80004208156425 3.67692503357694 -0.87083105709857
C -3.47036908085237 0.21757398797107 0.38361581865084
C -3.08081604941874 -2.23618399620817 -0.25179522317288
H -1.85215308213129 -1.05270701067006 0.92020982572454
C -2.73634509645279 1.50748698767418 0.67208385967460
O -0.95388209186676 2.93603601652216 -0.08659407523165
H -2.34176605974133 2.08883703173396 -1.35500112054343
C -2.46637306624908 -0.89337899823852 0.07760781649778
C -1.77582007601201 1.83730601785282 -0.45887211416401
O -1.70216504605578 -0.48600696920536 -1.07005315975028
H -0.26347504436884 0.90841605388912 -1.67304510231922
C -0.87599906000257 0.65569503172715 -0.80788211986139
H 1.05124197574425 -4.08129295376550 -0.80486617677089
H 1.91283792081157 2.93924205088598 -0.71300301703422
O 0.07007992244287 0.29718501862843 0.19143889205868
H 1.28488995808993 -0.48228594245462 -1.27588009910221
O 0.83243796215244 -3.05225096122844 -0.51820416035526
H 0.03099092283770 -2.15700599981123 1.08682384153403
H 0.99725792474852 -3.21082099855794 1.38542783977374
O 1.92550793896406 1.99389906198042 -1.25576903593383
H 2.32288890226196 1.52348902475463 0.72949896259198
H 5.42304993860699 1.71940008598879 -1.13583497057179
C 1.35508593454345 -0.11004196264200 -0.25348109013556
C 0.98581793175676 -2.43946398581436 0.75228585517262
H 1.91238990103301 -0.83125899736406 1.66788890655085
C 2.32240292575108 1.05122704465611 -0.25278704698785
O 4.65571492366175 1.63248206459704 -0.36643098789343
H 3.77658595927138 0.23304608296485 -1.60079803407907
C 1.86060292384221 -1.20698497780059 0.68314589788694
C 3.72997793572998 0.57134806164321 -0.56599702816882
O 3.14827793673614 -1.62888795836893 0.20457391544942
H 5.12279093584136 -0.96659193933436 0.00181296891020
C 4.14403492674986 -0.60389595307832 0.31494395641232
O 4.31314989648861 -0.29843197973243 1.69336596603165
H 3.37540288537848 0.07856300492440 2.10071295465512
End geometry
If in advanced input mode, simply add the keyword MPEC+COSX
to the COMPASS module input, e.g.
$compass
Geometry
H -5.27726610038004 0.15767995434597 1.36892178079618
H -3.89542800401751 -2.74423996083456 -2.30130324998720
H -3.40930212959730 3.04543096108345 1.73325487719318
O -4.25161610042910 -0.18429704053319 1.49882079466485
H -4.12153806480025 0.39113300040060 -0.47267019103680
O -3.93883902709049 -2.16385597983528 -1.37984323910654
H -3.65755506365314 -2.55190701717719 0.56784675873394
H -2.66688104102718 -3.13999999152083 -0.32869523309397
O -3.68737510690803 2.57255697808269 0.79063986197194
H -2.16845111442446 1.40439897322928 1.59675986910159
H -0.80004208156425 3.67692503357694 -0.87083105709857
C -3.47036908085237 0.21757398797107 0.38361581865084
C -3.08081604941874 -2.23618399620817 -0.25179522317288
H -1.85215308213129 -1.05270701067006 0.92020982572454
C -2.73634509645279 1.50748698767418 0.67208385967460
O -0.95388209186676 2.93603601652216 -0.08659407523165
H -2.34176605974133 2.08883703173396 -1.35500112054343
C -2.46637306624908 -0.89337899823852 0.07760781649778
C -1.77582007601201 1.83730601785282 -0.45887211416401
O -1.70216504605578 -0.48600696920536 -1.07005315975028
H -0.26347504436884 0.90841605388912 -1.67304510231922
C -0.87599906000257 0.65569503172715 -0.80788211986139
H 1.05124197574425 -4.08129295376550 -0.80486617677089
H 1.91283792081157 2.93924205088598 -0.71300301703422
O 0.07007992244287 0.29718501862843 0.19143889205868
H 1.28488995808993 -0.48228594245462 -1.27588009910221
O 0.83243796215244 -3.05225096122844 -0.51820416035526
H 0.03099092283770 -2.15700599981123 1.08682384153403
H 0.99725792474852 -3.21082099855794 1.38542783977374
O 1.92550793896406 1.99389906198042 -1.25576903593383
H 2.32288890226196 1.52348902475463 0.72949896259198
H 5.42304993860699 1.71940008598879 -1.13583497057179
C 1.35508593454345 -0.11004196264200 -0.25348109013556
C 0.98581793175676 -2.43946398581436 0.75228585517262
H 1.91238990103301 -0.83125899736406 1.66788890655085
C 2.32240292575108 1.05122704465611 -0.25278704698785
O 4.65571492366175 1.63248206459704 -0.36643098789343
H 3.77658595927138 0.23304608296485 -1.60079803407907
C 1.86060292384221 -1.20698497780059 0.68314589788694
C 3.72997793572998 0.57134806164321 -0.56599702816882
O 3.14827793673614 -1.62888795836893 0.20457391544942
H 5.12279093584136 -0.96659193933436 0.00181296891020
C 4.14403492674986 -0.60389595307832 0.31494395641232
O 4.31314989648861 -0.29843197973243 1.69336596603165
H 3.37540288537848 0.07856300492440 2.10071295465512
End geometry
Basis
cc-pvdz
MPEC+COSX # ask for the MPEC+COSX method
$end
The SCF module will output a prompt about whether MPEC+COSX are both set to True.
--- PRINT: Information about SCF Calculation ---
ICTRL_FRAGSCF= 0
IPRTMO= 1
MAXITER= 100
THRENE= 0.10E-07 THRDEN= 0.50E-05
DAMP= 0.00 VSHIFT= 0.00
IFDIIS= T
THRDIIS= 0.10E+01
MINDIIS= 2 MAXDIIS= 8
iCHECK= 0
iAUFBAU= 1
INIGUESS= 0
IfMPEC= T
IfCOSX= T
Here, IfMPEC= T
and IfCOSX= T
indicates that the MPEC+COSX method is used to compute. the SCF iterative process is as follows.
[scf_cycle_init_ecdenpot]
Meomory for coulpotential 0.02 G
Start SCF iteration......
Iter. idiis vshift SCF Energy DeltaE RMSDeltaD MaxDeltaD Damping Times(S)
1 0 0.000 -1299.6435521238 -23.7693069405 0.0062252375 0.2842668435 0.0000 2.69
2 1 0.000 -1290.1030630508 9.5404890730 0.0025508000 0.1065204344 0.0000 1.65
3 2 0.000 -1290.2258798561 -0.1228168053 0.0014087449 0.0742227520 0.0000 1.67
4 3 0.000 -1290.4879683983 -0.2620885422 0.0002338141 0.0153879051 0.0000 1.64
5 4 0.000 -1290.4955210658 -0.0075526675 0.0000713807 0.0049309441 0.0000 1.57
6 5 0.000 -1290.4966349620 -0.0011138962 0.0000156009 0.0010663736 0.0000 1.51
7 6 0.000 -1290.4966797420 -0.0000447800 0.0000043032 0.0002765334 0.0000 1.44
8 7 0.000 -1290.4966810419 -0.0000012999 0.0000014324 0.0000978302 0.0000 1.37
9 8 0.000 -1290.4966794202 0.0000016217 0.0000003030 0.0000173603 0.0000 1.40
10 2 0.000 -1290.4966902283 -0.0000108081 0.0000000659 0.0000034730 0.0000 1.11
diis/vshift is closed at iter = 10
11 0 0.000 -1290.5003691464 -0.0036789181 0.0000225953 0.0009032949 0.0000 5.85
Label CPU Time SYS Time Wall Time
SCF iteration time: 179.100 S 1.110 S 22.630 S
Final DeltaE = -3.678918126752251E-003
Final DeltaD = 2.259533940614071E-005 5.000000000000000E-005
Final scf result
E_tot = -1290.50036915
E_ele = -3626.68312754
E_nn = 2336.18275840
E_1e = -6428.96436179
E_ne = -7717.90756825
E_kin = 1288.94320647
E_ee = 2802.28123424
E_xc = 0.00000000
Virial Theorem 2.001208
On a desktop with an i9-9900K CPU, eight OpenMP threads compute in parallel in 22 seconds. The SCF calculation under the same conditions without MPEC+COSX method, the computation takes 110 seconds, and MPEC+COSX speeds up the computation by a factor of about 5.
iOI-SCF calculation for large systems and the FLMO method
For large systems (e.g., systems with atomic numbers larger than 300), the traditional SCF calculation methods are often no longer applicable because, in addition to the longer construction time of the Fock matrix at each step The reasons for this are the following factors:
The Fock matrix diagonalization time increases as a percentage of the total calculation time. When the system is large enough, the construction time of the Fock matrix per step is proportional to the square of the system size. The Fock matrix diagonalization time is proportional to the square of the system size, but the Fock matrix diagonalization time is proportional to the third power of the system size, so for particularly large systems (e.g., thousands of protons), the Fock Therefore, for particularly large systems (e.g., thousands of elements), the Fock matrix diagonalization will account for a significant proportion of the total computation time.
The greater number of locally stable wave functions in large systems leads to a lower probability of convergence of the SCF calculation to the user’s desired state for large systems. In other words, the SCF may converge to many different solutions, only one of which is the user’s desired one, thus increasing the probability that the user can determine whether the SCF solution is his or her desired one, and (if it converges) the probability of convergence to the user’s desired state. Therefore, it increases the time overhead for the user to determine whether the SCF solution is the desired one and to resubmit the computation (if it converges to a non-desired solution).
The convergence of the SCF for large systems is more difficult than for small systems, requiring more iterative steps or even failing to converge at all. This is not only because the above the number of locally stable solutions becomes larger, but also partly because the mass of the general atomic density-based SCF first guess becomes worse as the system increases The quality of the general atomic density-based SCFs deteriorates as the system increases.
One solution to this problem is to divide the system into segments (a process called binning; these segments can overlap with each other) and do a separate SCF for each segment. BDF’s FLMO method (Fragment localized molecular orbital) is a fragmentation-based method, in which the SCF of each fragment is converged and the converged wave function of each fragment is localized. The resulting local orbital is then used to generate a first guess for the total system calculation. This provides some additional benefits over a slice based approach that does not rely on local orbits.
The SCF iteration can be performed on the local orbital basis, where the Fock matrix does not need to be fully diagonalized, but only block diagonalized, i.e., the orbit is rotated so that the occupied-empty block is zero, a step that is less computationally intensive than the full diagonalization.
The occupied-empty blocks of the Fock matrix in the local orbital basis are very sparse, and this sparsity can be exploited to further reduce the computational effort of block diagonalization.
The user can specify the occupation number of a local orbital before the global SCF calculation, and thus selectively obtain the occupied or unoccupied electronic states of that local orbital. For example, to calculate a metal cluster consisting of one Fe(II) and one Fe(III), one can control which Fe converges to the divalent group and which Fe converges to the trivalent group by specifying the occupation number of Fe 3d orbitals. In the current version of BDF another approach is actually supported, i.e. the direct specification of the formal oxidation and spin states of the atoms (see below). For convenience reasons, it is generally recommended that the user specify which electronic state to converge to directly by the formal oxidation and spin states of the atom.
The SCF calculation yields the converged local orbitals directly, instead of just the regular orbitals as in the normal SCF calculation. If the user needs to obtain convergent local orbitals for wave function analysis, etc., then the FLMO method can save a lot of computational time compared to the traditional approach of obtaining the regular orbitals first and then performing localization, and can also avoid the problem of large systems with many iterations of localization that tend to be non-convergent.
FLMO has been used to obtain the localized orbitals of molecules, iOI-SCF, FLMO-MP2, O(1)-NMR, and other methods, and also to calculate the singlet states of open-shell layers for the study of single-molecule magnets and other problems.
Calculating the Fractionated Domain Molecular Orbital FLMO (Manual Fractionation)
In order to give the user an intuitive understanding of FLMO, we give an example of FLMO calculation. Here, we want to calculate the domains of the 1,3,5,7-octatetraene \(\ce{C8H10}\) molecule by the FLMO method. We first calculate 4 molecular slices, each consisting of a central atom, a buffer atom and a linked H-atom. Because of the simple molecular structure, the molecular slices are obtained by manual slicing, i.e., the central atom of each molecular slice is a C=C double bond and all hydrogen atoms attached to it, and the buffer atoms are the C=C double bonds directly linked to the C=C double bond and the hydrogen atoms attached to them, i.e., 1,3-butadiene for slice 1 and slice 4, and 1,3,5-hexatriene for slice 2 and slice 3. After the convergence of the SCF calculation, the molecular slices were used to obtain the molecular slices domain orbitals by the Boys domainization method. After all the molecular slices were calculated, the pFLMO (primitive Fragment Localized Molecular Orbital) of the whole molecule was synthesized from the four molecular slices. The pFLMO is used as an initial guess to calculate the entire \(\ce{C8H10}\) molecule and to obtain the localized FLMO. input example is as follows
###### Fragment 1
%echo "-------CHECKDATA: Calculate the 1st fragment -------------"
$COMPASS
Title
Fragment 1
Basis
6-31G
Geometry
c 0.5833330000 0.0 0.0000000000
c 1.9203330000 0.0 0.0000000000
h 0.0250410000 0.0 -0.9477920000
h 0.0250620000 0.0 0.9477570000
h 2.4703130000 0.0 -0.9525920000
c 2.6718330000 0.0 1.3016360000 B
c 4.0088330000 0.0 1.3016360000 B
h 4.7603330000 0.0 2.6032720000 L
h 2.1218540000 0.0 2.2542280000 B
h 4.5588130000 0.0 0.3490440000 B
End geometry
$END
$XUANYUAN
$END
$SCF
RHF
iprtmo
2
$END
$localmo
FLMO
$end
# copy pFLMO punch file
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_TMPDIR/fragment1
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_WORKDIR/fragment1
##### Fragment 2
%echo "-------CHECKDATA: Calculate the 2nd fragment -------------"
$COMPASS
Title
Fragment 2
Basis
6-31G
Geometry
c 0.5833330000 0.0 0.0000000000 B
c 1.9203330000 0.0 0.0000000000 B
h 0.0250410000 0.0 -0.9477920000 L
h 0.0250620000 0.0 0.9477570000 B
h 2.4703130000 0.0 -0.9525920000 B
c 2.6718330000 0.0 1.3016360000
c 4.0088330000 0.0 1.3016360000
h 2.1218540000 0.0 2.2542280000
h 4.5588130000 0.0 0.3490440000
c 4.7603330000 0.0 2.6032720000 B
c 6.0973330000 0.0 2.6032720000 B
h 4.2103540000 0.0 3.5558650000 B
h 6.6473130000 0.0 1.6506800000 B
h 6.8488330000 0.0 3.9049090000 L
End geometry
$END
$XUANYUAN
$END
$SCF
RHF
iprtmo
2
$END
$localmo
FLMO
$end
# copy pFLMO punch file
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_TMPDIR/fragment2
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_WORKDIR/fragment2
%ls -l $BDF_TMPDIR
%rm -rf $BDF_TMPDIR/$BDFTASK.*
# Fragment 3
%echo "-------CHECKDATA: Calculate the 3rd fragment -------------"
$COMPASS
Title
Fragment 3
Basis
6-31G
Geometry
c 2.6718330000 0.0 1.3016360000 B
c 4.0088330000 0.0 1.3016360000 B
h 1.9203330000 0.0 0.0000000000 L
h 2.1218540000 0.0 2.2542280000 B
h 4.5588130000 0.0 0.3490440000 B
c 4.7603330000 0.0 2.6032720000
c 6.0973330000 0.0 2.6032720000
h 4.2103540000 0.0 3.5558650000
h 6.6473130000 0.0 1.6506800000
c 6.8488330000 0.0 3.9049090000 B
c 8.1858330000 0.0 3.9049090000 B
h 6.2988540000 0.0 4.8575010000 B
h 8.7441260000 0.0 4.8527010000 L
h 8.7441050000 0.0 2.9571520000 B
End geometry
$END
$XUANYUAN
$END
$SCF
RHF
iprtmo
2
$END
# flmo_coef_gen=1, iprt=2, ipro=(6,7,8,9), icut=(3,13),
$localmo
FLMO
$end
# copy pFLMO punch file
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_TMPDIR/fragment3
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_WORKDIR/fragment3
%ls -l $BDF_TMPDIR
%rm -rf $BDF_TMPDIR/$BDFTASK.*
# Fragment 4
%echo "-------CHECKDATA: Calculate the 4th fragment -------------"
$COMPASS
Title
Fragment 4
Basis
6-31G
Geometry
h 4.0088330000 0.0 1.3016360000 L
c 4.7603330000 0.0 2.6032720000 B
c 6.0973330000 0.0 2.6032720000 B
h 4.2103540000 0.0 3.5558650000 B
h 6.6473130000 0.0 1.6506800000 B
c 6.8488330000 0.0 3.9049090000
c 8.1858330000 0.0 3.9049090000
h 6.2988540000 0.0 4.8575010000
h 8.7441260000 0.0 4.8527010000
h 8.7441050000 0.0 2.9571520000
End geometry
$END
$XUANYUAN
$END
$SCF
RHF
iprtmo
2
$END
# flmo_coef_gen=1, iprt=1, ipro=(6,7,8,9,10), icut=(1)
$localmo
FLMO
$end
# copy pFLMO punch file
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_TMPDIR/fragment4
%cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_WORKDIR/fragment4
%ls -l $BDF_TMPDIR
%rm -rf $BDF_TMPDIR/$BDFTASK.*
# Whole Molecule calculation
%echo "--------CHECKDATA: From fragment to molecular SCF calculation---------------"
$COMPASS
Title
Whole Molecule calculation
Basis
6-31G
Geometry
c 0.5833330000 0.0 0.0000000000
c 1.9203330000 0.0 0.0000000000
h 0.0250410000 0.0 -0.9477920000
h 0.0250620000 0.0 0.9477570000
h 2.4703130000 0.0 -0.9525920000
c 2.6718330000 0.0 1.3016360000
c 4.0088330000 0.0 1.3016360000
h 2.1218540000 0.0 2.2542280000
h 4.5588130000 0.0 0.3490440000
c 4.7603330000 0.0 2.6032720000
c 6.0973330000 0.0 2.6032720000
h 4.2103540000 0.0 3.5558650000
h 6.6473130000 0.0 1.6506800000
c 6.8488330000 0.0 3.9049090000
c 8.1858330000 0.0 3.9049090000
h 6.2988540000 0.0 4.8575010000
h 8.7441260000 0.0 4.8527010000
h 8.7441050000 0.0 2.9571520000
End geometry
Nfragment
4
Group
C(1)
$END
$XUANYUAN
$END
$SCF
RHF
FLMO
iprtmo
2
sylv
threshconv
1.d-8 1.d-6
$END
&DATABASE
fragment 1 9 # Fragment 1 with 9 atoms
1 2 3 4 5 6 7 8 9 # atom number in the whole molecule
fragment 2 12
1 2 4 5 6 7 8 9 10 11 12 13
fragment 3 12
6 7 8 9 10 11 12 13 14 15 16 18
fragment 4 9
10 11 12 13 14 15 16 17 18
&END
- In the input, we give the annotations. The calculation of each molecular slice consists of four modules:
compass
、xuanyuan
、scf
及localmo
. The four steps of preprocessing, integration calculation, SCF calculation and molecular orbitals localization are done respectively, and the file $BDFTASK.flmo , where the domain orbitals are stored, is copied to $BDF_TMPDIR by inserting the shell
cp $BDF_WORKDIR/$BDFTASK.flmo $BDF_TMPDIR/fragment*
after the localmo module.
After the 4 molecular fragments are calculated, the whole molecule calculation is done, and the input starts from
# Whole Molecule calculation
. In the compass, there is the keyword Nfragment 4, which prompts to read in 4 molecule fragments, and the molecule fragment information is defined in the &DATABASE
field.
The SCF calculation for the whole molecule starts by reading in the four molecular slices of the fixed-domain orbitals, constructing the pFLMO, and giving the orbital stretch factor Mos (molecular orbital spread, where a larger Mos for a given fixed-domain orbital means that the fixed-domain orbital is more off-domain, and vice versa), as follows.
Reading fragment information and mapping orbitals ...
Survived FLMO dims of frag( 11): 8 17 0 46 9
Survived FLMO dims of frag( 15): 8 16 0 66 12
Survived FLMO dims of frag( 15): 8 16 0 66 12
Survived FLMO dims of frag( 11): 8 17 0 46 9
Input Nr. of FLMOs (total, occ., soc., vir.) : 98 32 0 66
nmo != nbas
98 92
Local Occupied Orbitals Mos and Moc
Max_Mos: 1.89136758 Min_Mos: 0.31699600 Aver_Mos: 1.32004368
Local Virtual Orbitals Mos and Moc
Max_Mos: 2.46745638 Min_Mos: 1.46248295 Aver_Mos: 2.14404812
The prepared Nr. of pFLMOs (total, occ., vir.) : 98 32 0 66
Input Nr. of FLMOs (total, double-occ., single-occ, vir.) : 98 32 0 66
No. double-occ orbitals: 29
No. single-occ orbitals: 0
No. virtual orbitals: 63
iden= 1 29 63 32 66
Transfer dipole integral into Ao basis ...
Transfer quadrupole integral into Ao basis ...
Eliminate the occupied linear-dependent orbitals !
Max_Mos: 1.89136758 Min_Mos: 0.31699600 Aver_Mos: 1.32004368
3 linear dependent orbitals removed by preliminary scan
Initial MO/AO dimension are : 29 92
Finally 29 orbitals left. Number of cutted MO 0
Max_Mos: 1.89136758 Min_Mos: 0.31699600 Aver_Mos: 1.29690971
Perform Lowdin orthonormalization to occ pFLMOs
Project pFLMO occupied components out of virtual FLMOs
Max_Mos: 2.46467150 Min_Mos: 1.46222542 Aver_Mos: 2.14111949
3 linear dependent orbitals removed by preliminary scan
Initial NO, NV, AO dimension are : 29 63 92
Finally 92 orbitals left. Number of cutted MO 0
Max_Mos: 2.46467150 Min_Mos: 1.46222542 Aver_Mos: 2.15946681
Perform Lowdin orthonormalization to virtual pFLMOs 63
Local Occupied Orbitals Mos and Moc
Max_Mos: 1.88724854 Min_Mos: 0.31689707 Aver_Mos: 1.29604628
Local Virtual Orbitals Mos and Moc
Max_Mos: 2.53231018 Min_Mos: 1.46240853 Aver_Mos: 2.16493518
Prepare FLMO time : 0.03 S 0.02 S 0.05 S
Finish FLMO-SCF initial ...
It can be seen that the maximum Mos of pFLMO for the whole molecule is less than 2.6, and the pFLMO is fixed-domain regardless of the occupied or imaginary orbitals. The initial guess of the overall molecule is made by using pFLMO, and it enters the SCF iteration, using the block diagonalization method to keep the minimum perturbation of the orbitals, and the output is as follows.
Check initial pFLMO orbital MOS
Local Occupied Orbitals Mos and Moc
Max_Mos: 1.88724854 Min_Mos: 0.31689707 Aver_Mos: 1.29604628
Local Virtual Orbitals Mos and Moc
Max_Mos: 2.53231018 Min_Mos: 1.46240853 Aver_Mos: 2.16493518
DNR !!
Final iter : 79 Norm of Febru 0.86590E-06
X --> U time: 0.000 0.000 0.000
block diag 0.017 0.000 0.017
block norm : 2.3273112079137773E-004
1 0 0.000 -308.562949067 397.366768902 0.002100841 0.027228292 0.0000 0.53
DNR !!
Final iter : 57 Norm of Febru 0.48415E-06
X --> U time: 0.000 0.000 0.017
block diag 0.000 0.000 0.017
block norm : 1.3067586006786384E-004
2 1 0.000 -308.571009930 -0.008060863 0.000263807 0.003230630 0.0000 0.52
DNR !!
Final iter : 43 Norm of Febru 0.64098E-06
X --> U time: 0.000 0.000 0.000
block diag 0.017 0.000 0.017
block norm : 3.6831175797520882E-005
After the SCF converges, the system prints the Mos information of molecular orbitals once again.
Print pFLMO occupation for checking ...
Occupied alpha obitals ...
Local Occupied Orbitals Mos and Moc
Max_Mos: 1.91280597 Min_Mos: 0.31692300 Aver_Mos: 1.30442588
Local Virtual Orbitals Mos and Moc
Max_Mos: 2.53288468 Min_Mos: 1.46274299 Aver_Mos: 2.16864691
Write FLMO coef into scratch file ... 214296
Reorder orbital via orbital energy ... 1 1
It can be seen that the Mos of the final FLMO does not change much compared with the pFLMO and maintains a good domain fixation.
The above manual slicing method is tedious for molecules with complex structures, because not only the definition of each molecular slice needs to be given manually, but also the correspondence between the atomic number of each slice and the total system needs to be given in the &DATABASE
domain. In contrast, a more convenient approach is to use the following automatic slicing method.
Calculation of open-shell-layer singlet states using FLMO (automatic binning)
The study of single-molecule magnets, as well as certain catalytic systems, etc., often encounters so-called antiferromagnetic coupled states, which generally consist of two electrons of opposite spin occupying different atomic centers in the form of open-shell layers (open-shell layer singlet states), but may also involve multiple single electrons.BDF can be combined with the FLMO method to calculate open-shell layer singlet states. For example, the following example uses the FLMO method to calculate the spin-broken ground state of a system containing Cu(II) and nitrogen-oxygen stabilized radicals.
$autofrag
method
flmo
nprocs
2 # ask for 2 parallel processes to perform FLMO calculation
spinocc
# Set +1 spin population on atom 9 (O), set -1 spin population on atom 16 (Cu)
9 +1 16 -1
# Add no buffer atoms, except for those necessary for saturating dangling bonds.
# Minimizing the buffer radius helps keeping the spin centers localized in
# different fragments
radbuff
0
$end
$compass
Title
antiferromagnetically coupled nitroxide-Cu complex
Basis
LANL2DZ
Geometry
C -0.16158257 -0.34669203 1.16605797
C 0.02573099 -0.67120566 -1.13886544
H 0.90280854 -0.26733412 1.24138440
H -0.26508467 -1.69387001 -1.01851639
C -0.81912799 0.50687422 2.26635740
H -0.52831123 1.52953831 2.14600864
H -1.88351904 0.42751668 2.19103081
N -0.38402395 0.02569744 3.58546820
O 0.96884699 0.12656182 3.68120994
C -1.01167974 0.84046608 4.63575398
H -0.69497152 0.49022160 5.59592309
H -0.72086191 1.86312982 4.51540490
H -2.07607087 0.76110974 4.56042769
N -0.40937388 -0.19002965 -2.45797639
C -0.74875417 0.18529223 -3.48688305
Cu -1.32292113 0.82043400 -5.22772307
F -1.43762557 -0.29443417 -6.57175160
F -1.72615042 2.50823941 -5.45404079
H -0.45239892 -1.36935628 1.28640692
H 1.09012199 -0.59184704 -1.06353906
O -0.58484750 0.12139125 -0.11715881
End geometry
$end
$xuanyuan
$end
$scf
uks
dft
PBE0
spinmulti
1
D3
molden
$end
$localmo
FLMO
Pipek # Pipek-Mezey localization, recommended when pure sigma/pure pi LMOs are needed.
# Otherwise Boys is better
$end
FLMO calculations do not currently support concise input. In this example, the autofrag
module is used to automatically fragment the molecule and generate the basic input for the FLMO calculation. BDF first generates the molecular fragments based on the molecular structure in the compass
and the parameter definition information of autofrag
, as well as the input file for the molecular fragment localization orbital calculation.
Then the pFLMO (primitive Fragment Local Molecular Orbital) of the whole molecule is assembled with the domain-fixed orbital of the fragment as the initial guess orbital for the global SCF calculation, and then the open-shell layer singlet state of the whole molecule is obtained by the global SCF calculation while keeping the domain-fixed orbital at each iteration step. In the calculation, the output of the molecular fragment calculation
is saved as ${BDFTASK}.framgmentN.out
, N is the fragment number, and the standard output prints only the output of the overall molecular calculation for the sake of output brevity.
The output will give information about the molecular fragmentation that
----------- Buffered molecular fragments ----------
BMolefrag 1: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 19, 20, 21], [], [14], [14, 15], 0.0, 1.4700001016690913]
BMolefrag 2: [[14, 15, 16, 17, 18], [2, 4, 20], [21], [21], 0.0, 1.4700001016690913]
--------------------------------------------------------------------
Automatically assigned charges and spin multiplicities of fragments:
--------------------------------------------------------------------
Fragment Total No. of atoms Charge SpinMult SpinAlignment
1 17 0 2 Alpha
2 9 0 2 Beta
--------------------------------------------------------------------
Generate BDF input file ....
Here it can be seen that we have generated two molecular fragments, specifying that molecular slice 1 consists of 17 atoms with a spin multiplicity of 2, and that molecular slice 2 consists of 9 atoms with a spin multiplicity of 2, but with the opposite spin direction as molecular slice 1 , i.e. one more beta electron than alpha electron, instead of one more alpha electron than beta electron.
The 2 molecular slices are then calculated separately, with the following message (assuming the environment variable OMP_NUM_THREADS
is set to 4):
Starting subsystem calculations ...
Number of parallel processes: 2
Number of OpenMP threads per process: 2
Please refer to test117.fragment*.out for detailed output
Total number of not yet converged subsystems: 2
List of not yet converged subsystems: [1, 2]
Finished calculating subsystem 2 ( 1 of 2)
Finished calculating subsystem 1 ( 2 of 2)
Starting global calculation ...
This care of the computational resource settings. The total computational resources are the product of the number of parallel processes and the number of OpenMP threads per process, where the number of processes is set by the nprocs
keyword of the autofrag
module, and the total computational resources are This takes care of the computational resource settings.
The total computational resources are the product of the number of parallel pset by the environment variable OMP_NUM_THREADS
, and the number of threads per process is automatically obtained by dividing the total computational resources by the number of processes.
The computational output of the overall numerator is similar to a normal SCF calculation, but with a chunked diagonalized Fock matrix to keep the orbit definite.
Check initial pFLMO orbital MOS
Openshell alpha :
Local Occupied Orbitals Mos and Moc
Max_Mos: 1.89684048 Min_Mos: 0.25791767 Aver_Mos: 1.15865182
Local Virtual Orbitals Mos and Moc
Max_Mos: 8.01038107 Min_Mos: 1.56092594 Aver_Mos: 3.04393282
Openshell beta :
Local Occupied Orbitals Mos and Moc
Max_Mos: 3.00463332 Min_Mos: 0.21757580 Aver_Mos: 1.24636228
Local Virtual Orbitals Mos and Moc
Max_Mos: 8.00411948 Min_Mos: 1.78248588 Aver_Mos: 3.04672070
...
1 0 0.000 -849.642342776 1158.171170064 0.046853948 4.840619682 0.5000 3.54
DNR !!
SDNR: warning: rotation angle too large, aborting
Final iter : 5 Norm of Febru 0.20133E+00
X --> U time: 0.000 0.000 0.000
block diag 0.000 0.000 0.000
block norm : 0.290774097871744
DNR !!
Final iter : 359 Norm of Febru 0.82790E-06
X --> U time: 0.000 0.000 0.000
block diag 0.020 0.000 0.010
block norm : 8.589840290871769E-003
The orbital stretch (Mos) information is given at the beginning of the iteration, the smaller the number, the better the orbital fixity. Mos is printed again after the SCF converges. From the results of the Bourget analysis,
[Mulliken Population Analysis]
Atomic charges and Spin densities :
1C -0.2481 0.0010
2C -0.1514 0.0013
3H 0.2511 -0.0002
4H 0.2638 -0.0006
5C -0.3618 -0.0079
6H 0.2511 0.0240
7H 0.2436 -0.0013
8N 0.0128 0.3100
9O -0.2747 0.6562
10C -0.5938 -0.0092
11H 0.2696 0.0040
12H 0.2414 0.0242
13H 0.2302 -0.0016
14N 0.1529 -0.0202
15C -0.2730 0.0162
16Cu 0.8131 -0.5701
17F -0.5019 -0.2113
18F -0.4992 -0.2143
19H 0.2207 0.0008
20H 0.2666 -0.0000
21O -0.3128 -0.0008
Sum: -0.0000 0.0000
It can be seen that the spin densities of -0.5701 for Cu and 0.6562 for 9O are consistent with the pre-specified spins, indicating that the calculations do converge to the desired open-shell singlet state. Note that the absolute value of the spin density here is less than 1, indicating that the spin densities on Cu and 9O are not strictly localized to these two atoms, but are partially off-domain to the next atom.
In the above example, the autofrag
module input looks complicated, but the spinocc
and radbuff
keywords are not necessary for the FLMO method, i.e. the following input file will still work successfully,
except that it does not ensure that the spin orientation of Cu and O is the user-specified orientation:
$autofrag
method
flmo
nprocs
2
$end
The nprocs
indicates the parallelization of the SCF computation for each subsystem, i.e., multiple subsystems are allowed to be computed at the same time.
If the nprocs
keyword is omitted, which is equivalent to setting nprocs
to 1, the program will compute all subsystems in turn, with each subsystem occupying 8 OpenMP threads and waiting for one subsystem to finish before computing the next one.
There is no difference in the result compared to using nprocs
, but the efficiency of the calculation may be reduced. Therefore, nprocs
only affects the efficiency of the FLMO computation, not its results, i.e., the following writeup will also run successfully, but the computation time may be slightly longer than writing nprocs
:
$autofrag
method
flmo
$end
Note that setting nprocs
too large or too small may result in an increase in computation time. For the sake of discussion, assume that the environment variable OMP_NUM_THREADS
is set to 8 for the FLMO calculation of a larger molecule.
nprocs
4
It indicates that:
When the program starts subsystem computation, it calls 4 concurrent BDF processes simultaneously, each of which computes one subsystem. If the total number of subsystems N is less than 4, then only N concurrent BDF processes are called.
Each BDF process uses 2 OpenMP threads. When the total number of subsystems is less than 4, some subsystem computations may use 3 or 4 OpenMP threads, but the number of concurrent OpenMP threads for the entire computation task is never more than 8.
At the beginning of the computation, the entire computation uses exactly 8 OpenMP threads, but as the computation nears its end, when less than 4 subsystems remain to be computed, the number of OpenMP threads used for the entire computation may be less than 8.
The optimal value of nprocs
is determined by two main factors.
Because the parallel efficiency of OpenMP is generally less than 100%, if four tasks of equal duration are run simultaneously, each using two OpenMP threads, the time spent is generally less than if each task is run in turn and each task uses eight OpenMP threads.
The computation times for each subsystem are not identical, and may even differ by a factor of several. If some tasks take significantly longer than others, running 4 tasks at the same time with 2 threads per subsystem may be slower than computing each subsystem sequentially with 8 threads, because some computational resources will be idle later in the computation when the 4 subsystems are being computed simultaneously. This is also known as the load balancing problem.
Therefore, if nprocs
too small or too large, the computation may be less efficient. In general, nprocs
is set to about 1/5 to 1/3 of the total number of subsystems. If there is no proper estimate of the number of subsystems generated by the system before the calculation, nprocs
can be simply set to a smaller positive integer such as 1 or 2.
The exception is that nprocs
can be made larger if it is known that the various subsystems of the calculation are computationally similar. nprocs
For example, in the example at the beginning of this subsection, although there are only two subsystems, the smaller subsystem contains transition metal atoms Cu and the larger subsystem is purely organic, so both subsystems have similar computation times and can be computed simultaneously.
iOI-SCF method
The iOI method can be considered as an improvement of the FLMO method. In the FLMO method, even if automatic binning is used, the user still needs to specify the size of the molecular slice with the keywords radcent
and radbuff
. Although both keywords have default values (3.0 and 2.0, respectively), neither the default values nor the user-specified values are guaranteed to be optimal for the current system.
If the molecular slice is too small, the quality of the obtained fixed-domain orbitals is too poor; if the molecular slice is too large, it leads to too much computation and non-convergence of the fixed-domain iterations. In contrast, the iOI method starts from a relatively small piece of molecule and keeps increasing and fusing the pieces until the piece of molecule reaches the desired size, and then performs the global calculation. Each increase and fusion of molecular slices is called a Macro-iteration.
An example is as follows.
$autofrag
method
ioi # To request a conventional FLMO calculation, change ioi to flmo
nprocs
2 # Use at most 2 parallel processes in calculating the subsystems
$end
$compass
Title
hydroxychloroquine (diprotonated)
Basis
6-31G(d)
Geometry # snapshot of GFN2-xTB molecular dynamics at 298 K
C -4.2028 -1.1506 2.9497
C -4.1974 -0.4473 4.1642
C -3.7828 0.9065 4.1812
C -3.4934 1.5454 2.9369
C -3.4838 0.8240 1.7363
C -3.7584 -0.5191 1.7505
H -4.6123 -0.8793 5.0715
C -3.3035 3.0061 2.9269
H -3.1684 1.2214 0.8030
H -3.7159 -1.1988 0.9297
C -3.1506 3.6292 4.2183
C -3.3495 2.9087 5.3473
H -2.8779 4.6687 4.2878
H -3.2554 3.3937 6.3124
N -3.5923 1.5989 5.4076
Cl -4.6402 -2.7763 3.0362
H -3.8651 1.0100 6.1859
N -3.3636 3.6632 1.7847
H -3.4286 2.9775 1.0366
C -3.5305 5.2960 -0.0482
H -2.4848 5.4392 -0.0261
H -3.5772 4.3876 -0.6303
C -4.1485 6.5393 -0.7839
H -3.8803 6.3760 -1.8559
H -5.2124 6.5750 -0.7031
C -3.4606 7.7754 -0.2653
H -2.3720 7.6699 -0.3034
H -3.7308 7.9469 0.7870
N -3.8415 8.9938 -1.0424
H -3.8246 8.8244 -2.0837
C -2.7415 9.9365 -0.7484
H -1.7736 9.4887 -0.8943
H -2.8723 10.2143 0.3196
C -2.7911 11.2324 -1.6563
H -1.7773 11.3908 -2.1393
H -3.5107 10.9108 -2.4646
H -3.0564 12.0823 -1.1142
C -5.1510 9.6033 -0.7836
H -5.5290 9.1358 0.1412
H -5.0054 10.6820 -0.6847
C -6.2224 9.3823 -1.8639
H -6.9636 10.1502 -1.7739
H -5.8611 9.4210 -2.8855
O -6.7773 8.0861 -1.6209
H -7.5145 7.9086 -2.2227
C -4.0308 4.9184 1.3736
H -3.7858 5.6522 2.1906
C -5.5414 4.6280 1.3533
H -5.8612 3.8081 0.7198
H -5.9086 4.3451 2.3469
H -6.1262 5.5024 1.0605
End geometry
MPEC+cosx # Accelerate the SCF iterations using MPEC+COSX. Not mandatory
$end
$xuanyuan
rs # the range separation parameter omega (or mu) of wB97X
0.3
$end
$scf
rks
dft
wB97X
iprt # Increase print level for more verbose output. Not mandatory
2
charge
2
$end
$localmo
FLMO
$end
Note that in the iOI calculation, the meaning of the nprocs
keyword is the same as in the FLMO calculation, and the appropriate value needs to be chosen according to the size of the molecule, and the different values of nprocs
still only affect the calculation speed but not the results. The difference with the FLMO calculation is that the iOI calculation involves multiple macro iterations (see below), and the number of subsystems in each macro iteration is decreasing,
so the optimal value of nprocs
should be conservative, e.g., 1/10-1/5 of the number of subsystems in the macro iteration at step 0.
At the beginning of the program, the molecule is divided into 5 molecular slices.
----------- Buffered molecular fragments ----------
BMolefrag 1: [[4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19], [1, 16, 2, 3, 7, 15, 17, 46, 47, 48, 49, 50, 51], [20], [20, 21, 22, 23], 2.0, 2.193]
BMolefrag 2: [[20, 21, 22, 23, 24, 25, 26, 27, 28, 46, 47, 48, 49, 50, 51], [18, 19, 29, 30], [8, 31, 38], [8, 4, 11, 31, 32, 33, 34, 38, 39, 40, 41], 2.0, 2.037]
BMolefrag 3: [[2, 3, 7, 15, 17], [1, 16, 4, 8, 5, 6, 9, 10, 11, 12, 13, 14], [18], [18, 19, 46], 2.0, 3.5]
BMolefrag 4: [[29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], [23, 24, 25, 26, 27, 28, 20, 21, 22], [46], [46, 18, 47, 48], 2.0, 3.386]
BMolefrag 5: [[1, 16], [2, 3, 7, 5, 6, 9, 10, 4, 8], [15, 11, 18], [15, 12, 17, 11, 13, 18, 19, 46], 2.0, 2.12]
--------------------------------------------------------------------
Automatically assigned charges and spin multiplicities of fragments:
--------------------------------------------------------------------
Fragment Total No. of atoms Charge SpinMult SpinAlignment
1 26 1 1 N.A.
2 22 1 1 N.A.
3 18 1 1 N.A.
4 27 1 1 N.A.
5 14 1 1 N.A.
--------------------------------------------------------------------
Here SpinAlignment is shown as N.A. because all molecular sheets are in closed-shell layer and therefore there is no problem of spin orientation.
After that the subsystem calculation starts.
Starting subsystem calculations ...
Number of parallel processes: 2
Number of OpenMP threads per process: 2
Please refer to test106.fragment*.out for detailed output
Macro-iter 0:
Total number of not yet converged subsystems: 5
List of not yet converged subsystems: [4, 1, 2, 3, 5]
Finished calculating subsystem 4 ( 1 of 5)
Finished calculating subsystem 2 ( 2 of 5)
Finished calculating subsystem 1 ( 3 of 5)
Finished calculating subsystem 5 ( 4 of 5)
Finished calculating subsystem 3 ( 5 of 5)
Maximum population of LMO tail: 110.00000
======================================
Elapsed time of post-processing: 0.10 s
Total elapsed time of this iteration: 34.28 s
After that the program fuses these 5 molecular sheets two by two and expands the buffer to obtain 3 larger subsystems. The definition of the 3 larger subsystems is given in ${BDFTASK}.ioienlarge.out
.
Finding the optimum iOI merge plan...
Initial guess merge plan...
Iter 0 Number of permutations done: 1
New center fragments (in terms of old center fragments):
Fragment 1: 5 3
NBas: 164 184
Fragment 2: 2 4
NBas: 164 174
Fragment 3: 1
NBas: 236
Center fragment construction done, total elapsed time 0.01 s
Subsystem construction done, total elapsed time 0.01 s
That is, the new subsystem 1 is obtained by fusing (and expanding the buffer) the old subsystems 5 and 3, the new subsystem 2 is obtained by fusing (and expanding the buffer) the old subsystems 2 and 4, and the new subsystem 3 is obtained directly by expanding the buffer of the old subsystem 1. Then the SCF calculation of these larger subsystems is performed using the converged fixed domain orbits of the original 5 smaller subsystems as the first guess.
Macro-iter 1:
Total number of not yet converged subsystems: 3
List of not yet converged subsystems: [2, 3, 1]
Finished calculating subsystem 3 ( 1 of 3)
Finished calculating subsystem 1 ( 2 of 3)
Finished calculating subsystem 2 ( 3 of 3)
Fragment 1 has converged
Fragment 2 has converged
Fragment 3 has converged
Maximum population of LMO tail: 0.04804
======================================
*** iOI macro-iteration converged! ***
Elapsed time of post-processing: 0.04 s
Total elapsed time of this iteration: 33.71 s
At this point, the program automatically determines that the size of these subsystems is sufficient to converge the LMO of the system to the required accuracy, so the iOI macro iteratively converges and the iOI global computation is performed. iOI global computation produces an output similar to the FLMO global computation, but to further accelerate the block diagonalization of the Fock matrix, some of the converged LMOs are frozen in the iOI global computation, thus reducing the number of Fock matrices requiring block diagonalization. The dimensionality of the Fock matrix to be diagonalized is reduced, but also introduces a small error (typically of the order of \(10^{-6} \sim 10^{-5}\) Hartree). As an example, take the last step of the SCF iteration.
DNR !!
47 of 90 occupied and 201 of 292 virtual orbitals frozen
SDNR. Preparation: 0.01 0.00 0.00
norm and abs(maximum value) of Febru 0.35816E-03 0.11420E-03 gap = 1.14531
Survived/total Fia = 472 3913
norm and abs(maximum value) of Febru 0.36495E-03 0.11420E-03 gap = 1.14531
Survived/total Fia = 443 3913
norm and abs(maximum value) of Febru 0.16908E-03 0.92361E-04 gap = 1.14531
Survived/total Fia = 615 3913
norm and abs(maximum value) of Febru 0.11957E-03 0.21708E-04 gap = 1.14531
Survived/total Fia = 824 3913
norm and abs(maximum value) of Febru 0.68940E-04 0.15155E-04 gap = 1.14531
Survived/total Fia = 965 3913
norm and abs(maximum value) of Febru 0.56539E-04 0.15506E-04 gap = 1.14531
Survived/total Fia = 737 3913
norm and abs(maximum value) of Febru 0.30450E-04 0.62094E-05 gap = 1.14531
Survived/total Fia = 1050 3913
norm and abs(maximum value) of Febru 0.36500E-04 0.82498E-05 gap = 1.14531
Survived/total Fia = 499 3913
norm and abs(maximum value) of Febru 0.14018E-04 0.38171E-05 gap = 1.14531
Survived/total Fia = 1324 3913
norm and abs(maximum value) of Febru 0.43467E-04 0.15621E-04 gap = 1.14531
Survived/total Fia = 303 3913
norm and abs(maximum value) of Febru 0.12151E-04 0.26221E-05 gap = 1.14531
Survived/total Fia = 837 3913
norm and abs(maximum value) of Febru 0.15880E-04 0.82575E-05 gap = 1.14531
Survived/total Fia = 185 3913
norm and abs(maximum value) of Febru 0.52265E-05 0.71076E-06 gap = 1.14531
Survived/total Fia = 1407 3913
norm and abs(maximum value) of Febru 0.31827E-04 0.12985E-04 gap = 1.14531
Survived/total Fia = 253 3913
norm and abs(maximum value) of Febru 0.77674E-05 0.24860E-05 gap = 1.14531
Survived/total Fia = 650 3913
norm and abs(maximum value) of Febru 0.56782E-05 0.38053E-05 gap = 1.14531
Survived/total Fia = 264 3913
SDNR. Iter: 0.01 0.00 0.00
Final iter : 16 Norm of Febru 0.25948E-05
X --> U time: 0.000 0.000 0.000
SDNR. XcontrU: 0.00 0.00 0.00
block diag 0.020 0.000 0.000
block norm : 2.321380955939448E-004
Predicted total energy change: -0.0000000659
9 0 0.000 -1401.6261867529 -0.0011407955 0.0000016329 0.0000904023 0.0000 16.97
That is, 47 occupied and 201 imaginary orbits are frozen.
After the convergence of the iOI global computation of SCF, the energy and settling analysis information can be read from the output file following the general SCF computation, which is not repeated here.
Time-dependent Density Generalized Function Theory
The BDF supports a variety of excited state calculation methods, including the linear response time-density generalized function (TDDFT) method based on the Kohn-Sham reference state, and the Tamm-Dancoff approximation (TDA) of the TDDFT method. Compared with other quantization software, the TDDFT module of BDF is unique. The main features are
support for various spin-flip (spin-flip) methods.
support spin-matching TDDFT method X-TDDFT, which can effectively solve the problem of spin contamination of excited states when the reference state is an open-shell layer, and is suitable for excited state calculation of free radicals, transition metals and other systems.
support core excited state (core excited state) related calculations, such as the calculation of the X-ray absorption spectrum (XAS). The iVI method used in BDF can directly calculate all excited states in a higher energy interval without calculating the lower excited states, thus saving computational resources.
support the calculation of first-order non-adiabatic coupling matrix element (fo-NACME, or NACME for short), especially between excited states and excited states NACME is mainly used to study non-radiative leap processes, such as using Fermi’s golden rule NACME is mainly used to study non-radiative leap processes, such as the calculation of the endoconversion rate constant using Fermi’s golden rule, or the study of endoconversion, photochemical processes using non-adiabatic kinetics, etc. Many quantum chemistry programs support NACME between ground and excited states, but fewer programs support NACME between excited and excited states. Therefore, BDF has a unique advantage over most existing quantum chemistry programs for processes such as excited-to-excited state endoconversions and multi-state photochemical reactions.
In addition to TDDFT, BDF also supports the calculation of excited states at the SCF level using the mom方法 .
Danger
All general functions of the SCAN family(e.g.,SCAN0,r2SCAN) suffer from the “triplet instability” problem [65], Should not be used for SF-TDDFT calculations(e.g,triple excited states for closed-shell systems). TDA is recommended for this case.
Closed-shell system calculations:R-TDDFT
R-TDDFT is used to calculate closed-shell systems. If the ground state calculation starts from the RHF, the TDDFT module performs the TDHF calculation. To calculate the excitation energy of \(\ce{H2O}\) molecules using TDDFT, a concise input is given as follows.
#!bdf.sh
TDDFT/B3lyp/cc-pvdz iroot=1
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
Here, the keyword TDDFT/B3lyp/cc-pvdz
specifies that the TDDFT calculation is performed, the generic function used is B3lyp
, and the basis group is cc-pVDZ
.
The corresponding high-level input is
$compass
Geometry
O
H 1 1.0
H 1 1.0 2 109.
End geometry
Basis
cc-pvdz
$end
$xuanyuan
$end
$scf
RKS # Restricted Kohn-sham
DFT # DFT exchange-correlation functional B3lyp
b3lyp
$end
# input for tddft
$tddft
iroot # For each irrep, calculate 1 root.
1 #on default, 10 roots are calculated for each irreps if advanced input used
$end
The four modules COMPASS , XUANYUAN , SCF and TDDFT are called sequentially to complete the computation. The SCF module performs the RKS calculation. Based on the results of the RKS calculation, the subsequent TDDFT calculation is performed.
Note that since the water molecule belongs to the \(\rm C_{2v}\) point group, there are 4 integrable representations, and the excited states of different integrable representations are solved separately, so there are several ways to specify the number of excited states depending on the user’s requirements, such as
(1)Calculate 1 excited state for each integrable representation.
$TDDFT
iroot
1
$END
At this time, the excited state calculated by each irreducible representation has a high probability of being the excited state with the lowest energy under the irreducible representation, but this cannot be guaranteed, that is to say, there is a small probability that the excited state will converge to the second excited state or even higher. some excited state. If you want to increase the probability of getting the lowest excited state, you can write
$TDDFT
iroot
2
$END
At this time, two excited states are calculated for each irreducible representation, and the probability that the first excited state calculated under each irreducible representation is the excited state with the lowest energy under the irreducible representation is higher than when iroot=1. In addition, at this time, the second excited state calculated under each irreducible representation has a high probability of being the excited state with the second lowest energy under the irreducible representation, but the probability of satisfying this point is higher than that of the first excited state calculated under the irreducible representation. The probability of being the excited state with the lowest energy under this irreducible representation is lower. If iroot is increased further, the calculated probability that the first excited state is the one with the lowest energy quickly approaches 100%, but never strictly reaches 100%.
For similar reasons, not only is it often necessary to set iroot greater than 1 when calculating 1 excited state, but when calculating N (N > 1) excited states, if you want to relatively reliably ensure that these N excited states are the lowest energy The N excited states of , also need to set iroot greater than N. In general, iroot should be set larger, for example, at least 3 larger than the desired number of excited states, when the molecule satisfies one of the following conditions: (1) the molecule has approximate point group symmetry; (2) the molecule Although it has exact point group symmetry, the calculation is performed at a lower point group due to program limitations or at the user’s request, such as in the open-shell TDDFT (see below) calculation, because the open-shell TDDFT code does not support non- Abelian point group, and the calculation is performed under the largest Abelian subgroup instead. When the molecule does not belong to one of the above cases, the iroot only needs to be slightly larger than the desired number of excited states, eg 1-2 larger.
(2)Counting only one B1 excited state and one B2 excited state, and not counting the excited states in the other integrable representations.
#! tdtest.sh
TDDFT/B3lyp/3-21G nroot=0,0,1,1
Geometry
...
End geometry
or
$TDDFT
nroot
0 0 1 1 # 也可输入为 0,0,1,1
$END
where the nroot keyword indicates the number of excited states specified by the user for each integrable representation. Since the program internally arranges the integrable representations of the \(\rm C_{2v}\) point group in the order of A1, A2, B1, and B2 (see the section on the ordering of the integrable representations of the point group), the above input indicates that only one excited state each of B1 and B2 is counted.
(3)Calculate the lowest 4 excited states without limiting the integrable representations of these excited states
#! tdtest.sh
TDDFT/B3lyp/3-21G iroot=-4
Geometry
...
End geometry
or
$TDDFT
iroot
-4
$END
In this case, the program uses the initial guessed excitation energy to determine how many excitation states should be solved for each integrable representation, but since the initial guessed order of excitation energy may be different from the fully converged excitation energy, the program cannot strictly guarantee that the 4 excitation states obtained must be the 4 lowest energy states. If the user requires a strict guarantee that the 4 excited states obtained are the lowest 4 excited states, the user should make the program calculate more than 4 excited states, e.g., 8 excited states, and then take the 4 lowest energy states.
The output of the Kohn-Sham calculation has already been described, so here we will only focus on the results of the TDDFT calculation. The program output will first give information about the settings of the TDDFT calculation, so that the user can easily check whether the settings are calculated or not, as follows.
--------------------------------------------------
--- PRINT: Information about TDDFT calculation ---
--------------------------------------------------
ERI Maxblk= 8M
[print level]
iprt= 0
[method]
R-TD-DFT
isf= 0
SC Excitations
RPA: (A-B)(A+B)Z=w2*Z
[special choice for method]
ialda= 0
[active space]
Full active space
[algorithm]
Target Excited State in each rep / Diag method :
1 A1 1 1
2 A2 1 1
3 B1 1 1
4 B2 1 1
[dvdson_parameters]
iupdate = 3
Nfac = 50
Nmaxcycle= 50
nblock = 50
crit_e = 0.10E-06
crit_vec = 0.10E-04
crit_demo= 0.10E-07
crit_indp= 0.10E-09
guess = 20
dump = 0
[output eigenvector control]
cthrd= 0.100
-------------------------------------------------
--- END : Information about TDDFT calculation ---
-------------------------------------------------
Here,
R-TD-DFT
indicates that the TDDFT based on the restricted basis wave function calculation is being performed.isf= 0
indicates that no flipping spin is being computed.ialda= 0
indicates that the ``Full non-collinear Kernel``is used, which is the default Kernel for the non-spin-flipping TDDFT.
The output below gives the number of roots computed for each non-collinear representation.
Target Excited State in each rep / Diag method :
1 A1 1 1
2 A2 1 1
3 B1 1 1
4 B2 1 1
The TDDFT module also prints information about occupied orbitals, virtual orbitals, and other active orbitals computed by TDDFT
Print [Active] Orbital List
---[Alpha set]---
idx irep (rep,ibas,type) F_av(eV) iact
---------------------------------------------------
1 1 A1 1 2 -520.34813 0.05
2 1 A1 2 2 -26.42196 1.84
3 3 B1 1 2 -13.66589 2.96
4 1 A1 3 2 -9.50404 2.49
5 4 B2 1 2 -7.62124 2.12
6 1 A1 4 0 1.23186 9.86
7 3 B1 2 0 3.27539 11.48
8 3 B1 3 0 15.02893 7.40
9 1 A1 5 0 15.44682 6.60
10 1 A1 6 0 24.53525 4.35
11 4 B2 2 0 25.07569 3.88
12 3 B1 4 0 27.07545 6.17
13 2 A2 1 0 33.09515 3.99
14 1 A1 7 0 34.03695 5.08
15 4 B2 3 0 39.36812 4.67
16 3 B1 5 0 43.83066 4.86
17 1 A1 8 0 43.91179 4.34
18 3 B1 6 0 55.56126 4.35
19 1 A1 9 0 56.13188 4.04
20 4 B2 4 0 78.06511 2.06
21 2 A2 2 0 80.16952 2.10
22 1 A1 10 0 83.17934 2.38
23 1 A1 11 0 94.37171 2.81
24 3 B1 7 0 99.90789 2.86
Here, orbitals 1-5 are occupied orbitals and 6-24 are virtual orbitals, where the 5th and 6th orbitals are HOMO and LUMO orbitals, belonging to integrable representation B2 and integrable representation A1 respectively, with orbital energies of -7.62124 eV and 1.23186 eV respectively. Since the \(\ce{H2O}\) molecule has 4 irreducible representations, the TDDFT solves for each integrable representation one by one. The system estimates the memory usage before proceeding to the Davidson iteration to solve the Casida equation.
==============================================
Jrep: 1 ExctSym: A1 (convert to td-psym)
Irep: 1 PairSym: A1 GsSym: A1
Nexit: 1 Nsos: 33
==============================================
Estimated memory for JK operator: 0.053 M
Maxium memory to calculate JK operator: 512.000 M
Allow to calculate 1 roots at one pass for RPA ...
Allow to calculate 2 roots at one pass for TDA ...
Nlarge= 33 Nlimdim= 33 Nfac= 50
Estimated mem for dvdson storage (RPA) = 0.042 M 0.000 G
Estimated mem for dvdson storage (TDA) = 0.017 M 0.000 G
Here, the system counts about 0.053 MB of memory needed to store the JK operator, and 512 MB of memory for the input setting (see memjkop
keyword).
The system suggests that the RPA calculation, i.e., the full TDDFT calculation can count 1 root per pass (one pass) and the TDA calculation can count 2 roots per pass. Since the molecular system is small, there is enough memory.
For larger molecular systems, if the number of allowed roots per pass output here is less than the system setting, the TDDFT module will construct the JK operator by multiple integration calculations based on the maximum number of allowed roots, resulting in a decrease in computational efficiency and requiring the user to increase memory with the memjkop
keyword.
Davidson iteration starts computing the output information as follows.
Iteration started !
Niter= 1 Nlarge = 33 Nmv = 2
Ndim = 2 Nlimdim= 33 Nres= 31
Approximated Eigenvalue (i,w,diff/eV,diff/a.u.):
1 9.5246226546 9.5246226546 0.350E+00
No. of converged eigval: 0
Norm of Residuals:
1 0.0120867135 0.0549049429 0.121E-01 0.549E-01
No. of converged eigvec: 0
Max norm of residues : 0.549E-01
*** New Directions : sTDDFT-Davidson step ***
Left Nindp= 1
Right Nindp= 1
Total Nindp= 2
[tddft_dvdson_ZYNI]
Timing For TDDFT_AVmat, Total: 0.08s 0.02s 0.02s
MTrans1: 0.00s 0.02s 0.00s
COULPOT: 0.00s 0.00s 0.00s
AVint : 0.08s 0.00s 0.02s
MTrans2: 0.00s 0.00s 0.00s
TDDFT ZYNI-AV time-TOTAL 0.08 S 0.02 S 0.02 S
TDDFT ZYNI-AV time-Coulp 0.08 S 0.02 S 0.02 S
TDDFT ZYNI-AV time-JKcon 0.00 S 0.00 S 0.00 S
tddft JK operator time: 0.00 S 0.00 S 0.00 S
Niter= 2 Nlarge = 33 Nmv = 4
Ndim = 4 Nlimdim= 33 Nres= 29
Approximated Eigenvalue (i,w,diff/eV,diff/a.u.):
1 9.3817966321 0.1428260225 0.525E-02
No. of converged eigval: 0
Norm of Residuals:
1 0.0029082582 0.0074085379 0.291E-02 0.741E-02
No. of converged eigvec: 0
The convergence information is as follows.
Niter= 5 Nlarge = 33 Nmv = 10
Ndim = 10 Nlimdim= 33 Nres= 23
Approximated Eigenvalue (i,w,diff/eV,diff/a.u.):
1 9.3784431931 0.0000001957 0.719E-08
No. of converged eigval: 1
### Cong: Eigenvalues have Converged ! ###
Norm of Residuals:
1 0.0000009432 0.0000023006 0.943E-06 0.230E-05
No. of converged eigvec: 1
Max norm of residues : 0.230E-05
### Cong. Residuals Converged ! ###
------------------------------------------------------------------
Orthogonality check2 for iblock/dim = 0 1
Averaged nHxProd = 10.000
Ndim = 1 Maximum nonzero deviation from Iden = 0.333E-15
------------------------------------------------------------------
------------------------------------------------------------------
Statistics for [dvdson_rpa_block]:
No. of blocks = 1
Size of blocks = 50
No. of eigens = 1
No. of HxProd = 10 Averaged = 10.000
Eigenvalues (a.u.) =
0.3446513056
------------------------------------------------------------------
The first line of the above output shows that the computation converges in 5 iterations. The system then prints the information of the converged electronic state.
No. 1 w=9.3784 eV -76.0358398606 a.u. f= 0.0767 D<Pab>= 0.0000 Ova= 0.5201
CV(0): A1( 3 )-> A1( 4 ) c_i: 0.9883 Per: 97.7% IPA: 10.736 eV Oai: 0.5163
CV(0): B1( 1 )-> B1( 2 ) c_i: -0.1265 Per: 1.6% IPA: 16.941 eV Oai: 0.6563
Estimate memory in tddft_init mem: 0.001 M
The information in the first line is as follows
No. 1 w= 9.3784 eV
means that the first excited state has an excitation energy of9.3784 eV
;-76.0358398606 a.u.
gives the total energy of the first excited state;f= 0.0767
gives the intensity of the oscillator of the jump between the first excited state and the ground state;D<Pab>= 0.0000
is the difference between the <S^2> value of the excited state and the <S^2> value of the ground state (for spin-conserving jumps, this value reflects the degree of spin contamination of the excited state; for spin-flip jumps, the difference between this value and the theoretical valueS(S+1)(excited state) - S(S+1)(ground state)
reflects the degree of spin contamination of the excited state).Ova= 0.5201
is the absolute overlap integral, which takes values in the range [0,1], the closer the value is to 0, the more pronounced the charge transfer characteristics of the corresponding excited state, otherwise the more pronounced the localized excitation characteristics).
Lines 2 and 3 give information on the excited main group states
CV(0):
where CV(0) means that the excitation is a Core to Virtual orbital excitation and 0 means that it is a Singlet excitation;A1( 3 ) -> A1( 4 )
gives the occupied-vacancy orbital pair for the electron leap from the 3rd orbital of A1 to the 4th orbital of A1, which is the HOMO-2 to LUMO excitation when combined with the above output orbital information.c_i: 0.9883
means that the linear combination factor of this jump in the whole excited state is 0.9883;Per: 97.7%
indicates that this excited state accounts for 97.7% of the total number of excited states.IPA: 10.736 eV
represents the energy difference of 10.736 eV between the two orbitals involved in the jump.Oai: 0.5163
means that if the excited state has only the contribution of this one leap, then the absolute overlap integral of this excited state is 0.5001. From this information, it is convenient to know which leaps are local excitations and which leaps are charge transfer excitations.
After all integrable representations have been solved, all excited states are summarized in order of higher or lower energy output.
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 B2 1 B2 7.1935 eV 172.36 nm 0.0188 0.0000 99.8% CV(0): B2( 1 )-> A1( 4 ) 8.853 0.426 0.0000
2 A2 1 A2 9.0191 eV 137.47 nm 0.0000 0.0000 99.8% CV(0): B2( 1 )-> B1( 2 ) 10.897 0.356 1.8256
3 A1 2 A1 9.3784 eV 132.20 nm 0.0767 0.0000 97.7% CV(0): A1( 3 )-> A1( 4 ) 10.736 0.520 2.1850
4 B1 1 B1 11.2755 eV 109.96 nm 0.0631 0.0000 98.0% CV(0): A1( 3 )-> B1( 2 ) 12.779 0.473 4.0820
Subsequently, the transition dipole moments also printed.
*** Ground to excited state Transition electric dipole moments (Au) ***
State X Y Z Osc.
1 -0.0000 -0.3266 0.0000 0.0188 0.0188
2 0.0000 0.0000 0.0000 0.0000 0.0000
3 0.0000 0.0000 0.5777 0.0767 0.0767
4 0.4778 -0.0000 0.0000 0.0631 0.0631
Calculation of the open-shell layer system:U-TDDFT
The open-shell layer system can be calculated using U-TDDFT, e.g. for \(\ce{H2O+}\) ions, the UKS calculation is performed first, and then the U-TDDFT calculation is used to calculate the excited state. A typical input is that
#!bdf.sh
TDDFT/B3lyp/cc-pvdz iroot=4 group=C(1) charge=1
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
Here, the keyword
iroot=4
specifies that 4 roots are calculated for each integrable representation.charge=1
specifies that the charge of the system is +1.group=C(1)
specifies that the C1 point group calculation is forced.
The corresponding high-level input is.
$compass
#Notice: The unit of molecular coordinate is angstrom
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
basis
cc-pVDZ
group
C(1) # Force to use C1 symmetry
$end
$xuanyuan
$end
$scf
uks
dft
b3lyp
charge
1
spinmulti
2
$end
$tddft
iroot
4
$end
A few details to note about this input are
The
compass
module uses the keywordgroup
to force the calculation to use theC(1)
point group;The
scf
module sets theUKS
calculation withcharge
of1
andspinmulti
(spin multi, 2S+1) = 2;The
iroot
of thetddft
module is set to count 4 roots per integrable representation, and since C1 symmetry is used, the calculation gives the first four excited states of the cation of water.
The U-TDDFT calculation is performed as can be seen from the following output.
--------------------------------------------------
--- PRINT: Information about TDDFT calculation ---
--------------------------------------------------
ERI Maxblk= 8M
[print level]
iprt= 0
[method]
U-TD-DFT
isf= 0
SC Excitations
RPA: (A-B)(A+B)Z=w2*Z
The calculation summarizes the output of the 4 excited states as
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A 2 A 2.1960 eV 564.60 nm 0.0009 0.0024 99.4% CO(bb): A( 4 )-> A( 5 ) 5.955 0.626 0.0000
2 A 3 A 6.3479 eV 195.31 nm 0.0000 0.0030 99.3% CO(bb): A( 3 )-> A( 5 ) 9.983 0.578 4.1520
3 A 4 A 12.0991 eV 102.47 nm 0.0028 1.9312 65.8% CV(bb): A( 4 )-> A( 6 ) 14.637 0.493 9.9032
4 A 5 A 13.3618 eV 92.79 nm 0.0174 0.0004 97.6% CV(aa): A( 4 )-> A( 6 ) 15.624 0.419 11.1659
The third excited state has a large D<S^2>
value, indicating a spin contamination problem.
Open-shell system: X-TDDFT (also called SA-TDDFT)
X-TDDFT is a spin-matched TDDFT method for calculating the open-shell layer system. The open-shell system U-TDDFT triplet state coupled to a double-occupied to imaginary orbital excited state (labeled CV(1) in BDF) suffers from spin contamination and thus its excitation energy is often underestimated. X-TDDFT can be used to solve this problem. Considering \(\ce{N2+}\) molecules, the concise computational inputs to X-TDDFT are
#! N2+.sh
X-TDDFT/b3lyp/aug-cc-pvtz group=D(2h) charge=1 spinmulti=2 iroot=5
Geometry
N 0.00 0.00 0.00
N 0.00 0.00 1.1164
End geometry
Advanced input
$compass
#Notice: The unit of molecular coordinate is angstrom
Geometry
N 0.00 0.00 0.00
N 0.00 0.00 1.1164
End geometry
basis
aug-cc-pvtz
group
D(2h) # Force to use D2h symmetry
$end
$xuanyuan
$end
$scf
roks # ask for ROKS calculation
dft
b3lyp
charge
1
spinmulti
2
$end
$tddft
iroot
5
$end
Here, the SCF module requires the ROKS
method to calculate the ground state, and the TDDFT module will default to the X-TDDFT calculation.
The excited state output is.
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 B2u 1 B2u 0.7902 eV 1569.00 nm 0.0017 0.0195 98.6% CO(0): B2u( 1 )-> Ag( 3 ) 3.812 0.605 0.0000
2 B3u 1 B3u 0.7902 eV 1569.00 nm 0.0017 0.0195 98.6% CO(0): B3u( 1 )-> Ag( 3 ) 3.812 0.605 0.0000
3 B1u 1 B1u 3.2165 eV 385.46 nm 0.0378 0.3137 82.6% CO(0): B1u( 2 )-> Ag( 3 ) 5.487 0.897 2.4263
4 B1u 2 B1u 8.2479 eV 150.32 nm 0.0008 0.9514 48.9% CV(1): B2u( 1 )-> B3g( 1 ) 12.415 0.903 7.4577
5 Au 1 Au 8.9450 eV 138.61 nm 0.0000 1.2618 49.1% CV(0): B2u( 1 )-> B2g( 1 ) 12.903 0.574 8.1548
6 Au 2 Au 9.0519 eV 136.97 nm 0.0000 1.7806 40.1% CV(1): B3u( 1 )-> B3g( 1 ) 12.415 0.573 8.2617
7 B1u 3 B1u 9.0519 eV 136.97 nm 0.0000 1.7806 40.1% CV(1): B3u( 1 )-> B2g( 1 ) 12.415 0.906 8.2617
8 B2g 1 B2g 9.4442 eV 131.28 nm 0.0000 0.0061 99.0% OV(0): Ag( 3 )-> B2g( 1 ) 12.174 0.683 8.6540
9 B3g 1 B3g 9.4442 eV 131.28 nm 0.0000 0.0061 99.0% OV(0): Ag( 3 )-> B3g( 1 ) 12.174 0.683 8.6540
10 Au 3 Au 9.5281 eV 130.12 nm 0.0000 0.1268 37.0% CV(0): B3u( 1 )-> B3g( 1 ) 12.903 0.574 8.7379
11 B1u 4 B1u 9.5281 eV 130.12 nm 0.0000 0.1267 37.0% CV(0): B2u( 1 )-> B3g( 1 ) 12.903 0.909 8.7379
12 Au 4 Au 10.7557 eV 115.27 nm 0.0000 0.7378 49.1% CV(1): B3u( 1 )-> B3g( 1 ) 12.415 0.575 9.9655
13 B3u 2 B3u 12.4087 eV 99.92 nm 0.0983 0.1371 70.4% CV(0): B1u( 2 )-> B2g( 1 ) 15.288 0.793 11.6185
14 B2u 2 B2u 12.4087 eV 99.92 nm 0.0983 0.1371 70.4% CV(0): B1u( 2 )-> B3g( 1 ) 15.288 0.793 11.6185
15 B1u 5 B1u 15.9005 eV 77.98 nm 0.7766 0.7768 32.1% CV(0): B3u( 1 )-> B2g( 1 ) 12.903 0.742 15.1103
16 B2u 3 B2u 17.6494 eV 70.25 nm 0.1101 0.4841 92.0% CV(0): B2u( 1 )-> Ag( 4 ) 19.343 0.343 16.8592
17 B3u 3 B3u 17.6494 eV 70.25 nm 0.1101 0.4841 92.0% CV(0): B3u( 1 )-> Ag( 4 ) 19.343 0.343 16.8592
18 Ag 2 Ag 18.2820 eV 67.82 nm 0.0000 0.0132 85.2% OV(0): Ag( 3 )-> Ag( 4 ) 19.677 0.382 17.4918
19 B2u 4 B2u 18.5465 eV 66.85 nm 0.0021 1.5661 77.8% CV(1): B2u( 1 )-> Ag( 4 ) 19.825 0.401 17.7562
20 B3u 4 B3u 18.5465 eV 66.85 nm 0.0021 1.5661 77.8% CV(1): B3u( 1 )-> Ag( 4 ) 19.825 0.401 17.7562
21 Ag 3 Ag 18.7805 eV 66.02 nm 0.0000 0.2156 40.4% CV(0): B3u( 1 )-> B3u( 2 ) 20.243 0.337 17.9903
22 B1g 1 B1g 18.7892 eV 65.99 nm 0.0000 0.2191 40.5% CV(0): B2u( 1 )-> B3u( 2 ) 20.243 0.213 17.9990
23 B1g 2 B1g 18.8704 eV 65.70 nm 0.0000 0.2625 41.8% CV(0): B3u( 1 )-> B2u( 2 ) 20.243 0.213 18.0802
24 B3g 2 B3g 18.9955 eV 65.27 nm 0.0000 0.2673 83.4% CV(0): B2u( 1 )-> B1u( 3 ) 20.290 0.230 18.2053
25 B2g 2 B2g 18.9955 eV 65.27 nm 0.0000 0.2673 83.4% CV(0): B3u( 1 )-> B1u( 3 ) 20.290 0.230 18.2053
26 B3u 5 B3u 19.0339 eV 65.14 nm 0.0168 1.6012 66.7% CV(1): B1u( 2 )-> B2g( 1 ) 20.612 0.715 18.2437
27 B2u 5 B2u 19.0339 eV 65.14 nm 0.0168 1.6012 66.7% CV(1): B1u( 2 )-> B3g( 1 ) 20.612 0.715 18.2437
28 Ag 4 Ag 19.0387 eV 65.12 nm 0.0000 0.0693 35.9% CO(0): Ag( 2 )-> Ag( 3 ) 21.933 0.437 18.2484
29 Ag 5 Ag 19.3341 eV 64.13 nm 0.0000 0.1694 44.7% CO(0): Ag( 2 )-> Ag( 3 ) 21.933 0.457 18.5439
30 Ag 6 Ag 19.8685 eV 62.40 nm 0.0000 1.7807 40.4% CV(1): B3u( 1 )-> B3u( 2 ) 21.084 0.338 19.0783
31 B1g 3 B1g 19.8695 eV 62.40 nm 0.0000 1.7774 40.5% CV(1): B2u( 1 )-> B3u( 2 ) 21.084 0.213 19.0792
32 B3g 3 B3g 19.9858 eV 62.04 nm 0.0000 1.6935 80.7% CV(1): B2u( 1 )-> B1u( 3 ) 21.038 0.231 19.1956
33 B2g 3 B2g 19.9858 eV 62.04 nm 0.0000 1.6935 80.7% CV(1): B3u( 1 )-> B1u( 3 ) 21.038 0.231 19.1956
34 B1g 4 B1g 19.9988 eV 62.00 nm 0.0000 1.7373 41.8% CV(1): B3u( 1 )-> B2u( 2 ) 21.084 0.213 19.2086
35 B2g 4 B2g 20.2417 eV 61.25 nm 0.0000 0.2901 81.4% CV(0): B1u( 2 )-> B3u( 2 ) 22.628 0.228 19.4515
36 B3g 4 B3g 20.2417 eV 61.25 nm 0.0000 0.2901 81.4% CV(0): B1u( 2 )-> B2u( 2 ) 22.628 0.228 19.4515
37 Au 5 Au 21.2302 eV 58.40 nm 0.0000 0.2173 40.4% CV(0): B2u( 1 )-> B2g( 2 ) 22.471 0.157 20.4400
38 B2g 5 B2g 22.1001 eV 56.10 nm 0.0000 0.0031 99.2% OV(0): Ag( 3 )-> B2g( 2 ) 23.220 0.204 21.3099
39 B3g 5 B3g 22.1001 eV 56.10 nm 0.0000 0.0031 99.2% OV(0): Ag( 3 )-> B3g( 2 ) 23.220 0.204 21.3099
40 B1g 5 B1g 23.4663 eV 52.84 nm 0.0000 0.0027 99.8% OV(0): Ag( 3 )-> B1g( 1 ) 25.135 0.283 22.6761
Here, the 4th, 6th and 7th excited states are CV(1) states. Note that the D<S^2>
values calculated by SA-TDDFT are based on the U-TDDFT formula, which gives an approximation of the spin contamination of the results if these states were calculated by U-TDDFT, but does not represent the actual spin contamination of these states, since SA-TDDFT guarantees that all excited states are strictly free of spin contamination.
Therefore, a large value of D<S^2>
for a state calculated by SA-TDDFT does not indicate that the result for that state is unreliable, but rather indicates that SA-TDDFT is an improvement over U-TDDFT for that state.
Calculation of the triplet excited state using the closed-shell singlet state as the reference state
Starting from the ground state of the closed-shell layer of the \(\ce{H2O}\) molecule, the triplet excited state can be calculated. The simple input is.
#! bdf.sh
tdft/b3lyp/cc-pvdz iroot=4 spinflip=1
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
Note that although the keyword here is named spinflip, this calculation is not a spin-flip TDDFT calculation, since it calculates the \(M_S = 0\) component of the triplet excited state instead of the \(M_S = 1\) component. The corresponding high-level inputs are
$compass
#Notice: Coordinate unit is angstrom
geometry
O
H 1 R1
H 1 R1 2 109.
R1=1.0 # OH bond length in angstrom
end geometry
basis
cc-pvdz
group
C(1) # Force to use C1 symmetry
$end
$xuanyuan
$end
$scf
rks # ask for RKS calculation
dft
b3lyp
$end
$tddft
isf # ask for triplet TDDFT calculation
1
iroot
4
$end
When the TDDFT calculation is almost finished, there is an output message as follows.
*** List of excitations ***
Ground-state spatial symmetry: A
Ground-state spin: Si= 0.0000
Spin change: isf= 1
D<S^2>_pure= 2.0000 for excited state (Sf=Si+1)
D<S^2>_pure= 0.0000 for excited state (Sf=Si)
Imaginary/complex excitation energies : 0 states
Reversed sign excitation energies : 0 states
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A 1 A 6.4131 eV 193.33 nm 0.0000 2.0000 99.2% CV(1): A( 5 )-> A( 6 ) 8.853 0.426 0.0000
2 A 2 A 8.2309 eV 150.63 nm 0.0000 2.0000 97.7% CV(1): A( 4 )-> A( 6 ) 10.736 0.519 1.8177
3 A 3 A 8.4793 eV 146.22 nm 0.0000 2.0000 98.9% CV(1): A( 5 )-> A( 7 ) 10.897 0.357 2.0661
4 A 4 A 10.1315 eV 122.37 nm 0.0000 2.0000 92.8% CV(1): A( 4 )-> A( 7 ) 12.779 0.479 3.7184
*** Ground to excited state Transition electric dipole moments (Au) ***
State X Y Z Osc.
1 0.0000 0.0000 0.0000 0.0000 0.0000
2 0.0000 0.0000 0.0000 0.0000 0.0000
3 0.0000 0.0000 0.0000 0.0000 0.0000
4 0.0000 0.0000 0.0000 0.0000 0.0000
where Spin change: isf= 1
suggests that the calculation is for a state with a spin multiplet 2 larger than the ground state (i.e., a triplet state), and since the ground state is a single heavy state and the ground to excited state jump is spin-barred, the oscillator strength and jump dipole moment are both 0.
TDDFT only calculates excited states with the same spin as the reference state by default,For example, the ground state of an \(\ce{H2O}\) molecule is a single heavy state, and the TDDFT value calculates the single heavy excited state; to calculate both the single heavy state and the triplet state, the input is
#! H2OTDDFT.sh
TDDFT/b3lyp/cc-pVDZ iroot=4 spinflip=0,1
geometry
O
H 1 0.9
H 1 0.9 2 109.0
end geometry
The system will run TDDFT twice to calculate the single heavy state and triplet state respectively, where the output of the single heavy state is
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 B2 1 B2 8.0968 eV 153.13 nm 0.0292 0.0000 99.9% CV(0): B2( 1 )-> A1( 4 ) 9.705 0.415 0.0000
2 A2 1 A2 9.9625 eV 124.45 nm 0.0000 0.0000 99.9% CV(0): B2( 1 )-> B1( 2 ) 11.745 0.329 1.8656
3 A1 2 A1 10.1059 eV 122.69 nm 0.0711 0.0000 99.1% CV(0): A1( 3 )-> A1( 4 ) 11.578 0.442 2.0090
4 B1 1 B1 12.0826 eV 102.61 nm 0.0421 0.0000 99.5% CV(0): A1( 3 )-> B1( 2 ) 13.618 0.392 3.9857
5 B1 2 B1 15.1845 eV 81.65 nm 0.2475 0.0000 99.5% CV(0): B1( 1 )-> A1( 4 ) 16.602 0.519 7.0877
6 A1 3 A1 17.9209 eV 69.18 nm 0.0843 0.0000 95.4% CV(0): B1( 1 )-> B1( 2 ) 18.643 0.585 9.8240
7 A2 2 A2 22.3252 eV 55.54 nm 0.0000 0.0000 99.8% CV(0): B2( 1 )-> B1( 3 ) 24.716 0.418 14.2284
...
The output of the triplet state is
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 B2 1 B2 7.4183 eV 167.13 nm 0.0000 2.0000 99.4% CV(1): B2( 1 )-> A1( 4 ) 9.705 0.415 0.0000
2 A1 1 A1 9.3311 eV 132.87 nm 0.0000 2.0000 98.9% CV(1): A1( 3 )-> A1( 4 ) 11.578 0.441 1.9128
3 A2 1 A2 9.5545 eV 129.76 nm 0.0000 2.0000 99.2% CV(1): B2( 1 )-> B1( 2 ) 11.745 0.330 2.1363
4 B1 1 B1 11.3278 eV 109.45 nm 0.0000 2.0000 97.5% CV(1): A1( 3 )-> B1( 2 ) 13.618 0.395 3.9095
5 B1 2 B1 14.0894 eV 88.00 nm 0.0000 2.0000 97.8% CV(1): B1( 1 )-> A1( 4 ) 16.602 0.520 6.6711
6 A1 2 A1 15.8648 eV 78.15 nm 0.0000 2.0000 96.8% CV(1): B1( 1 )-> B1( 2 ) 18.643 0.582 8.4465
7 A2 2 A2 21.8438 eV 56.76 nm 0.0000 2.0000 99.5% CV(1): B2( 1 )-> B1( 3 ) 24.716 0.418 14.4255
...
Since the single to triplet state jump is dipole-barred, the oscillator strength f=0.0000
.
Spin-flip TDDFT calculation
The BDF can calculate the triplet state not only from a single heavy state, but also from a 2S+1 heavy state with higher spin multiplicity (S = 1/2, 1, 3/2, …), and upward spin-flip the 2S+3 heavy state; the spin-up TDDFT/TDA gives the alpha electron to unoccupied beta orbital lepton state of the double-occupied orbital, labeled as CV(1)
excitation.
Unlike the case where the ground state is a closed-shell single heavy state, the BDF calculation at this point is for the \(M_S = S+1\) component of the 2S + 3 heavy state, so when the ground state is not a closed-shell single heavy state, the calculation can be called a spin-flip TDDFT calculation.
The input file format for the spin-up TDDFT calculation is exactly the same as when the ground state is a closed-shell single heavy state and the triplet excited state is calculated, e.g., the following input file calculates the quadruplet excited state with the duplex state as the reference state.
...
$scf
UKS
...
spinmulti
2
$end
$tddft
...
isf
1
$end
In addition, the BDF can start from a triplet state and flip the spin down to calculate a single heavy state, which requires setting isf
to -1
. Of course, it is also possible to flip down from a state with a higher spin multiplicity to calculate a state with a spin multiplicity of 2 less.
Note that the spin-down TDDFT/TDA can only correctly describe electronic states that leap from the alpha orbital occupied by the open-shell layer to the beta orbital occupied by the open-shell layer, labeled as OO(ab) leap, while all other leap types of states have spin contamination problems.
Starting from the triplet state and reversing the spin downward to calculate the singlet state, the input is
#! H2OTDDFT.sh
TDA/b3lyp/cc-pVDZ spinmulti=3 iroot=-4 spinflip=-1
geometry
O
H 1 0.9
H 1 0.9 2 109.0
end geometry
The output is
Imaginary/complex excitation energies : 0 states
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A 1 A -8.6059 eV -144.07 nm 0.0000 -1.9933 99.3% OO(ab): A( 6 )-> A( 5 ) -6.123 0.408 0.0000
2 A 2 A -0.0311 eV -39809.08 nm 0.0000 -0.0034 54.1% OO(ab): A( 5 )-> A( 5 ) 7.331 1.000 8.5747
3 A 3 A 0.5166 eV 2399.85 nm 0.0000 -1.9935 54.0% OO(ab): A( 6 )-> A( 6 ) 2.712 0.999 9.1225
4 A 4 A 2.3121 eV 536.24 nm 0.0000 -0.9994 99.9% OV(ab): A( 6 )-> A( 7 ) 4.671 0.872 10.9180
Here, the first three states are OO(ab) type excited states, where the first and the third states are basically pure singlet states (D is approximately equal to -2, i.e., the excited state is approximately equal to 0), and the second state is basically pure triplet state (D is approximately equal to 0); the fourth state is an OV(ab) type excited state with spin contamination problem (D is approximately equal to -1, i.e., the excited state is approximately equal to 1, between singlet and triplet states), and its excitation energy is not reliable.
Warning
BDF currently only supports spin-flipped TDA, but not spin-flipped TDDFT, but the calculation of triplet excited states with closed-shell singlet states as reference states is not subject to this restriction.
Calculation of UV-Vis and XAS spectra by iVI method
The above examples are based on the TDDFT excited states solved by Davidson’s method. In order to solve for an excited state with the Davidson method, it is generally necessary to solve for all excited states with lower energies than it. Therefore, when the energy of the target excited state is very high (e.g., when calculating the XAS spectrum), the Davidson method requires too many computational resources to obtain a result with limited computation time and memory. In addition, when using the Davidson method, the user must specify the number of excited states to be solved before the calculation, however, many times the user does not know the number of excited states he needs before the calculation, but only the approximate energy range of the excited states he needs, etc. This makes the user have to go through a series of trial and error, first set a small number of excited states for the calculation, and if he finds that If you find that you do not have the state you need, you can increase the number of excited states and recalculate until you find the state you need. Obviously, this will consume the user’s energy and time for no reason.
BDF’s iVI method provides a solution to this problem. In the iVI method, the user can specify the excitation energy range of interest (e.g., the entire visible region, or the K-edge region of carbon) without having to estimate how many excited states are in that range; the program can calculate all excited states in that range, without having to calculate excited states at energies lower than that range as in the Davidson method, on the one hand, and ensure that all excited states in that energy range are obtained On the other hand, it ensures that all excited states in the energy range are obtained without missing any. Two examples of calculations are given below.
(1)Calculation of the absorption spectrum of the DDQ radical anion in the 400-700 nm range(X-TDDFT,wB97X/LANL2DZ)
$COMPASS
Title
DDQ radical anion TDDFT
Basis
LANL2DZ
Geometry # UB3LYP/def2-SVP geometry
C 0.00000000 2.81252550 -0.25536084
C 0.00000000 1.32952185 -2.58630187
C 0.00000000 -1.32952185 -2.58630187
C 0.00000000 -2.81252550 -0.25536084
C 0.00000000 -1.29206304 2.09336443
C -0.00000000 1.29206304 2.09336443
Cl 0.00000000 -3.02272954 4.89063172
Cl -0.00000000 3.02272954 4.89063172
C 0.00000000 -2.72722649 -4.89578100
C -0.00000000 2.72722649 -4.89578100
N 0.00000000 -3.86127688 -6.78015122
N -0.00000000 3.86127688 -6.78015122
O 0.00000000 -5.15052650 -0.22779097
O -0.00000000 5.15052650 -0.22779097
End geometry
units
bohr
mpec+cosx # accelerate the calculation using MPEC+COSX
$end
$XUANYUAN
rs
0.3 # rs for wB97X
$END
$SCF
roks
dft
wB97X
charge
-1
$END
$tddft
iprt # print level
2
itda
0
idiag # selects the iVI method
3
iwindow
400 700 nm # alternatively the unit can be given as au, eV or cm-1 instead of nm.
# default is in eV if no unit is given
itest
1
icorrect
1
memjkop
2048
$end
Since the molecule belongs to the \(\rm C_{2v}\) point group, there are four integrable representations (A1, A2, B1, B2), and the program solves the TDDFT problem under each of the four integrable representations. Take A1 integrable representation as an example, after convergence of iVI iterations, the program outputs the following information.
Root 0, E= 0.1060649560, residual= 0.0002136455
Root 1, E= 0.1827715245, residual= 0.0005375061
Root 2, E= 0.1863919913, residual= 0.0006792424
Root 3, E= 0.2039707800, residual= 0.0008796108
Root 4, E= 0.2188244775, residual= 0.0015619745
Root 5, E= 0.2299349293, residual= 0.0010684879
Root 6, E= 0.2388141752, residual= 0.0618579646
Root 7, E= 0.2609321083, residual= 0.0695001907
Root 8, E= 0.2649984329, residual= 0.0759920121
Root 9, E= 0.2657352154, residual= 0.0548521587
Root 10, E= 0.2743644891, residual= 0.0655238098
Root 11, E= 0.2766959875, residual= 0.0600950472
Root 12, E= 0.2803090818, residual= 0.0587604503
Root 13, E= 0.2958382984, residual= 0.0715968457
Root 14, E= 0.3002756135, residual= 0.0607394762
Root 15, E= 0.3069930238, residual= 0.0720773993
Root 16, E= 0.3099721369, residual= 0.0956453409
Root 17, E= 0.3141986951, residual= 0.0688103843
Excitation energies of roots within the energy window (au):
0.1060649560
Timing Spin analyze : 0.01 0.00 0.00
No. 1 w= 2.8862 eV -594.3472248862 a.u. f= 0.0000 D<Pab>= 0.0717 Ova= 0.5262
CO(bb): A1( 20 )-> A2( 4 ) c_i: -0.9623 Per: 92.6% IPA: 8.586 eV Oai: 0.5360
CV(bb): A1( 20 )-> A2( 5 ) c_i: -0.1121 Per: 1.3% IPA: 11.748 eV Oai: 0.3581
CV(bb): B1( 18 )-> B2( 6 ) c_i: 0.2040 Per: 4.2% IPA: 13.866 eV Oai: 0.4328
It can be seen that the program computes 17 excited states under this integrable representation, but only one of them (excitation energy 0.106 au = 2.89 eV) is within the user-specified wavelength interval (400-700 nm), and thus converges completely (in the form of small residuals); the rest of the excited states are known to be outside the user-interest range far before they converge, so the program does not try to converge anymore. The remaining excited states are known to be out of the user’s range of interest well before they converge, and no further attempts are made to converge them (as indicated by the large residuals), thus saving much computational effort.
After all four integrable representations have been calculated, the program summarizes the results of each integrable representation as usual.
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A1 2 A2 2.4184 eV 512.66 nm 0.1339 0.0280 93.0% OV(aa): A2( 4 )-> A2( 5 ) 7.064 0.781 0.0000
2 B2 1 B1 2.7725 eV 447.19 nm 0.0000 0.0000 92.5% CO(bb): B1( 18 )-> A2( 4 ) 8.394 0.543 0.3541
3 A2 1 A1 2.8862 eV 429.58 nm 0.0000 0.0000 92.6% CO(bb): A1( 20 )-> A2( 4 ) 8.586 0.526 0.4677
4 B1 1 B2 3.0126 eV 411.55 nm 0.0000 0.0000 63.5% CO(bb): B2( 4 )-> A2( 4 ) 8.195 0.820 0.5942
(2)Calculation of carbon K-edge XAS spectra of ethylene(sf-X2C,M06-2X/uncontracted def2-TZVP)
$COMPASS
Title
iVI test
Basis
def2-TZVP
geometry
C -5.77123022 1.49913343 0.00000000
H -5.23806647 0.57142851 0.00000000
H -6.84123022 1.49913343 0.00000000
C -5.09595591 2.67411072 0.00000000
H -5.62911966 3.60181564 0.00000000
H -4.02595591 2.67411072 0.00000000
End geometry
group
c(1)
uncontract # uncontract the basis set (beneficial for the accuracy of core excitations)
$END
$XUANYUAN
heff
3 # selects sf-X2C
$END
$SCF
rks
dft
m062x
$END
$TDDFT
imethod
1 # R-TDDFT
idiag
3 # iVI
iwindow
275 285 # default unit: eV
$end
The K-edge absorption of carbon is experimentally known to be around 280 eV, so the energy range here is chosen to be 275-285 eV. 15 excited states are calculated in this energy interval.
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A 2 A 277.1304 eV 4.47 nm 0.0018 0.0000 97.1% CV(0): A( 5 )-> A( 93 ) 281.033 0.650 0.0000
2 A 3 A 277.1998 eV 4.47 nm 0.0002 0.0000 96.0% CV(0): A( 6 )-> A( 94 ) 282.498 0.541 0.0694
3 A 4 A 277.9273 eV 4.46 nm 0.0045 0.0000 92.8% CV(0): A( 7 )-> A( 94 ) 281.169 0.701 0.7969
4 A 5 A 278.2593 eV 4.46 nm 0.0000 0.0000 100.0% CV(0): A( 8 )-> A( 95 ) 283.154 0.250 1.1289
5 A 6 A 279.2552 eV 4.44 nm 0.0002 0.0000 85.5% CV(0): A( 4 )-> A( 93 ) 284.265 0.627 2.1247
6 A 7 A 280.0107 eV 4.43 nm 0.0000 0.0000 96.6% CV(0): A( 8 )-> A( 96 ) 284.941 0.315 2.8803
7 A 8 A 280.5671 eV 4.42 nm 0.0000 0.0000 97.0% CV(0): A( 5 )-> A( 94 ) 284.433 0.642 3.4366
8 A 9 A 280.8642 eV 4.41 nm 0.1133 0.0000 93.3% CV(0): A( 2 )-> A( 9 ) 287.856 0.179 3.7337
9 A 10 A 280.8973 eV 4.41 nm 0.0000 0.0000 90.1% CV(0): A( 1 )-> A( 9 ) 287.884 0.185 3.7668
10 A 11 A 281.0807 eV 4.41 nm 0.0000 0.0000 66.8% CV(0): A( 6 )-> A( 95 ) 287.143 0.564 3.9502
11 A 12 A 282.6241 eV 4.39 nm 0.0000 0.0000 97.7% CV(0): A( 7 )-> A( 95 ) 285.815 0.709 5.4937
12 A 13 A 283.7528 eV 4.37 nm 0.0000 0.0000 65.1% CV(0): A( 4 )-> A( 94 ) 287.666 0.592 6.6223
13 A 14 A 283.9776 eV 4.37 nm 0.0000 0.0000 92.1% CV(0): A( 6 )-> A( 96 ) 288.929 0.523 6.8471
14 A 15 A 284.1224 eV 4.36 nm 0.0008 0.0000 98.2% CV(0): A( 7 )-> A( 96 ) 287.601 0.707 6.9920
15 A 16 A 284.4174 eV 4.36 nm 0.0000 0.0000 93.7% CV(0): A( 3 )-> A( 93 ) 289.434 0.509 7.2869
However, it can be seen from the composition of the excited states that only the two excited states with excitation energies of 280.8642 eV and 280.8973 eV are excitations from the C 1s to the valence orbitals, while the rest of the excitations are excitations from the valence orbitals to the very high Rydberg orbitals, i.e., background absorption corresponding to valence electron ionization.
Plotting of absorption spectra with Gaussian widening
The above calculations yield only the excitation energies and oscillator intensities for each excited state, while the user often needs to obtain the theoretically predicted peak shape of the absorption spectrum, which requires a Gaussian widening of the absorption of each excited state by a certain half-peak width. In BDF, this is done with the Python script plotspec.py (located under $BDFHOME/sbin/, where $BDFHOME is the BDF installation path). For example, suppose we have calculated the TDDFT excited state of the C60 molecule using BDF, and the corresponding output file is C60.out, then we can run
$BDFHOME/sbin/plotspec.py C60.out
or
$BDFHOME/sbin/plotspec.py C60
The script will output the following on the screen.
BDF output file: C60.out
1 TDDFT output block(s) found
Block 1: 10 excited state(s)
- Singlet absorption spectrum, spin-allowed
plotspec.py: exit successfully
and produces two files, one for C60.stick.csv, containing the absorption wavelengths and molar extinction coefficients for all excited states, which can be used to make stick graphs.
TDDFT Singlets 1,,
Wavelength,Extinction coefficient,
nm,L/(mol cm),
342.867139,2899.779319,
307.302300,31192.802393,
237.635960,131840.430395,
211.765024,295.895849,
209.090150,134.498113,
197.019205,179194.526059,
178.561512,145.257962,
176.943322,54837.570677,
164.778366,548.752301,
160.167663,780.089056,
The other is C60.spec.csv, which contains the absorption spectrum after Gaussian broadening (the default broadening FWHM is 0.5 eV).
TDDFT Singlets 1,,
Wavelength,Extinction coefficient,
nm,L/(mol cm),
200.000000,162720.545118,
201.000000,151036.824457,
202.000000,137429.257570,
...
998.000000,0.000000,
999.000000,0.000000,
1000.000000,0.000000,
These two files can be opened and plotted with Excel, Origin, and other plotting software.
The command line parameters can be used to control the plotting range, the Gaussian broadening FWHM, etc. Example.
# Plot the spectrum in the range 300-600 nm:
$BDFHOME/sbin/plotspec.py wavelength=300-600nm filename.out
# Plot an X-ray absorption spectrum in the range 200-210 eV,
# using an FWHM of 1 eV:
$BDFHOME/sbin/plotspec.py energy=200-210eV fwhm=1eV filename.out
# Plot a UV-Vis spectrum in the range 10000 cm-1 to 40000 cm-1,
# where the wavenumber is sampled at an interval of 50 cm-1:
$BDFHOME/sbin/plotspec.py wavenumber=10000-40000cm-1 interval=50 filename.out
# Plot an emission spectrum in the range 600-1200 nm, as would be
# given by Kasha's rule (i.e. only the first excited state is considered),
# where the wavelength is sampled at an interval of 5 nm:
$BDFHOME/sbin/plotspec.py -emi wavelength=600-1200nm interval=5 filename.out
If you run $BDFHOME/sbin/plotspec.py without command line arguments, you can list all command line arguments and their usage, which will not be repeated here.
Excited State Structure Optimization
BDF supports not only the calculation of TDDFT single point energies (i.e., excitation energies for a given molecular structure), but also structure optimization of excited states, numerical frequencies, etc. For this purpose, the $tddft
module is required. For this purpose, a $resp
module is added after the $tddft
module to calculate the gradient of the TDDFT energy, and a $bdfopt
module is added after the $compass module to use the TDDFT gradient information for structure optimization and frequency calculation (see 结构优化与频率计算 for details).
The following is an example of calculations to optimize the structure of the first excited state of butadiene at the B3LYP/cc-pVDZ level.
$COMPASS
Title
C4H6
Basis
CC-PVDZ
Geometry # Coordinates in Angstrom. The structure has C(2h) symmetry
C -1.85874726 -0.13257980 0.00000000
H -1.95342119 -1.19838319 0.00000000
H -2.73563916 0.48057645 0.00000000
C -0.63203020 0.44338226 0.00000000
H -0.53735627 1.50918564 0.00000000
C 0.63203020 -0.44338226 0.00000000
H 0.53735627 -1.50918564 0.00000000
C 1.85874726 0.13257980 0.00000000
H 1.95342119 1.19838319 0.00000000
H 2.73563916 -0.48057645 0.00000000
End Geometry
$END
$BDFOPT
solver
1
$END
$XUANYUAN
$END
$SCF
RKS
dft
B3lyp
$END
$TDDFT
nroot
# The ordering of irreps of the C(2h) group is: Ag, Au, Bg, Bu
# Thus the following line specifies the calculation of the 1Bu state, which
# happens to be the first excited state for this particular molecule.
0 0 0 1
istore
1
# TDDFT gradient requires tighter TDDFT convergence criteria than single-point
# TDDFT calculations, thus we tighten the convergence criteria below.
crit_vec
1.d-6 # default 1.d-5
crit_e
1.d-8 # default 1.d-7
$END
$resp
geom
norder
1 # first-order nuclear derivative
method
2 # TDDFT response properties
nfiles
1 # must be the same number as the number after the istore keyword in $TDDFT
iroot
1 # calculate the gradient of the first root. Can be omitted here since only
# one root is calculated in the $TDDFT block
$end
Note that in the above example, the meaning of the keyword iroot
in the $resp
module is different from the meaning of the keyword iroot
in the $tddft
module above. The former refers to calculating the gradient of the first excited state, and the latter refers to how many excited states are calculated for each irreducible representation.
After convergence of the structure optimization, the converged structure is output in the main output file.
Good Job, Geometry Optimization converged in 5 iterations!
Molecular Cartesian Coordinates (X,Y,Z) in Angstrom :
C -1.92180514 0.07448476 0.00000000
H -2.21141426 -0.98128927 0.00000000
H -2.70870517 0.83126705 0.00000000
C -0.54269837 0.45145649 0.00000000
H -0.31040658 1.52367715 0.00000000
C 0.54269837 -0.45145649 0.00000000
H 0.31040658 -1.52367715 0.00000000
C 1.92180514 -0.07448476 0.00000000
H 2.21141426 0.98128927 0.00000000
H 2.70870517 -0.83126705 0.00000000
Force-RMS Force-Max Step-RMS Step-Max
Conv. tolerance : 0.2000E-03 0.3000E-03 0.8000E-03 0.1200E-02
Current values : 0.5550E-04 0.1545E-03 0.3473E-03 0.1127E-02
Geom. converge : Yes Yes Yes Yes
In addition, the excitation energy in the excited state equilibrium structure can be read from the output of the last TDDFT module in the .out.tmp
file, as well as the total energy of the excited state and the main components.
No. 1 w= 5.1695 eV -155.6874121542 a.u. f= 0.6576 D<Pab>= 0.0000 Ova= 0.8744
CV(0): Ag( 6 )-> Bu( 10 ) c_i: 0.1224 Per: 1.5% IPA: 17.551 eV Oai: 0.6168
CV(0): Bg( 1 )-> Au( 2 ) c_i: -0.9479 Per: 89.9% IPA: 4.574 eV Oai: 0.9035
...
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 Bu 1 Bu 5.1695 eV 239.84 nm 0.6576 0.0000 89.9% CV(0): Bg( 1 )-> Au( 2 ) 4.574 0.874 0.0000
The wavelength (240 nm) corresponding to the excitation energy in the excited state equilibrium structure is the fluorescence emission wavelength of butadiene.
Spin-orbit coupling calculation based on sf-X2C-TDDFT-SOC
Relativistic effects include scalar relativity and spin-orbit coupling (SOC). The relativistic calculations require the use of basis sets optimized for relativistic effects and the selection of a suitable Hamiltonian. sf-X2C-TDDFT-SOC calculations are supported by BDF for all-electron sf-X2C, where sf-X2C refers to the scalar relativistic effects considered with spinless exact two-component (eXact Two-Component, X2C) Hamiltonians, and TDDFT-SOC refers to the spin-orbit coupling calculations based on TDDFT. TDDFT calculation of spin-orbit coupling. Note that although TDDFT is an excited state method, TDDFT-SOC can be used to calculate not only the contribution of SOC to the excited state energy and properties, but also the contribution of SOC to the ground state energy and properties.
Taking a molecule with a single heavy ground state as an example, the TDDFT calculation module needs to be called three times in sequence to complete the sf-X2C-TDDFT-SOC calculation. Among them, the first execution utilizes R-TDDFT and calculates the single heavy state, the second uses SF-TDDFT to calculate the triplet state, and the last reads in the wave functions of the first two TDDFT calculations and calculates the spin-orbit coupling of these states using the state interaction (SI) method. This can be clearly seen from the advanced input of the sf-X2C-TDDFT-SOC calculation for the \(\ce{CH2S}\) molecule below.
$COMPASS
Title
ch2s
Basis # Notice: we use relativistic basis set contracted by DKH2
cc-pVDZ-DK
Geometry
C 0.000000 0.000000 -1.039839
S 0.000000 0.000000 0.593284
H 0.000000 0.932612 -1.626759
H 0.000000 -0.932612 -1.626759
End geometry
$END
$xuanyuan
heff # ask for sf-X2C Hamiltonian
3
hsoc # set SOC integral as 1e+mf-2e
2
$end
$scf
RKS
dft
PBE0
$end
#1st: R-TDDFT, calculate singlets
$tddft
isf
0
idiag
1
iroot
10
itda
0
istore # save TDDFT wave function in the 1st scratch file
1
$end
#2nd: spin-flip tddft, use close-shell determinant as reference to calculate triplets
$tddft
isf # notice here: ask for spin-flip up calculation
1
itda
0
idiag
1
iroot
10
istore # save TDDFT wave function in the 2nd scratch file, must be specified
2
$end
#3rd: tddft-soc calculation
$tddft
isoc
2
nprt # print level
10
nfiles
2
ifgs # whether to include the ground state in the SOC treatment. 0=no, 1=yes
1
imatsoc
8
0 0 0 2 1 1
0 0 0 2 2 1
0 0 0 2 3 1
0 0 0 2 4 1
1 1 1 2 1 1
1 1 1 2 2 1
1 1 1 2 3 1
1 1 1 2 4 1
imatrso
6
1 1
1 2
1 3
1 4
1 5
1 6
idiag # full diagonalization of SO Hamiltonian
2
$end
Warning
The calculations must be performed in the order isf=0,isf=1. When SOC processing does not consider the ground state(i.e.,
ifgs=0
), the more excited statesiroot
, the more accurate the result; when considering the ground state(i.e.,ifgs=1
), too manyiroot
will reduce the accuracy, which is reflected in the underestimation of the ground state energy, and there is no fixed rule for the selection ofiroot
.
The keyword imatsoc
controls which SOC matrix elements <A|hso|B> are to be printed.
8
means that the SOCs between 8 sets of spin states are to be printed, and an array of 8 integer rows is entered sequentially below.The input format for each line is
fileA symA stateA fileB symB stateB
, representing the matrix element <fileA,symA,stateA|hsoc|fileB,symB,stateB>, where
fileA symA stateA
represents thestateA
root of the integrable representation ofsymA
infileA
; for example,1 1 1
represents the first root of the integrable representation of the first TDDFT calculation.
0 0 0 0
indicates the ground state
The printout of the coupling matrix element is as follows.
[tddft_soc_matsoc]
Print selected matrix elements of [Hsoc]
SocPairNo. = 1 SOCmat = < 0 0 0 |Hso| 2 1 1 > Dim = 1 3
mi/mj ReHso(au) cm^-1 ImHso(au) cm^-1
0.0 -1.0 0.0000000000 0.0000000000 0.0000000000 0.0000000000
0.0 0.0 0.0000000000 0.0000000000 0.0000000000 0.0000000000
0.0 1.0 0.0000000000 0.0000000000 0.0000000000 0.0000000000
SocPairNo. = 2 SOCmat = < 0 0 0 |Hso| 2 2 1 > Dim = 1 3
mi/mj ReHso(au) cm^-1 ImHso(au) cm^-1
0.0 -1.0 0.0000000000 0.0000000000 0.0000000000 0.0000000000
0.0 0.0 0.0000000000 0.0000000000 0.0007155424 157.0434003237
0.0 1.0 0.0000000000 0.0000000000 -0.0000000000 -0.0000000000
SocPairNo. = 3 SOCmat = < 0 0 0 |Hso| 2 3 1 > Dim = 1 3
mi/mj ReHso(au) cm^-1 ImHso(au) cm^-1
0.0 -1.0 -0.0003065905 -67.2888361761 0.0000000000 0.0000000000
0.0 0.0 0.0000000000 0.0000000000 -0.0000000000 -0.0000000000
0.0 1.0 -0.0003065905 -67.2888361761 -0.0000000000 -0.0000000000
Here, < 0 0 0 |Hso| 2 2 1 >
denotes the matrix element <S0|Hso|T1>
, which gives its real part ReHso and imaginary part ImHso, respectively.
Since S0 has only one component, mi is 1. T1 (spin S=1) has 3 components (Ms=-1,0,1), and the 3 components are numbered by mj.
The imaginary part of the coupling matrix element between the component with Ms=0
and the ground state is 0.0007155424 au
.
Warning
When comparing the results of different programs, note that the so-called spherical tensor is given here instead of cartesian tensor, i.e.,T1 is T_{-1},T_{0},T_{1}, not Tx,Ty,Tz, and there are you-transformations between them.
The SOC calculation results in that
Totol No. of States: 161 Print: 10
No. 1 w= -0.0006 eV
Spin: |Gs,1> 1-th Spatial: A1; OmegaSF= 0.0000eV Cr= 0.0000 Ci= 0.9999 Per:100.0%
SumPer: 100.0%
No. 2 w= 1.5481 eV
Spin: |S+,1> 1-th Spatial: A2; OmegaSF= 1.5485eV Cr= 0.9998 Ci= -0.0000 Per:100.0%
SumPer: 100.0%
No. 3 w= 1.5482 eV
Spin: |S+,3> 1-th Spatial: A2; OmegaSF= 1.5485eV Cr= 0.9998 Ci= 0.0000 Per:100.0%
SumPer: 100.0%
No. 4 w= 1.5486 eV
Spin: |S+,2> 1-th Spatial: A2; OmegaSF= 1.5485eV Cr= 0.9999 Ci= 0.0000 Per:100.0%
SumPer: 100.0%
No. 5 w= 2.2106 eV
Spin: |So,1> 1-th Spatial: A2; OmegaSF= 2.2117eV Cr= -0.9985 Ci= 0.0000 Per: 99.7%
SumPer: 99.7%
No. 6 w= 2.5233 eV
Spin: |S+,1> 1-th Spatial: A1; OmegaSF= 2.5232eV Cr= 0.9998 Ci= 0.0000 Per:100.0%
SumPer: 100.0%
No. 7 w= 2.5234 eV
Spin: |S+,3> 1-th Spatial: A1; OmegaSF= 2.5232eV Cr= 0.9998 Ci= -0.0000 Per:100.0%
SumPer: 100.0%
No. 8 w= 2.5240 eV
Spin: |S+,2> 1-th Spatial: A1; OmegaSF= 2.5232eV Cr= 0.0000 Ci= -0.9985 Per: 99.7%
SumPer: 99.7%
No. 9 w= 5.5113 eV
Spin: |S+,1> 1-th Spatial: B2; OmegaSF= 5.5115eV Cr= -0.7070 Ci= -0.0000 Per: 50.0%
Spin: |S+,3> 1-th Spatial: B2; OmegaSF= 5.5115eV Cr= 0.7070 Ci= 0.0000 Per: 50.0%
SumPer: 100.0%
No. 10 w= 5.5116 eV
Spin: |S+,1> 1-th Spatial: B2; OmegaSF= 5.5115eV Cr= -0.5011 Ci= -0.0063 Per: 25.1%
Spin: |S+,2> 1-th Spatial: B2; OmegaSF= 5.5115eV Cr= 0.7055 Ci= 0.0000 Per: 49.8%
Spin: |S+,3> 1-th Spatial: B2; OmegaSF= 5.5115eV Cr= -0.5011 Ci= -0.0063 Per: 25.1%
SumPer: 100.0%
*** List of SOC-SI results ***
No. ExEnergies Dominant Excitations Esf dE Eex(eV) (cm^-1)
1 -0.0006 eV 100.0% Spin: |Gs,1> 0-th A1 0.0000 -0.0006 0.0000 0.00
2 1.5481 eV 100.0% Spin: |S+,1> 1-th A2 1.5485 -0.0004 1.5487 12491.27
3 1.5482 eV 100.0% Spin: |S+,3> 1-th A2 1.5485 -0.0004 1.5487 12491.38
4 1.5486 eV 100.0% Spin: |S+,2> 1-th A2 1.5485 0.0001 1.5492 12494.98
5 2.2106 eV 99.7% Spin: |So,1> 1-th A2 2.2117 -0.0011 2.2112 17834.44
6 2.5233 eV 100.0% Spin: |S+,1> 1-th A1 2.5232 0.0002 2.5239 20356.82
7 2.5234 eV 100.0% Spin: |S+,3> 1-th A1 2.5232 0.0002 2.5239 20356.99
8 2.5240 eV 99.7% Spin: |S+,2> 1-th A1 2.5232 0.0008 2.5246 20362.08
9 5.5113 eV 50.0% Spin: |S+,1> 1-th B2 5.5115 -0.0002 5.5119 44456.48
10 5.5116 eV 49.8% Spin: |S+,2> 1-th B2 5.5115 0.0001 5.5122 44458.63
Here the output has two parts, the first part gives the energy and composition of each SOC-SI
state relative to the S0 state, for example
No. 10 w= 5.5116 eV
means that the energy of the 10thSOC-SI
state is5.5116 eV
, note that this is the energy relative to the S0 state;
The following three lines show the components of this state.
Spin: |S+,1> 1-th Spatial: B2;
represents the first triplet state with symmetry B2 (spin +1 with respect to the S state, and therefore S+); and and therefore S+);
OmegaSF= 5.5115eV
is the energy relative to the first spin state.
Cr= -0.5011 Ci= -0.0063
is the real and imaginary part of the wave function of this component in the spinor state, with a percentage of25.1%
.
The second part summarizes the results of the SOC-SI state calculations.
ExEnergies
are the excitation energies when SOC is taken into account, andEsf
is the original excitation energy without SOC;The excited states are denoted by
Spin: |S,M> n-th sym
, and spin |Gs,1>, the nth state with spatial symmetry sym. For example, the |Gs,1> represents the ground state, |So,1> represents the excited state with the same total spin as the ground state, and |S+,2> represents the excited state with total spin plus 1. M is the first component of the spin projection (in total 2S+1).
- The keyword
imatrso
specifies which sets of jump dipole moments between the spin states are to be calculated and printed. Here it is specified that6
sets of jump dipole moments are printed. 1 1
indicates the intrinsic dipole moment of the ground state.1 2
indicates the dipole moments between the first and second spin states.
The output of the leap dipole moments is as follows.
[tddft_soc_matrso]: Print selected matrix elements of [dpl]
No. ( I , J ) |rij|^2 E_J-E_I fosc rate(s^-1)
-------------------------------------------------------------------------------
1 1 1 0.472E+00 0.000000000 0.000000000 0.000E+00
Details of transition dipole moment with SOC (in a.u.):
<I|X|J> <I|Y|J> <I|Z|J> (also in debye)
Real= -0.113E-15 -0.828E-18 0.687E+00 -0.0000 -0.0000 1.7471
Imag= -0.203E-35 0.948E-35 0.737E-35 -0.0000 0.0000 0.0000
Norm= 0.113E-15 0.828E-18 0.687E+00
No. ( I , J ) |rij|^2 E_J-E_I fosc rate(s^-1)
-------------------------------------------------------------------------------
2 1 2 0.249E-05 1.548720567 0.000000095 0.985E+01
Details of transition dipole moment with SOC (in a.u.):
<I|X|J> <I|Y|J> <I|Z|J> (also in debye)
Real= -0.589E-03 0.207E-07 -0.177E-15 -0.0015 0.0000 -0.0000
Imag= -0.835E-08 0.147E-02 -0.198E-16 -0.0000 0.0037 -0.0000
Norm= 0.589E-03 0.147E-02 0.178E-15
Hint
imatsoc
set to-1
specifies printing of all coupling matrix elements;The default is not to print the leap dipole moments, set
imatrso
to-1
to print the leap dipole moments between all spin states, andimatrso
to-2
to print the leap dipole moments between all ground state spin states and all excited state spin states.The reference state for SOC calculations must be either RHF/RKS or ROHF/ROKS, UHF/UKS is not supported.
When the reference state for SOC calculations is ROHF/ROKS, TDDFT calculations with isf=0 must use X-TDA (i.e., itest=1, icorrect=1,isf=0, itda=1; full X-TDDFT is not supported) and TDDFT calculations with isf=1 must use SF-TDA (i.e. isf=1, itda=1; full SF-TDDFT is not supported).
SOECP-TDDFT-SOC based spin-orbit coupling calculations
In addition to the sf-X2C all-electron scalar relativistic Hamiltonian, the spin-orbit coupling pseudopotential (SOECP) can also be used for TDDFT-SOC spin-orbit coupling calculations by selecting the appropriate 旋轨耦合赝势基组 and setting hsoc
to 0 in the xuanyuan
module (if other values are written, they are treated as 0).
The other inputs are similar to or identical to the sf-X2C-TDDFT-SOC inputs (e.g. the core electrons are subtracted when specifying the orbital occupation in scf
).
In the following example, the closed-shell layer ground state \(X^1\Sigma^+\) (A1) and three excited states \(^3\Pi\) (B1+B2), \(^1\Pi\) (B1+B2), \(^3\Sigma^+\) (A1) are calculated under the \(C_{2v}\) point group symmetry for the InB molecule, where the first two Λ-S states are bound states that have been extensively studied experimentally and the last two Λ-S states are repulsive states that are of little experimental interest. In the input, the energy of the Λ-S state is first calculated at the TDDFT level (using the Tamm-Dancoff approximation here) and the wave function is stored, and then the energy of the Ω state after spin-orbit coupling is calculated.
$COMPASS
Title
soecp test: InBr
Basis-block
cc-pVTZ-PP
end basis
Geometry
In 0.0 0.0 0.0
Br 0.0 0.0 2.45
END geometry
group
C(2v) # Abelian symmetry must be used for SOC
$END
$XUANYUAN
hsoc
10
$END
$scf
rks
dft
pbe0
$end
$TDDFT
ISF
0
ITDA
1
istore
1
# 1Pi state: A1, A2, B1, B2
nroot
0 0 1 1
$END
$TDDFT
ISF
1
ITDA
1
istore
2
# 3Sigma+ and 3Pi states: A1, A2, B1, B2
nroot
1 0 1 1
$END
$TDDFT
isoc
2
nfiles
2
ifgs
1
idiag
2
$END
The computational output of SOECP-TDDFT-SOC is similar to that of sf-X2C-TDDFT-SOC. The results are summarized below and compared with those of EOM-CCSD/SOC.
Λ-S态 |
TDDFT |
Ω态 |
TDDFT-SOC |
分裂 |
二分量EOM-CCSD |
分裂 |
---|---|---|---|---|---|---|
\(X^1\Sigma^+\) |
0 |
0+ |
0 |
0 |
||
\(^3\Pi\) |
25731 |
0- |
24884 |
24516 |
||
0+ |
24959 |
75 |
24588 |
72 |
||
1 |
25718 |
759 |
25363 |
775 |
||
2 |
26666 |
948 |
26347 |
984 |
||
\(^1\Pi\) |
35400 |
1 |
35404 |
36389 |
||
\(^3\Sigma^+\) |
38251 |
0- |
38325 |
|||
1 |
38423 |
98 |
In addition to the SOECP basis set, the above calculation can also be done using the scalar ECP basis set in combination with 有效核电荷近似(Zeff) . As a test, first delete the SO pseudopotential part in the Br basis set and redo the above calculation, but you will find that the result is poor: The split of \(^3\Pi_2\) and \(^3\Pi_1\) is only 850 cm \(^{-1}\), while the split of \(^3\Sigma^+\) almost zero. This is because the ECP basis set for Br with 10 core electrons has no specially optimized effective nuclear charge, and the program can only take the actual nuclear charge number of 35:
SO-1e[BP]
Zeff for Wso
----------------------------------
IAtm ZA NCore Zeff
----------------------------------
1 49 28 SOECP
2 35 10 N.A.
----------------------------------
For Br in the above example, it is possible to use the scalar ECP basis set cc-pVTZ-ccECP with 28 core electrons instead. The input part of the basis set is modified as follows:
Basis-block
cc-pvtz-pp
Br=cc-pvtz-ccecp
end basis
At the beginning of the TDDFT-SOC calculation output can be seen
SO-1e[BP]
Zeff for Wso
----------------------------------
IAtm ZA NCore Zeff
----------------------------------
1 49 28 SOECP
2 35 28 1435.000
----------------------------------
This shows that in the single-electron spin-orbit integration of Br, the default nuclear charge number 35 is replaced with the optimized 1435.000 (in general, the larger the ECP core electron number NCore, the larger the effective nuclear charge Zeff), The SOECP integral is still calculated for the In atom. The calculation results are as follows, and it can be seen that the orbital splitting has been significantly improved:
Λ-S态 |
TDDFT |
Ω态 |
Br:SOECP |
分裂 |
Br:ECP |
分裂 |
---|---|---|---|---|---|---|
\(X^1\Sigma^+\) |
0 |
0+ |
0 |
0 |
||
\(^3\Pi\) |
25731 |
0- |
24884 |
25019 |
||
0+ |
24959 |
75 |
25084 |
65 |
||
1 |
25718 |
759 |
25856 |
772 |
||
2 |
26666 |
948 |
26808 |
952 |
||
\(^1\Pi\) |
35400 |
1 |
35404 |
35729 |
||
\(^3\Sigma^+\) |
38251 |
0- |
38325 |
38788 |
||
1 |
38423 |
98 |
38853 |
65 |
Finally, TDDFT-SOC calculations can also be combined with the SOECP (or scalar ECP) basis set with the all-electron non-relativistic basis set. The BDF program has optimized Zeff for main group elements prior to Xe (except heavier noble gas elements). For example, continuing to use cc-pVTZ-PP for In, and using the all-electron non-relativistic basis set cc-pVTZ for Br, yields similar results to SOECP/TDDFT-SOC. Detailed results are omitted.Finally, TDDFT-SOC calculations can also be combined with the SOECP (or scalar ECP) basis set with the all-electron non-relativistic basis set. The BDF program has optimized Zeff for main group elements prior to Xe (except heavier noble gas elements).
Attention
Precautions when using the effective nuclear charge method for TDDFT-SOC calculation: You must use 优化好的有效核电荷 to ensure accuracy. To do this, check the Zeff value printed in the output file, try not to have N.A., this is especially important for ECP basis sets.
When SOECP or scalar ECP is combined with all-electron basis set, note about all-electron basis set: Atoms using all-electron basis set do not consider scalar relativistic correspondence, so they cannot be heavy atoms, and must use non-relativistic basis set.
Calculation of first-order non-adiabatic coupling matrix elements (fo-NACME)
As mentioned before, the (first-order) non-adiabatic coupling matrix element is of great importance in the non-radiative leap process. In BDF, the input files of NACME between the ground state and excited state, and between the excited state and excited state are written with some differences, which are described below.
NACME between ground state and excited state: D0/D1 NACME of \(\ce{NO3}\) radical (GB3LYP/cc-pVDZ)
$COMPASS
Title
NO3 radical NAC, 1st excited state
Basis
cc-pvdz
Geometry
N 0.0000000000 0.0000000000 -0.1945736441
O -2.0700698389 0.0000000000 -1.1615808530
O 2.0700698389 -0.0000000000 -1.1615808530
O -0.0000000000 0.0000000000 2.4934136445
End geometry
unit
bohr
$END
$XUANYUAN
$END
$SCF
UKS
dft
GB3LYP
spinmulti
2
$END
$tddft
iroot
1 # One root for each irrep
istore
1 # File number, to be used later in $resp
crit_vec
1.d-6
crit_e
1.d-8
gridtol
1.d-7 # tighten the tolerance value of XC grid generation. This helps to
# reduce numerical error, and is recommended for open-shell molecules
$end
$resp
iprt
1
QUAD # quadratic response
FNAC # first-order NACME
single # calculation of properties from single residues (ground state-excited
# state fo-NACMEs belong to this kind of properties)
norder
1
method
2
nfiles
1 # must be the same as the istore value in the $TDDFT block
states
1 # Number of excited states for which NAC is requested.
# First number 1: read TDDFT results from file No. 1
# Second number 2: the second irrep, in this case A2
# (note: this is the pair symmetry of the particle-hole pair, not
# the excited state symmetry. One must bear this in mind because the
# ground state of radicals frequently does not belong to the totally
# symmetric irrep)
# If no symmetry is used, simply use 1.
# Third number 1: the 1st excited state that belongs to this irrep
1 2 1
$end
Note that the integrable representation specified in the $resp
module is pair irrep (i.e., the direct product of the integrable representations of the occupied and empty orbitals involved in the leap; for the Abelian point group, pair irrep can be obtained from the direct product of the ground state integrable representation and the excited state integrable representation), not the irrep of the excited state. the ground state (D0) of this molecule belongs to the B1 integrable representation, and the first two-state excited state (D1) belongs to the B1 integrable representation. The pair irrep of the D1 state is therefore the direct product of B1 and B2, i.e., A2. Pair irrep can also be read from the output of the TDDFT module, i.e., the Pair column of the following output section.
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A2 1 B2 0.8005 eV 1548.84 nm 0.0000 0.0186 98.2% CO(bb): B2( 2 )-> B1( 5 ) 3.992 0.622 0.0000
2 B1 1 A1 1.9700 eV 629.35 nm 0.0011 0.0399 92.2% CO(bb): A1( 8 )-> B1( 5 ) 3.958 0.667 1.1695
3 B2 1 A2 2.5146 eV 493.06 nm 0.0000 0.0384 98.4% CO(bb): A2( 1 )-> B1( 5 ) 4.159 0.319 1.7141
4 A1 2 B1 2.6054 eV 475.87 nm 0.0171 0.0154 87.7% CO(bb): B1( 4 )-> B1( 5 ) 3.984 0.746 1.8049
After the calculation is completed, the result of the NACME calculation can be seen at the end of the output section of the $resp
module.
Gradient contribution from Final-NAC(R)-Escaled
1 0.0000000000 -0.0000000000 0.0000000000
2 -0.0000000000 -0.1902838724 0.0000000000
3 -0.0000000000 0.1902838724 0.0000000000
4 -0.0000000000 0.0000000000 0.0000000000
Note that this result does not include the contribution of the electron translation factor (ETF). For some molecules, NACME without ETF may not have translation invariance, which may lead to errors in subsequent kinetic simulations. In this case, it is necessary to use a NACME that takes into account the ETF, which can be read later in the output file at the following location.
Gradient contribution from Final-NAC(S)-Escaled
1 0.0000000000 -0.0000000000 0.0000000000
2 -0.0000000000 -0.1920053581 0.0000000000
3 -0.0000000000 0.1920053581 0.0000000000
4 -0.0000000000 0.0000000000 -0.0000000000
The program will also output vectors named dpq-R, Final-NAC(R), dpq-S, Final-NAC(S), etc. These quantities are intermediate variables that are only used to monitor the computational process, not the final NACME, and the user can generally ignore these outputs.
NACME between excited and excited states: T1/T2 NACME of acetophenone (BH&HLYP/def2-SVP)
$compass
title
PhCOMe
basis
def2-SVP
geometry
C -0.3657620861 4.8928163606 0.0000770328
C -2.4915224786 3.3493223987 -0.0001063823
C -2.2618953860 0.7463412225 -0.0001958732
C 0.1436118499 -0.3999193588 -0.0000964543
C 2.2879147462 1.1871091769 0.0000824391
C 2.0183382809 3.7824607425 0.0001740921
H -0.5627800515 6.9313968857 0.0001389666
H -4.3630645857 4.1868310874 -0.0002094148
H -3.9523568496 -0.4075513123 -0.0003833263
H 4.1604797959 0.3598389310 0.0001836001
H 3.6948496439 4.9629708946 0.0003304312
C 0.3897478526 -3.0915327760 -0.0002927344
O 2.5733215239 -4.1533492423 -0.0002053903
C -1.8017552120 -4.9131221777 0.0003595831
H -2.9771560760 -4.6352720097 1.6803279168
H -2.9780678476 -4.6353463569 -1.6789597597
H -1.1205416224 -6.8569277129 0.0002044899
end geometry
unit
bohr
nosymm
$end
$XUANYUAN
$END
$SCF
rks
dft
bhhlyp
$END
$tddft
isf # request for triplets (spin flip up)
1
ialda # use collinear kernel (NAC only supports collinear kernel)
4
iroot
2 # calculate T1 and T2 states
crit_vec
1.d-6
crit_e
1.d-8
istore
1
iprt
2
$end
$resp
iprt
1
QUAD
FNAC
double # calculation of properties from double residues (excited state-excited
# state fo-NACMEs belong to this kind of properties)
norder
1
method
2
nfiles
1
pairs
1 # Number of pairs of excited states for which NAC is requested.
1 1 1 1 1 2
noresp # do not include the quadratic response contributions (recommended)
$end
NACME was calculated for the T1 and T2 states.
Gradient contribution from Final-NAC(R)-Escaled
1 0.0005655253 0.0005095355 -0.2407937116
2 -0.0006501682 -0.0005568029 0.5339003311
3 0.0009640605 0.0003767996 -2.6530192038
4 -0.0013429266 -0.0034063171 1.6760344312
5 0.0010446538 0.0006384285 -0.8024123329
6 -0.0001081722 -0.0006245719 -0.0487310115
7 -0.0000001499 0.0000176176 -0.0730900968
8 -0.0000214634 0.0000165092 0.3841606239
9 0.0000026057 -0.0000025322 -0.2553378323
10 -0.0002028358 -0.0000591642 0.5800987974
11 -0.0000166820 0.0000105734 0.2713836450
12 -0.0023404123 0.0052038311 3.5121827769
13 0.0021749503 -0.0012164868 -2.7480141157
14 0.0000433873 -0.0011202812 0.2896243729
15 0.1407516324 0.1432264573 -0.1655701318
16 -0.1407399684 -0.1429881941 -0.1657943551
17 -0.0000034197 0.0004577563 -0.0833951446
Similar to the case of the ground state, the
Definitization of the excited states
$COMPASS
Basis
cc-pvdz
Geometry
C 0.000000 0.000000 0.000000
C 1.332000 0.000000 0.000000
H -0.574301 -0.928785 0.000000
H -0.574301 0.928785 0.000000
H 1.906301 0.928785 0.000000
H 1.906301 -0.928785 0.000000
C -0.000000 0.000000 3.5000
C 1.332000 -0.000000 3.5000
H -0.574301 0.928785 3.50000
H -0.574301 -0.928785 3.50000
H 1.906301 -0.928785 3.50000
H 1.906301 0.928785 3.50000
End geometry
Group
C(1)
Nfragment # must input: number of fragment, should be 1
1
$END
$xuanyuan
$end
$scf
rks
dft
B3lyp
$end
$TDDFT
ITDA
1
IDIAG
1
istore
1
iroot
4
crit_e # set a small threshhold for TDDFT energy convergence
1.d-8
$END
# calculate local excited states (LOCALES)
$elecoup
locales
1
$END
&database
fragment 1 12 # first fragment with 12 atoms, next line gives the atom list
1 2 3 4 5 6 7 8 9 10 11 12
&end
The TDA calculates 4 excited states and the output is as follows,
No. Pair ExSym ExEnergies Wavelengths f D<S^2> Dominant Excitations IPA Ova En-E1
1 A 2 A 7.4870 eV 165.60 nm 0.0000 0.0000 82.6% CV(0): A( 16 )-> A( 17 ) 13.476 0.820 0.0000
2 A 3 A 8.6807 eV 142.83 nm 0.0673 0.0000 79.6% CV(0): A( 16 )-> A( 18 ) 14.553 0.375 1.1937
3 A 4 A 9.0292 eV 137.31 nm 0.0000 0.0000 62.4% CV(0): A( 16 )-> A( 20 ) 15.353 0.398 1.5422
4 A 5 A 9.0663 eV 136.75 nm 0.0000 0.0000 50.4% CV(0): A( 15 )-> A( 18 ) 15.688 0.390 1.5793
The process of domainization and the excited states in the fixed domain are,
No. 8 iteration
Pair States : 1 2
aij,bij,abij -.25659893E-01 -.48045653E-11 0.25659893E-01
cos4a,sin4a 0.10000000E+01 -.18724027E-09
cosa,sina 0.10000000E+01 0.00000000E+00
Pair States : 1 3
aij,bij,abij -.40325646E-02 0.35638586E-11 0.40325646E-02
cos4a,sin4a 0.10000000E+01 0.88376974E-09
cosa,sina 0.10000000E+01 0.00000000E+00
Pair States : 1 4
aij,bij,abij -.25679319E-01 -.28753641E-08 0.25679319E-01
cos4a,sin4a 0.10000000E+01 -.11197197E-06
cosa,sina 0.10000000E+01 0.27877520E-07
Pair States : 2 3
aij,bij,abij -.39851115E-02 -.27118892E-05 0.39851124E-02
cos4a,sin4a 0.99999977E+00 -.68050506E-03
cosa,sina 0.99999999E+00 0.17012628E-03
Pair States : 2 4
aij,bij,abij -.42686102E-02 -.95914926E-06 0.42686103E-02
cos4a,sin4a 0.99999997E+00 -.22469825E-03
cosa,sina 0.10000000E+01 0.56174562E-04
Pair States : 3 4
aij,bij,abij -.67873307E-01 -.47952471E-02 0.68042488E-01
cos4a,sin4a 0.99751360E+00 -.70474305E-01
cosa,sina 0.99984454E+00 0.17632279E-01
Sum= 0.13608498 Max Delta= 0.00531009
No. 9 iteration
Pair States : 1 2
aij,bij,abij -.40325638E-02 0.35621782E-11 0.40325638E-02
cos4a,sin4a 0.10000000E+01 0.88335323E-09
cosa,sina 0.10000000E+01 0.00000000E+00
Pair States : 1 3
aij,bij,abij -.25690755E-01 -.11200070E-08 0.25690755E-01
cos4a,sin4a 0.10000000E+01 -.43595721E-07
cosa,sina 0.10000000E+01 0.10536712E-07
Pair States : 1 4
aij,bij,abij -.25690755E-01 -.10900573E-11 0.25690755E-01
cos4a,sin4a 0.10000000E+01 -.42429944E-10
cosa,sina 0.10000000E+01 0.00000000E+00
Pair States : 2 3
aij,bij,abij -.41480079E-02 -.83549288E-06 0.41480080E-02
cos4a,sin4a 0.99999998E+00 -.20142027E-03
cosa,sina 0.10000000E+01 0.50355067E-04
Pair States : 2 4
aij,bij,abij -.41480100E-02 0.17462423E-06 0.41480100E-02
cos4a,sin4a 0.10000000E+01 0.42098314E-04
cosa,sina 0.10000000E+01 0.10524580E-04
Pair States : 3 4
aij,bij,abij -.68042492E-01 0.19389042E-08 0.68042492E-01
cos4a,sin4a 0.10000000E+01 0.28495490E-07
cosa,sina 0.10000000E+01 0.74505806E-08
Sum= 0.13608498 Max Delta= 0.00000000
***************** Diabatic Hamiltonian matrix ****************
State1 State2 State3 State4
State1 7.486977 0.000000 0.000000 0.000000
State2 0.000000 9.029214 -0.000020 0.000021
State3 0.000000 -0.000020 8.873501 0.192803
State4 0.000000 0.000021 0.192803 8.873501**************************************************************
其中,对角元为定域激发态的能量,非对角元为两个定域态之间的耦合,这里的能量单位是 eV
。where the diagonal element is the energy of the fixed-domain excited state and the non-diagonal element is the coupling between the two fixed-domain states, where the unit of energy is eV
.
Nuclear magnetic resonance shielding constants
BDF supports the restricted Hartree-Fock (RHF) and restricted Kohn-Sham (RKS) methods for NMR shielding constant (NMR) calculations, where the problem of the outer vector potential canonical origin can be handled using the Common gauge method and GIAO (gauge-including atomic orbitals).
Warning
Since the libcint library is required for NMR calculation, a line needs to be added in the calculation script: export USE_LIBCINT=yes
NMR calculation example
The following is the input file for the NMR shielding constant calculation of methane molecules:
$COMPASS # Molecular coordinate input and symmetry judgment
Title
CH4 Molecule NR-DFT-NMR # job title
Basis
CC-PVQZ # basis set
Geometry
C 0.000 00000 0.000 # molecule geometry
H 1.196 1.196 1.196
H -1.196 -1.196 1.196
H -1.196 1.196 -1.196
H 1.196 -1.196 -1.196
END geometry
nosymm # NMR module does not support symmetry
UNIT
BOHR # input molecule geometry in bohr
$END
$xuanyuan # Single and double electron integral correlation setting and calculation
$end
$SCF # Self consistent field calculation module
RKS # Restrict Kohn-Sham
DFT
b3lyp
$END
$NMR # NMR shielding constant calculation module
icg
1 # can enter 0 or 1. 0 means no common gauge calculation and 1 means common gauge calculation. The default value is 0.
igiao
1 # can enter 0 or 1. 0 means no GIAO calculation and 1 means GIAO calculation. The default value is 0.
$END
The four modules compass
, xuanyuan
, scf
and nmr
are called sequentially to complete the calculation. The scf
module performs the RKS
calculation. Based on the results of the RKS calculation, subsequent NMR
calculations are performed, where the NMR
calculation is followed by the COMMON GAUGE calculation and the GIAO calculation, which gives the isotropic and anisotropic NMR shielding constants for all atoms.
COMMON GAUGE
The NMR calculation of COMMON GAUGE can be controlled by the keyword icg:
$NMR
icg
1
$END
You can enter 0 or 1. The default value is 0, which means that no COMMON GAUGE calculation is performed, and 1, which means that a COMMON GAUGE calculation is performed.
In the COMMON GAUGE calculation, the canonical origin is located at the origin of the coordinates (0, 0, 0) by default. The canonical origin can be specified at an atom by using the keyword igatom, or it can be set to a specified location in space by using cgcoord, as follows.:
$NMR
icg
1
igatom
3 # Specify the gauge origin on atom 3, enter an integer number, ranging from 0 to the number of molecular atoms,
# If you enter a value of 0, the specification origin is specified at the coordinate origin
cgcoord
1.0 0.0 0.0 # enter 3 real numbers, and place the origin of the specification on the point with the spatial coordinates of (1.0, 0.0, 0.0)
cgunit
angstrom # The unit of cgcoord coordinate. The default value is atomic unit. When the input is Angstrom, the input standard origin coordinate
# In angstroms; For other inputs (such as Bohr, AU), the coordinate unit is atomic unit, and the input is case insensitive
$END
When both igatom and cgcoord are present in the input, the latter input prevails. For example, in the above example, the final canonical origin is set at the spatial coordinates (1.0, 0.0, 0.0) (in angstroms). If both parameters igatom and cgcoord are not entered, the NMR value of COMMON GAUGE is calculated with the normative origin at the coordinate origin, i.e. at the position (0.0, 0.0, 0.0)
The Common gauge calculation in the output file starts at [nmr_nr_cg]
, as follows:
[nmr_nr_cg]
Doing nonrelativistic-CG-DFT nmr...
[nmr_set_common_gauge]
set the common gauge origin as the coordinate origin(default)
0.000000000000 0.000000000000 0.000000000000
Omitting the middle part of the output, the final result is output as follows:
Isotropic/anisotropic constant by atom type:
atom-C
186.194036 0.000003
atom-H
31.028177 9.317141
31.028176 9.317141
31.028177 9.317141
31.028177 9.317141
The NMR shielding constants in ppm for C and H atoms, respectively, are shown in the first column as isotropic shielding constants and in the second column as anisotropic shielding constants.
GIAO
The NMR calculation of GIAO can be controlled by the keyword igiao:
$NMR
igiao
1
$END
You can enter either 0 or 1. The default value is 0, i.e., no GIAO calculation is performed, and when entered as 1, GIAO calculation is performed.
Warning
In the NMR module, icg and igiao can be entered as either 1, which sets either calculation to be performed, or both (i.e. both calculations), but not both or 0, otherwise the NMR module will not produce any NMR shielding constant values.
The GIAO calculation in the output file starts at [nmr_nr_giao]
, as follows:
[nmr_nr_giao]
Doing nonrelativistic-GIAO-DFT nmr
[set_para_for_giao_eri]
[nmr_int]
Doing nmr integral of operators resulting from the response of B10...
No. of pGTOs and cGTOs: 196 196
giao integrals...
Omitting the middle part of the output, the final result is output as follows:
Isotropic/anisotropic constant by atom type:
atom-C
186.461988 0.000019
atom-H
31.204947 9.070916
31.204944 9.070916
31.204947 9.070921
31.204946 9.070920
As in the case of COMMON GAUGE, the above results are the GIAO shielding constants in ppm for C and H atoms, respectively, with the first column being the isotropic shielding constant and the second column being the anisotropic shielding constant。
Warning
The keyword Isotropic/anisotropic constant by atom type
in the output is exactly the same for GIAO and COMMON GAUGE, when reading the result, you should pay attention to whether it is after [nmr_nr_cg]
or after [nmr_nr_giao]
to distinguish between COMMON GAUGE result or GIAO result.
Relativistic effects
The relativistic effect mainly includes two parts: scalar relativistic effect and spin-orbit coupling effect. Relativistic effects are important in the study of organic light-emitting mechanisms, such as inter-system scattering of electronic states due to spin-track coupling, and changes in the spin of transition states and products. The innermost core electrons of the atom are most strongly affected by relativistic effects on the one hand, and insensitive to chemical changes on the other hand, so there are different ways to deal with them, mainly all-electron relativistic and effective core potential (ECP) two types of methods.
All-electron methods all the inner layer electrons are made variational treatment. The common all-electron relativistic Hamiltonians are: the zero-order regular approximation (ZORA), the second-order Douglas-Kroll-Hess (DKH2), the exact dichotomy (X2C) proposed by Wenjian Liu et al. ZORA and DKH2 have no advantages in terms of accuracy and efficiency and are not recommended.
The core electrons of ECP heavy atoms are replaced by a pre-fitted effective potential function. When there are more heavy atoms, ECP can significantly reduce the variational degrees of freedom and improve the computational efficiency. The ECP is divided into two categories, pseudopotential (PP) and model core potential (MCP), depending on whether the valence electron wave function has nodes in the core layer or not, where MCP has to combine a large number of Gaussian functions in order to reproduce the valence electron wave function nodes correctly, leading to an insignificant improvement in computational efficiency, and is therefore less used. ECP in BDF programs refers to PP.
The BDF basis set library provides a large number of all-electron relativistic basis sets and ECP basis sets .
Warning
Do not mix X2C Hamiltonian and ECP basis sets
X2C relativistic calculations must use non-shrinking basis sets or specially optimized shrinking basis sets, but the first 18 elements are not mandatory.
Scalar relativistic effects
All-electron methods
The BDF can consider scalar relativistic effects through the spinless X2C Hamiltonian (sf-X2C) and its local approximation variants sf-X2C-AXR, sf-X2C-AU. For example:
$xuanyuan
heff
23
nuclear
1
$end
In the above input, heff
calls scalar relativistic Hamiltonians such as sf-X2C (3, 4, or 21), sf-X2C-AXR (atomic X-matrix approximation, 22), and sf-X2C-AU (atomic
U-transformation approximation, 23), where 21, 22, 23 have analytic derivatives. For molecular systems not involving heavy element-heavy element bonding above 5d,
sf-X2C-AU has the highest efficiency without loss of precision and is the recommended method. Otherwise, sf-X2C-AXR or sf-X2C is used.
The nuclear
option set to 1 indicates the use of a finite nuclear model, which is generally not required. However, some relativistic shrinkage basis groups take
into account nucleus size effects, or when calculating the electronic properties near the nucleus, in these cases the finite nuclear model is used.
The types of calculations supported by sf-X2C and its local variants are: single point energies, structure optimization, and some first-order single electron properties . Analytic Hessian and second-order single-electron properties are under development.
ECP
ECP must be combined with a non-relativistic Hamiltonian, where relativistic effects are implicit in the pseudopotential parameters. The types of ECP calculations supported by the BDF are: single-point energy and some single electron properties . Gradient and Hessian for ECP are under development.
Spin-orbit coupling interactions
BDF can handle spin-orbit coupling between different spin multiplet electronic states in TDDFT single-point calculations by means of the state interaction (SI)
method. It needs to be specified in the xuanyuan
module via the hsoc
keyword how to calculate the spin-orbit integrals. See the TDDFT section for an example.
Depending on the adopted Hamiltonian, spin-orbit coupling can also be divided into two categories: all-electron and ECP.
All-electron methods
Although the contribution of the two-electron spin-orbit integral is smaller than that of the single-electron spin-orbit integral, the effect on the spin-orbit coupling effect may reach 1/5~1/3, and therefore cannot be neglected. A singleelectron spin-orbit integral + a molecular mean-field two-electron spin-orbit
integral with a single-center approximation (so1e + SOMF-1c; hsoc
= 2)is suggested. It can be combined with the sf-X2C scalar relativistic Hamiltonian and, for the light element system, with the non-relativistic Hamiltonian. In addition, it is possible to correct the single-electron spin-orbit integrals for shielded nuclei [66, 67] or effective nuclear charges [68] , approximating the effect of the twoelectron spin-orbit integrals, but this may cause unpredictable errors on the
core-layer orbital properties.
ECP
It includes two treatments:
the spin-orbit coupling pseudopotential, which requires the addition of an additional SO potential function to the scalar ECP (SOECP; see the spin-orbit coupling pseudopotential basis set in the basis set library)
Since the effect of the two-electron spin-orbit interaction is already included in the fitting parameters of the SO potential or in the empirical parameters of the effective nuclear charge,
it is sufficient to calculate the single-electron spin-orbit integral. In the BDF, the atoms described by SOECP and the atoms described by scalar ECP or all-electron non-relativity can be used separately, by setting hsoc
to 10 in the xuanyuan module.
It is important to note that the effective nuclear charge supports a limited number of elemental and base group types. For all-electron base groups, only the main group elements before Xe are supported, with the exception of the heavier noble gas elements Ne, Ar, and Kr. For scalar ECP base groups, although more elements are supported, the number of core electrons must be consistent, see the following table:
Atom |
ZA |
NCore |
---|---|---|
Li-F |
3- 9 |
2 |
Na-Cl, Sc-Cu, Zn, Ga |
11-17, 21-29, 30, 31 |
10 |
K -Ca |
19-20 |
18 |
Ge-Br, Y -Ag, Cd, In |
32-35, 39-47, 48, 49 |
28 |
Rb-Sr |
37-38 |
36 |
Sn-I, La |
50-53, 57 |
46 |
Cs-Ba |
55-56 |
54 |
Hf-Au, Hg, Tl |
72-79, 80, 81 |
60 |
Pb-At |
82-85 |
78 |
For more details, such as Zeff parameters, references, etc., see soint_util/zefflib.F90. If the effective nuclear charge method is used for unsupported elements or groups, the results of the spin-orbit coupling calculations are unreliable.
QM/MM Combination Approach
The QM/MM combination method generally divides the system into two zones, the QM zone and the MM zone. The total energy of the system is written as:
where, S denotes the system, I denotes the QM layer, O denotes the MM layer, and L denotes the linking atom. \(E_{MM}(\mathbb{O})\) is calculated using molecular mechanics force fields, and \(E_{QM/MM}(\mathbb{I,O})\) includes two terms:
\(E_{nuc-MM}+V_{elec-MM}\) in the BDF by adding an external point charge to the QM region.
So the total energy of the whole system consists of two parts, \(E_{MM}\) is calculated using molecular mechanics method, \(E_{QM}\) 和 \(E_{QM/MM}\) are calculated using quantum chemical method. Meanwhile, the interactions between QM and MM regions also include VDW interactions, etc., which will not be discussed here. For the broken bonds in the QM and MM regions, the linked-atom model is generally used to describe them.
The BDF program mainly performs the quantum chemistry calculations, while the rest of the calculations are performed by the pdynamo2.0 program package modified by the group. The rest is done by the pdynamo2.0 package, which has been modified by the group. See the relevant examples:
Note
The installation of the pdynamo program is described in the package. Detailed features of the package can be found in the Help file in the package. This manual only provides instructions and examples for QM/MM calculations using BDF.
For reference to QM/MM computing environment installation and configuration, see QM/MM computing environment configuration
Input File Preparation
In general, before QM/MM calculations, molecular dynamics simulations of the target system are required to obtain a suitable initial conformation. Different molecular dynamics software has different output files.
pDynamo-2 currently supports Amber、CHARMM、Gromacs
and other force fields, and also supports PDB、MOL2、xyz
and other formats to read in molecular coordinates.
Note
When using PDB, MOL2, or xyz files as input, the pDynamo program only supports the OPLS force field, which is not recommended for small molecules and non-standard amino acid force field parameters are incomplete. It is recommended to prefer the Amber program, which enters the force field parameters through the topology file. If you only do QM calculations, various input methods are available.
In Amber, for example, the structure of interest is extracted from the kinetic simulation trajectory and stored in a crd
file, which together with the corresponding topology file .prmtop
can be used as the starting point for QM/MM
calculations. the Python script is as follows.
from pBabel import AmberCrdFile_ToCoordinates3, AmberTopologyFile_ToSystem
# Read input information
molecule = AmberTopologyFile_ToSystem(Topfile)
molecule.coordinates3 = AmberCrdFile_ToCoordinates3(CRDfile)
At this point, the molecule information is stored in the molecule
structure. In the specific QM/MM calculation, energy calculation and geometric configuration optimization of the system are required. Also, the active region can be defined
in the MM region to accelerate the calculation.
Total energy calculation
Take a 10 Å water box as an example, after the molecular dynamics simulation, the files are extracted as wat.prmtop, wat.crd
, and the full quantum chemical calculation can be performed for the system with the following code:
import glob, math, os
from pBabel import AmberCrdFile_ToCoordinates3, AmberTopologyFile_ToSystem
from pCore import logFile
from pMolecule mport QCModelBDF, System
# Read the coordinates and topology information of the water box
molecule = AmberTopologyFile_ToSystem ("wat.prmtop")
molecule.coordinates3 = AmberCrdFile_ToCoordinates3("wat.crd")
# Define the energy calculation mode, which is the density functional calculation of the whole system,GB3LYP:6-31g
model = QCModelBDF("GB3LYP:6-31g")
molecule.DefineQCModel(model)
molecule.Summary() #Output system calculation setting information
# Calculate total energy
energy = molecule.Energy()
Methods and basis groups can be defined in the QCModelBDF
class GB3LYP:6-31g
, with :
partitioning between methods and basis groups. In the above example, it is also possible to select the molecule of interest (e.g., the fifth water molecule)
for the QM/MM calculation, using the QM method for the fifth water molecule and the MM (in this case, the amber force field) for the rest. Since periodic boundary conditions are used in the MD calculation, and the QM/MM method does not support
the use of periodic boundary conditions, an option is added to the script to turn off periodic boundary conditions.
molecule.DefineSymmetry( crystalClass = None )
The class Selection
is defined in pDynamo and can be used to select specific QM atoms, as described in the usage notes. The script for selecting QM atoms in script is as follows:
qm_area = Selection.FromIterable(range(12, 15))
#12. 13 and 14 are atomic list index values (this value = Atomic serial number - 1), which is equal to selecting No. 15 water molecule
molecule.DefineQCModel(qcModel, qcSelection = qm_area)
Overall, the script for the combined QM/MM energy calculation is as follows:
import glob, math, os
from pBabel import AmberCrdFile_ToCoordinates3, AmberTopologyFile_ToSystem
from pCore import logFile, Selection
from pMolecule import NBModelORCA, QCModelBDF, System
# . Define the energy models.
nbModel = NBModelORCA()
qcModel = QCModelBDF("GB3LYP:6-31g")
# . Read the data.
molecule = AmberTopologyFile_ToSystem("wat.prmtop")
molecule.coordinates3 = AmberCrdFile_ToCoordinates3("wat.crd")
# .Close symmetry to a system
molecule.DefineSymmetry(crystalClass = None) # QM/MM need Close the symmetry.
# .Selection qm area
qm_area = Selection.FromIterable(range (12, 15)) # Select WAT 5 as the QM area.
# . Define the energy model.
molecule.DefineQCModel (qcModel, qcSelection = qm_area)
molecule.DefineNBModel (nbModel)
molecule.Summary()
# . Calculate
energy = molecule.Energy()
Note
QM/MM calculation supports two input modes. For simple examples, it can be used as parameter input in
QCModelBDF
class.relatively complex examples can be input in the form of
calculation template
.
Geometry Optimization
QM/MM geometry optimization is generally not easy to converge and requires a lot of skills in practice. It is common to fix the MM zone and optimize the QM zone, and then fix the QM zone and optimize the MM zone. After several cycles, the QM and MM regions are optimized at the same time. The convergence of the optimization depends on the choice of the QM zone and the presence of charged atoms at the QM/MM boundary. In order to speed up the optimization, it is possible to fix the MM region during the calculation and select only a suitable region close to the QM region as the active region, where the coordinates can change during the optimization. The following arithmetic example for the optimization of geometric configurations is given.
import glob, math, os.path
from pBabel import AmberCrdFile_ToCoordinates3, \
AmberTopologyFile_ToSystem , \
SystemGeometryTrajectory , \
AmberCrdFile_FromSystem , \
PDBFile_FromSystem , \
XYZFile_FromSystem
from pCore import Clone, logFile, Selection
from pMolecule import NBModelORCA, QCModelBDF, System
from pMoleculeScripts import ConjugateGradientMinimize_SystemGeometry
# Defines the Opt interface
def opt_ConjugateGradientMinimize(molecule, selection):
molecule.DefineFixedAtoms(selection) # Define fixed atoms
#Define optimization methods
ConjugateGradientMinimize_SystemGeometry(
molecule,
maximumIterations = 4, # Maximum number of optimization steps
rmsGradientTolerance = 0.1, #Optimize convergence control
trajectories = [(trajectory, 1)]
) # Defines the frequency at which the track is saved
# . Define the energy models.
nbModel = NBModelORCA()
qcModel = QCModelBDF("GB3LYP:6-31g")
# . Read the data.
molecule = AmberTopologyFile_ToSystem ("wat.prmtop")
molecule.coordinates3 = AmberCrdFile_ToCoordinates3("wat.crd")
# . Close symmetry to a system
molecule.DefineSymmetry(crystalClass = None) # QM/MM need Close the symmetry.
#. Define Atoms List
natoms = len(molecule.atoms) # The total number of atoms in the system
qm_list = range(12, 15) # QM region atoms
activate_list = range(6, 12) + range (24, 27) # MM region active atom (can be moved during optimization)
#Defines the MM region atom
mm_list = range (natoms)
for i in qm_list:
mm_list.remove(i) # MM deletes the QM atom
mm_inactivate_list = mm_list[:]
for i in activate_list :
mm_inactivate_list.remove(i)
# Enter the QM region atom
qmmmtest_qc = Selection.FromIterable(qm_list) # Select WAT 5 as the QM area.
# Define each selection zone
selection_qm_mm_inactivate = Selection.FromIterable(qm_list + mm_inactivate_list)
selection_mm = Selection.FromIterable(mm_list)
selection_mm_inactivate = Selection.FromIterable(mm_inactivate_list)
# . Define the energy model.
molecule.DefineQCModel(qcModel, qcSelection = qmmmtest_qc)
molecule.DefineNBModel(nbModel)
molecule.Summary()
#Calculate the total energy at the start of the optimization
eStart = molecule.Energy()
#Defines the output file
outlabel = 'opt_watbox_bdf'
if os.path.exists(outlabel):
pass
else:
os.mkdir (outlabel)
outlabel = outlabel + '/' + outlabel
# Define the output trajectory
trajectory = SystemGeometryTrajectory (outlabel + ".trj" , molecule, mode = "w")
# Start the first phase of optimization
# Define two steps to optimization
iterations = 2
# Sequentially fix the QM area and mm area for optimization
for i in range(iterations):
opt_ConjugateGradientMinimize(molecule, selection_qm_mm_inactivate) #Fixed QM region optimization
opt_ConjugateGradientMinimize(molecule, selection_mm) #Fixed MM region optimization
# Start the second phase of optimization
# The QM area and mm area are optimized at the same time
opt_ConjugateGradientMinimize(molecule, selection_mm_inactivate)
#Output optimized total energy
eStop = molecule.Energy()
#Save optimized coordinates, which can be xyz/crd/pdb, etc。
XYZFile_FromSystem(outlabel + ".xyz", molecule)
AmberCrdFile_FromSystem(outlabel + ".crd" , molecule)
PDBFile_FromSystem(outlabel + ".pdb" , molecule)
QM/MM-TDDFT algorithm example
After the geometry optimization, the TDDFT calculation can be performed based on the base state calculated by QM/MM. The BDF program interface is designed with a calculation template
function that updates the system coordinates based on the .inp
file given by the user. At the same time, different QM regions can be selected as needed for the geometry optimization and excited state calculation. For example,
in order to consider solvation effects, the first hydrated layer of the molecule of interest can be added to the QM region for QM/MM-TDDFT calculations. Taking the example of the calculation done in the previous section, the calculation can
be continued by adding the following code.
#Continue with the geometry optimization code from the previous section.
#Start the TDDFT calculation. Use a template file as input.
qcModel = QCModelBDF_template(template = 'head_bdf_nosymm.inp')
# Adjust the QM region atoms
tdtest = Selection.FromIterable(qm_list + activate_list) # Redefine the QM region.
molecule.DefineQCModel(qcModel, qcSelection = tdtest)
molecule.DefineNBModel(nbModel)
molecule.Summary()
#Energy calculation using the method in the template, (which can be TDDFT)
energy = molecule.Energy()
In the above code, the template chosen is the input file of the BDF with the following file contents:
$COMPASS
Title
cla_head_bdf
Basis
6-31g
Geometry
H 100.723 207.273 61.172
MG 92.917 204.348 68.063
C 95.652 206.390 67.185
END geometry
Extcharge
point
nosymm
$END
$XUANYUAN
RSOMEGA
0.33
$END
$SCF
RKS
DFT
cam-B3LYP
$END
$tddft #TDDFT calculation control
iprt
3
iroot
5
$end
Structural Optimization and Frequency Calculation
The purpose of structural optimization is to find the minimum point of the potential energy surface of the system. The minimum point that can be found depends on the initial structure provided in the input file. The closer to the minima, the easier it is to converge to the minima.
Structural optimization is mathematically equivalent to the problem of finding the extrema of a multivariate function.:
Commonly used algorithms for structural optimization are as follows:
Steepest descent:The steepest descent method is a line search along the direction of the negative gradient, which is very efficient for structures far from the minima, but slow to converge near the minima and easy to oscillate.
Conjugate gradient:Conjugate gradient method is a modification of the most rapid descent method, the optimization direction of each step and the previous step of the combination of optimization direction, can somewhat alleviate the problem of oscillation
Newton method:The idea of Newton method is to expand the function with respect to the current position in the Taylor series. Newton method converges quickly, for the quadratic function can go to the minimum in one step. However, the Newton method requires solving the Hessian matrix, which is very expensive to compute, and the quasi-Newton method is generally used in geometric optimization.
Quasi-Newton method:The quasi-Newton method constructs the Hessian matrix by approximation, and the Hessian matrix of the current step is obtained based on the forces of the current step and the Hessian matrix of the previous step. There are various approaches, the most commonly used is the BFGS method, in addition to DFP, MS, PSB, etc. Since the Hessian of the quasi-Newton method is constructed approximately, the accuracy of each optimization step is lower than that of the Newton method, and the number of steps required to reach convergence is more than that of the Newton method. However, the total optimization time is still significantly reduced because each step takes much less time.
The structural optimization of the BDF is implemented by the BDFOPT module, which supports the Newtonian and quasi-Newtonian based methods for minima and transition The BDFOPT module supports Newtonian and quasi-Newtonian methods for the optimization of minima and transition structures, and supports restricted structure optimization. The following is an example of the input file format of the BDFOPT module, and an explanation of the output file。
Base state optimization: Optimization of monochloromethane( \(\ce{CH3Cl}\) )at the B3LYP/def2-SV(P) level
$compass
title
CH3Cl geomopt
basis
def2-SV(P)
geometry
C 2.67184328 0.03549756 -3.40353093
H 2.05038141 -0.21545378 -2.56943947
H 2.80438882 1.09651909 -3.44309081
H 3.62454948 -0.43911916 -3.29403269
Cl 1.90897396 -0.51627638 -4.89053325
end geometry
$end
$bdfopt
solver
1
$end
$xuanyuan
$end
$scf
rks
dft
b3lyp
$end
$resp
geom
$end
The RESP module is responsible for calculating the DFT gradient. Unlike most other tasks, in the structure optimization task, the program does not sequentially and single, linear invocation of the modules, but rather, the modules are invoked several times iteratively. The specific sequence of calls is as follows:
run COMPASS, which reads the molecular structure and other information;
run BDFOPT to initialize the intermediate quantities needed for structure optimization;
BDFOPT starts a separate BDF process to calculate the energy and gradient under the current structure, which only executes COMPASS, XUANYUAN, SCF, and RESP modules and skips BDFOPT. i.e., most of the time the user will find two BDF processes running independently of each other, one of which is the process to which BDFOPT belongs and is waiting. is in the waiting state, while the other process is performing energy and gradient calculations. To avoid cluttering the output file, the output of the latter process is automatically redirected to a file with the
.out.tmp
suffix, thus separating it from the output of the BDFOPT module (which is typically redirected by the user to an.out
file)when the latter process is finished, BDFOPT aggregates the energy and gradient information of the current structure and adjusts the molecular structure accordingly with a view to reducing the energy of the system;
BDFOPT determines whether the structure converges according to the gradient of the current structure and the size of the current geometry step, if it converges, or if the structure optimization reaches the maximum number of iterations, the program ends; if it does not converge, the program jumps to step 3。
Therefore, the .out
file contains only the output of COMPASS and BDFOPT modules, which can be used to monitor the process of structural optimization, but does not
contain information on SCF iterations, Buju analysis, etc., which needs to be viewed in the .out.tmp
file
Taking the structure optimization task of \(\ce{CH3Cl}\) above as an example, the output of the BDFOPT module in the .out
file can be seen as follows:
Geometry Optimization step : 1
Single Point SCF for geometry optimization, also get force.
### [bdf_single_point] ### nstate= 1
Allow rotation to standard orientation.
BDFOPT run - details of gradient calculations will be written
into .out.tmp file.
...
### JOB TYPE = SCF ###
E_tot= -499.84154693
Converge= YES
### JOB TYPE = RESP_GSGRAD ###
Energy= -499.841546925072
1 0.0016714972 0.0041574983 -0.0000013445
2 -0.0002556962 -0.0006880567 0.0000402277
3 -0.0002218807 -0.0006861734 -0.0000225761
4 -0.0003229876 -0.0006350885 -0.0000059774
5 -0.0008670369 -0.0021403962 -0.0000084046
It can be seen that BDFOPT calls the BDF program itself to calculate the SCF energy and gradient of the molecule under the initial guess structure. the detailed
output of the SCF and gradient calculations is in the .out.tmp
file, while the .out
file only extracts the energy and gradient values, as well as information on
whether the SCF converges or not. The unit of energy is Hartree and the unit of gradient is Hartree/Bohr.
Since BDFOPT is a structure optimized in redundant internal coordinates( solver
= 1),in order to generate the molecular structure for the next step, the redundant
internal coordinates of the molecule must be generated first. Therefore, in the first step of the structure optimization, the output file also gives the definition
of the individual redundant internal coordinates (i.e. the atomic numbers involved in the formation of the corresponding bonds, bond angles and dihedral angles), as well as their values (bond lengths in angstroms, bond angles in degrees).
|******************************************************************************|
Redundant internal coordinates on Angstrom/Degree
Name Definition Value Constraint
R1 1 2 1.0700 No
R2 1 3 1.0700 No
R3 1 4 1.0700 No
R4 1 5 1.7600 No
A1 2 1 3 109.47 No
A2 2 1 4 109.47 No
A3 2 1 5 109.47 No
A4 3 1 4 109.47 No
A5 3 1 5 109.47 No
A6 4 1 5 109.47 No
D1 4 1 3 2 -120.00 No
D2 5 1 3 2 120.00 No
D3 2 1 4 3 -120.00 No
D4 3 1 4 2 120.00 No
D5 5 1 4 2 -120.00 No
D6 5 1 4 3 120.00 No
D7 2 1 5 3 120.00 No
D8 2 1 5 4 -120.00 No
D9 3 1 5 2 -120.00 No
D10 3 1 5 4 120.00 No
D11 4 1 5 2 120.00 No
D12 4 1 5 3 -120.00 No
|******************************************************************************|
After the molecular structure has been updated, the program calculates the gradient as well as the size of the geometric step and determines whether the structural optimization converges:
Force-RMS Force-Max Step-RMS Step-Max
Conv. tolerance : 0.2000E-03 0.3000E-03 0.8000E-03 0.1200E-02
Current values : 0.8833E-02 0.2235E-01 0.2445E-01 0.5934E-01
Geom. converge : No No No No
The program considers the convergence of the structural optimization only when the current values of Force-RMS, Force-Max, Step-RMS, and Step-Max are less than the corresponding convergence limits (i.e., Geom. converge
column is Yes).
For this example, the structural optimization converges at step 5, when the output message not only contains the values of the convergence criteria, but also
explicitly informs the user that the geometry optimization has converged, and prints the converged molecular structure in Cartesian and internal coordinates, respectively.
Good Job, Geometry Optimization converged in 5 iterations!
Molecular Cartesian Coordinates (X,Y,Z) in Angstrom :
C -0.93557703 0.15971089 0.58828595
H -1.71170348 -0.52644336 0.21665897
H -1.26240747 1.20299703 0.46170050
H -0.72835075 -0.04452039 1.64971607
Cl 0.56770184 -0.09691413 -0.35697029
Force-RMS Force-Max Step-RMS Step-Max
Conv. tolerance : 0.2000E-03 0.3000E-03 0.8000E-03 0.1200E-02
Current values : 0.1736E-05 0.4355E-05 0.3555E-04 0.6607E-04
Geom. converge : Yes Yes Yes Yes
Print Redundant internal coordinates of the converged geometry
|******************************************************************************|
Redundant internal coordinates on Angstrom/Degree
Name Definition Value Constraint
R1 1 2 1.1006 No
R2 1 3 1.1006 No
R3 1 4 1.1006 No
R4 1 5 1.7942 No
A1 2 1 3 110.04 No
A2 2 1 4 110.04 No
A3 2 1 5 108.89 No
A4 3 1 4 110.04 No
A5 3 1 5 108.89 No
A6 4 1 5 108.89 No
D1 4 1 3 2 -121.43 No
D2 5 1 3 2 119.28 No
D3 2 1 4 3 -121.43 No
D4 3 1 4 2 121.43 No
D5 5 1 4 2 -119.28 No
D6 5 1 4 3 119.29 No
D7 2 1 5 3 120.00 No
D8 2 1 5 4 -120.00 No
D9 3 1 5 2 -120.00 No
D10 3 1 5 4 120.00 No
D11 4 1 5 2 120.00 No
D12 4 1 5 3 -120.00 No
|******************************************************************************|
Note that the convergence limits for the root-mean-square force and the rootmean-square step can be set here using the tolgrad
and tolstep
keywords,
respectively, and the program automatically adjusts the convergence limits for the maximum force and the maximum step according to the set values; when using
the DL-FIND library (see later), the energy convergence limit can also be specified by tolene
. However, it is generally not recommended to adjust the convergence limits by the user.
At the same time, the program generates files with the suffix .optgeom
, which contain the Cartesian coordinates of the converged molecular structure, but in Bohr units instead of Angstrom:
GEOM
C -0.7303234729 -2.0107211546 -0.0000057534
H -0.5801408002 -2.7816264533 1.9257943885
H 0.4173171420 -3.1440530286 -1.3130342173
H -2.7178161476 -2.0052051760 -0.6126883555
Cl 0.4272106261 1.1761889168 -0.0000021938
The .optgeom
file can be converted to xyz format using the tool optgeom2xyz.py
under $BDFHOME/sbin/
, so that the optimized molecular structure can be viewed in
any visualization software that supports xyz format. For example, if the file to be converted is named filename.optgeom, execute the following command line: (note
that you must first set the environment variable $BDFHOME, or manually replace $BDFHOME in the following command with the path to the BDF folder)
$BDFHOME/sbin/optgeom2xyz.py filename
You can get filename.xyz in the current directory.
Frequency calculation: Resonant frequencies and thermochemical quantities of \(\ce{CH3Cl}\) in the equilibrium structure
After convergence of the structure optimization, the frequency analysis can be performed. Prepare the following input file:
$compass
title
CH3Cl freq
basis
def2-SV(P)
geometry
C -0.93557703 0.15971089 0.58828595
H -1.71170348 -0.52644336 0.21665897
H -1.26240747 1.20299703 0.46170050
H -0.72835075 -0.04452039 1.64971607
Cl 0.56770184 -0.09691413 -0.35697029
end geometry
$end
$bdfopt
hess
only
$end
$xuanyuan
$end
$scf
rks
dft
b3lyp
$end
$resp
geom
$end
where the molecular structure is the converged structure obtained from the above structure optimization task. Note that we have added hess only
to the BDFOPT
module, where hess
stands for computed (numerical) Hessian, and the meaning of only
will be described in detail in the subsequent sections. The program perturbs
each atom in the molecule in the positive x-axis, negative x-axis, positive yaxis, negative y-axis, positive z-axis, and negative z-axis directions, and
calculates the gradient under the perturbed structure, e.g.
Displacing atom 1 (+x)...
### [bdf_single_point] ### nstate= 1
Do not allow rotation to standard orientation.
BDFOPT run - details of gradient calculations will be written
into .out.tmp file.
...
### JOB TYPE = SCF ###
E_tot= -499.84157717
Converge= YES
### JOB TYPE = RESP_GSGRAD ###
Energy= -499.841577166026
1 0.0005433780 -0.0000683370 -0.0000066851
2 -0.0000516384 0.0000136326 -0.0000206081
3 -0.0001360377 0.0000872513 0.0000990006
4 -0.0003058645 0.0000115926 -0.0000775624
5 -0.0000498284 -0.0000354732 0.0000023346
If the atomic number of the system is N, then a total of 6N gradients have to be calculated. However, in practice the program also calculates the gradients of the unperturbed structure in order to allow the user to check whether the aforementioned structural optimization has indeed converged, so that the program actually calculates a total of 6N+1 gradients. Finally, the program obtains the Hessian of the system by the finite difference method.:
|--------------------------------------------------------------------------------|
Molecular Hessian - Numerical Hessian (BDFOPT)
1 2 3 4 5 6
1 0.5443095266 -0.0744293569 -0.0000240515 -0.0527420800 0.0127361607 -0.0209022664
2 -0.0744293569 0.3693301504 -0.0000259750 0.0124150102 -0.0755387479 0.0935518380
3 -0.0000240515 -0.0000259750 0.5717632089 -0.0213157291 0.0924260912 -0.2929392390
4 -0.0527420800 0.0124150102 -0.0213157291 0.0479752418 -0.0069459473 0.0239610358
5 0.0127361607 -0.0755387479 0.0924260912 -0.0069459473 0.0867377886 -0.0978524147
6 -0.0209022664 0.0935518380 -0.2929392390 0.0239610358 -0.0978524147 0.3068416997
7 -0.1367366097 0.0869338594 0.0987840786 0.0031968314 -0.0034098009 -0.0016497426
8 0.0869913627 -0.1185605401 -0.0945336434 -0.0070787068 0.0099076105 0.0045621064
9 0.0986508197 -0.0953400774 -0.1659434327 0.0163191407 -0.0140134399 -0.0166739137
10 -0.3054590932 0.0111756577 -0.0774713107 0.0016297078 0.0019657599 -0.0021771884
11 0.0112823039 -0.0407134661 0.0021058508 0.0106623780 0.0018506067 0.0005120364
12 -0.0775840113 0.0018141942 -0.0759448618 -0.0275602878 0.0006820252 -0.0059830018
13 -0.0486857506 -0.0362556088 0.0000641125 -0.0000787206 -0.0045253276 0.0011289985
14 -0.0360823429 -0.1334063062 0.0000148321 -0.0091074064 -0.0228930763 -0.0010993076
15 0.0001686252 0.0004961854 -0.0352553706 0.0084860406 0.0189117305 0.0079690194
7 8 9 10 11 12
1 -0.1367366097 0.0869913627 0.0986508197 -0.3054590932 0.0112823039 -0.0775840113
2 0.0869338594 -0.1185605401 -0.0953400774 0.0111756577 -0.0407134661 0.0018141942
3 0.0987840786 -0.0945336434 -0.1659434327 -0.0774713107 0.0021058508 -0.0759448618
4 0.0031968314 -0.0070787068 0.0163191407 0.0016297078 0.0106623780 -0.0275602878
5 -0.0034098009 0.0099076105 -0.0140134399 0.0019657599 0.0018506067 0.0006820252
6 -0.0016497426 0.0045621064 -0.0166739137 -0.0021771884 0.0005120364 -0.0059830018
7 0.1402213115 -0.0861503922 -0.1081442631 -0.0130805143 0.0143574755 0.0192323598
8 -0.0861503922 0.1322736798 0.1009922720 0.0016534140 0.0024111759 0.0011733340
9 -0.1081442631 0.1009922720 0.1688786678 -0.0038440081 0.0072277457 0.0091535975
10 -0.0130805143 0.0016534140 -0.0038440081 0.3186765202 -0.0079165663 0.0838593213
11 0.0143574755 0.0024111759 0.0072277457 -0.0079165663 0.0509206668 -0.0029665370
12 0.0192323598 0.0011733340 0.0091535975 0.0838593213 -0.0029665370 0.0707430980
13 0.0064620333 0.0044161973 -0.0031236007 -0.0026369496 -0.0283860480 0.0017966445
14 -0.0119743475 -0.0258901434 0.0013817613 -0.0066143965 -0.0145372292 -0.0006143935
15 -0.0078330845 -0.0126024853 0.0040383425 -0.0008566397 -0.0068931757 0.0018028482
13 14 15
1 -0.0486857506 -0.0360823429 0.0001686252
2 -0.0362556088 -0.1334063062 0.0004961854
3 0.0000641125 0.0000148321 -0.0352553706
4 -0.0000787206 -0.0091074064 0.0084860406
5 -0.0045253276 -0.0228930763 0.0189117305
6 0.0011289985 -0.0010993076 0.0079690194
7 0.0064620333 -0.0119743475 -0.0078330845
8 0.0044161973 -0.0258901434 -0.0126024853
9 -0.0031236007 0.0013817613 0.0040383425
10 -0.0026369496 -0.0066143965 -0.0008566397
11 -0.0283860480 -0.0145372292 -0.0068931757
12 0.0017966445 -0.0006143935 0.0018028482
13 0.0450796910 0.0642866688 0.0000350066
14 0.0642866688 0.1954779468 0.0000894464
15 0.0000350066 0.0000894464 0.0213253497
|--------------------------------------------------------------------------------|
where the 3N+1 (3N+2, 3N+3) rows correspond to the x (y, z) coordinates of the Nth atom and the 3N+1 (3N+2, 3N+3) columns do the same.
Next, the BDF calls the UniMoVib program for the calculation of frequencies and thermodynamic quantities. First are the results for the integrable representation to which the vibration belongs, the vibrational frequency, the approximate mass, the force constants and the simple positive modes:
************************************
*** Properties of Normal Modes ***
************************************
Results of vibrations:
Normal frequencies (cm^-1), reduced masses (AMU), force constants (mDyn/A)
1 2 3
Irreps A1 E E
Frequencies 733.9170 1020.5018 1021.2363
Reduced masses 7.2079 1.1701 1.1699
Force constants 2.2875 0.7179 0.7189
Atom ZA X Y Z X Y Z X Y Z
1 6 -0.21108 -0.57499 -0.00106 -0.04882 0.01679 0.10300 0.09664 -0.03546 0.05161
2 1 -0.13918 -0.40351 0.04884 -0.06700 -0.59986 -0.13376 -0.37214 -0.36766 -0.03443
3 1 -0.11370 -0.42014 -0.03047 0.26496 0.65294 -0.15254 -0.28591 -0.18743 -0.15504
4 1 -0.19549 -0.38777 -0.01079 0.05490 -0.14087 -0.24770 0.15594 0.73490 -0.07808
5 17 0.08533 0.23216 0.00014 0.00947 -0.00323 -0.01995 -0.01869 0.00699 -0.01000
Where each vibration mode is arranged in the order of vibration frequencies from smallest to largest, and the imaginary frequencies are ranked before all real frequencies, so only the first few frequencies need to be checked to know the number of imaginary frequencies. Next, the thermochemical analysis results are printed:
*********************************************
*** Thermal Contributions to Energies ***
*********************************************
Molecular mass : 49.987388 AMU
Electronic total energy : -499.841576 Hartree
Scaling factor of Freq. : 1.000000
Tolerance of scaling : 0.000000 cm^-1
Rotational symmetry number: 3
The C3v point group is used to calculate rotational entropy.
Principal axes and moments of inertia in atomic units:
1 2 3
Eigenvalues -- 11.700793 137.571621 137.571665
X 0.345094 0.938568 -0.000000
Y 0.938568 -0.345094 -0.000000
Z 0.000000 0.000000 1.000000
Rotational temperatures 7.402388 0.629591 0.629591 Kelvin
Rot. constants A, B, C 5.144924 0.437588 0.437588 cm^-1
154.240933 13.118557 13.118553 GHz
# 1 Temperature = 298.15000 Kelvin Pressure = 1.00000 Atm
====================================================================================
Thermal correction energies Hartree kcal/mol
Zero-point Energy : 0.037519 23.543449
Thermal correction to Energy : 0.040539 25.438450
Thermal correction to Enthalpy : 0.041483 26.030936
Thermal correction to Gibbs Free Energy : 0.014881 9.338203
Sum of electronic and zero-point Energies : -499.804057
Sum of electronic and thermal Energies : -499.801038
Sum of electronic and thermal Enthalpies : -499.800093
Sum of electronic and thermal Free Energies: -499.826695
====================================================================================
The user can read the zero-point energy, enthalpy, Gibbs free energy, etc. as needed. Note that all of the above thermodynamic quantities are obtained under each of the following assumptions:
a frequency correction factor of 1.0;
a temperature of 298.15 K;
a pressure of 1 atm;
the simplicity of the electronic state is 1。
If the user’s calculation does not fall under the above scenario, it can be specified by a series of keywords, such as the following, which represents a frequency correction factor of 0.98, a temperature of 373.15 K, a pressure of 2 atm, and a simplicity of 2 for the eletronic state.
$bdfopt
hess
only
scale
0.98
temp
373.15
press
2.0
ndeg
2
$end
Of particular note is the simplicity of the electronic state, which is equal to the spin multiplet (2S+1) for non-relativistic or scalar relativistic calculations and where the electronic state does not have spatial simplicity; for electronic states with spatial simplicity, the spatial simplicity of the electronic state should also be multiplied by the spatial simplicity of the electronic state, which is the number of dimensions of the incommensurable representation to which the spatial part of the electronic wave function belongs. As for the relativistic calculations considering the spin-orbit coupling (e.g., TDDFT-SOC calculations), the spin multiplicity should be replaced by the simplicity of the corresponding spin state (2J+1).
Sometimes, the frequency calculation is interrupted due to SCF non-convergence or other external reasons, when the calculation time can be saved by adding the restarthess
keyword to the BDFOPT module for breakpoint continuation, e.g.
$bdfopt
hess
only
restarthess
$end
It is also worth noting that structural optimization and frequency analysis (the so-called opt+freq calculation) can be implemented sequentially in the same BDF task, without the need to write two separate input files. For this purpose it is sufficient to change the input of the BDFOPT module to:
$bdfopt
solver
1
hess
final
$end
where final means that the numerical Hessian calculation is performed only after the successful completion of the structural optimization; if the structural optimization does not converge, the program simply quits with an error and does not perform the Hessian and frequency and thermodynamic quantities calculations. If the structural optimization does not converge, the program quits without performing the Hessian, frequency, and thermodynamic quantities calculations.
Transition State Optimization: Transition State Optimization and Frequency Calculation for HCN/HNC Heterogeneous Reactions
Prepare the following input file:
$compass
title
HCN <-> HNC transition state
basis
def2-SVP
geometry
C 0.00000000 0.00000000 0.00000000
N 0.00000000 0.00000000 1.14838000
H 1.58536000 0.00000000 1.14838000
end geometry
$end
$bdfopt
solver
1
hess
init+final
iopt
10
$end
$xuanyuan
$end
$scf
rks
dft
b3lyp
$end
$resp
geom
$end
where iopt 10
indicates the optimized transition state.
Whether optimizing the minima structure or the transition state, the program must generate an initial Hessian prior to the first structural optimization step for
use in subsequent structural optimization steps. In general, the initial Hessian should qualitatively match the exact Hessian under the initial structure, and in
particular, the number of imaginary frequencies must be the same. This requirement is easily satisfied for the optimization of very small value points, and even the
molecular mechanics level Hessian (the so-called “model Hessian”) can be made to match the exact Hessian qualitatively, so the program uses the model Hessian as
the initial Hessian without calculating the exact Hessian. However, for transition state optimization, the model Hessian generally does not have an imaginary
frequency, so the exact Hessian must be generated as the initial Hessian. hess init+final
in the above input file means that both the initial Hessian is generated
for the transition state optimization (this Hessian is not calculated on a structure with gradient 0), and the frequency and thermochemical quantities are
not calculated on a gradient 0 structure. The hess init+final in the above input file means that the initial Hessian is generated for the transition state optimization (this Hessian is not calculated on the structure with gradient 0,
the frequency and thermochemical quantities have no clear physical meaning, so only the Hessian is calculated without frequency analysis), and the Hessian is
calculated again after the structure optimization converges to obtain the frequency analysis results. It is also possible to replace init+final
with init
, i.e., to generate only the initial Hessian and
not to calculate the Hessian again after convergence of the structural optimization, but it is not recommended to omit the final keyword since transition state
optimization (and indeed all structural optimization tasks) generally requires checking the number of virtual frequencies of the final converged structure.
The computed output is similar to that of the optimized minimal value point structure. The final frequency analysis shows that the converged structure has one and only one imaginary frequency(-1104 \(\rm cm^{-1}\)):
Results of vibrations:
Normal frequencies (cm^-1), reduced masses (AMU), force constants (mDyn/A)
1 2 3
Irreps A' A' A'
Frequencies -1104.1414 2092.7239 2631.2601
Reduced masses 1.1680 11.9757 1.0591
Force constants -0.8389 30.9012 4.3205
Atom ZA X Y Z X Y Z X Y Z
1 6 0.04309 0.07860 0.00000 0.71560 0.09001 0.00000 -0.00274 -0.06631 0.00000
2 7 0.03452 -0.06617 0.00000 -0.62958 -0.08802 0.00000 0.00688 -0.01481 0.00000
3 1 -0.99304 -0.01621 0.00000 0.22954 0.15167 0.00000 -0.06313 0.99566 0.00000
This means that the transition state is indeed found.
In the above calculation, the theoretical level of the initial Hessian is the same as the theoretical level of the transition state optimization. Since the initial Hessian only needs to be qualitatively correct, the initial Hessian can be calculated at a lower level and then the transition state can be optimized at a higher theoretical level. Taking the above example, if we want to calculate the initial Hessian at the HF/STO-3G level and optimize the transition state at the B3LYP/Def2-SVP level, we can follow the following steps.
(1)Prepare the following input file named HCN-inithess.inp
:
$compass
title
HCN <-> HNC transition state, initial Hessian
basis
STO-3G
geometry
C 0.00000000 0.00000000 0.00000000
N 0.00000000 0.00000000 1.14838000
H 1.58536000 0.00000000 1.14838000
end geometry
$end
$bdfopt
hess
only
$end
$xuanyuan
$end
$scf
rhf
$end
$resp
geom
$end
(2)Run the input file with BDF to obtain the Hessian file HCN-inithess.hess
;
(3)Copy or rename HCN-inithess.hess
to HCN-optTS.hess
;
(4)Prepare the following input file, named HCN-optTS.inp
:
$compass
title
HCN <-> HNC transition state
basis
def2-SVP
geometry
C 0.00000000 0.00000000 0.00000000
N 0.00000000 0.00000000 1.14838000
H 1.58536000 0.00000000 1.14838000
end geometry
$end
$bdfopt
solver
1
hess
init+final
iopt
10
readhess
$end
$xuanyuan
$end
$scf
rks
dft
b3lyp
$end
$resp
geom
$end
Where the keyword readhess
means to read a hess file with the same name as the input file (i.e. HCN-optTS.hess) as the initial Hessian.
Note that although this input file does not recalculate the initial Hessian, you still need to write hess init+final
instead of hess final
.
(5)Just run the input file.
Restricted Structural Optimization
BDF also supports restricting the value of one or more internal coordinates in structure optimization by adding the constrain keyword to the BDFOPT module. the first line after the constrain keyword is an integer (hereafter called N) indicating the total number of restrictions; lines 2 through N+1 define each restriction. For example, the following input indicates the distance between the 2nd atom and the 5th atom (these two atoms do not necessarily need to be chemically bonded to each other) to be restricted during structure optimization:
$bdfopt
solver
1
constrain
1
2 5
$end
The following input indicates that the distance between the 1st atom and the 2nd atom is restricted during structure optimization, and also the bond angles formed by the 2nd, 5th and 10th atoms (again, no chemical bond is required between the 2nd and 5th atoms, or the 5th and 10th atoms):
$bdfopt
solver
1
constrain
2
1 2
2 5 10
$end
The following input indicates that the dihedral angles between the 5th, 10th, 15th, and 20th atoms are restricted during structure optimization, and also between the 10th, 15th, 20th, and 25th atoms:
$bdfopt
solver
1
constrain
2
5 10 15 20
10 15 20 25
$end
Optimization of the conical intersection (CI) and the minimum energy intersection point (MECP)
The optimization of CIs and MECPs requires calling the DL-FIND external library, for which the following keywords are added to the input of the BDFOPT module.
solver
0
Accordingly, solver 1
in the previous examples means that the optimization isperformed using the BDF’s own structural optimization code instead of DL-FIND. In
principle In principle, the optimization of minima and transition states can also be done with DL-FIND, but it is generally not as efficient as the BDF’s own code, so DL-FIND should be called only for tasks that are not supported by the BDF’s
own code, such as CI and MECP optimization.
The following is an example input for CI optimization, which computes the tapered intersection of the T1 and T2 states of the ethylene:
#----------------------------------------------------------------------
# Gradient projection method for CI between T1 and T2 by TDDFT BHHLYP/6-31G
#
$COMPASS
Title
C2H4 Molecule test run
Basis
6-31G
Geometry
C 0.00107880 -0.00318153 1.43425054
C 0.00066030 0.00195132 -1.43437339
H 0.05960990 -0.89114967 0.84012371
H -0.05830329 0.95445870 0.96064844
H 0.05950228 0.89180839 -0.84311032
H -0.06267534 -0.95390169 -0.95768311
END geometry
nosym
$END
$bdfopt
imulti #Optimize CI
2
maxcycle #Maximum number of optimization steps
50
tolgrad #Convergence criterion for root mean square gradients
1.d-4
tolstep #Convergence criterion for root mean square steps
5.d-3
$end
$xuanyuan
$end
$SCF
RKS
charge
0
spinmulti
1
atomorb
DFT
BHHLYP
$END
$tddft
imethod
1
isf
1
itda
1
nroot
5
idiag
1
istore
1
crit_e
1.d-8
crit_vec
1.d-6
lefteig
ialda
4
$end
$resp
geom
norder
1
method
2
iroot
1
nfiles
1
$end
$resp
geom
norder
1
method
2
iroot
2
nfiles
1
$end
$resp
iprt
1
QUAD
FNAC
double
norder
1
method
2
nfiles
1
pairs
1
1 1 1 1 1 2
$end
Note that this task requires not only the calculation of the gradients of the T1 and T2 states, but also the calculation of the non-adiabatic coupling vector
between the T1 and T2 states (done by the last RESP module), see tddft for the relevant keywords tddft , which are not repeated here. In the input of the BDFOPT module, imulti 2
represents the optimization CI. similar to the normal structural
optimization task, the CI optimization outputs the gradient and step size convergence for each step, along with the energy convergence. For example, the output of the last optimization step of the above example is
Testing convergence in cycle 6
Energy 0.0000E+00 Target: 1.0000E-06 converged? yes
Max step 9.0855E-04 Target: 5.0000E-03 converged? yes component 4
RMS step 5.6602E-04 Target: 3.3333E-03 converged? yes
Max grad 5.5511E-05 Target: 1.0000E-04 converged? yes component 1
RMS grad 2.7645E-05 Target: 6.6667E-05 converged? yes
Converged!
converged
Similar to the previous optimization tasks, the convergent CI structure is saved in In the .optgeom
file, the coordinate unit is Bohr. Note that the value in the
row of energy is always displayed as 0, which does not mean that the system energy remains unchanged during CI optimization, but because the optimization CI will
not use the convergence of energy to judge whether it converges. For the same reason, the tolene
keyword has no effect on CI optimization (and MECP optimization below).
The following is an example input file for optimizing MECP:
#----------------------------------------------------------------------
# Gradient projection method for ISC between S0 and T1 by BHHLYP/6-31G
#
$COMPASS
Title
C2H4 Molecule test run
Basis
6-31G
Geometry
C -0.00000141 0.00000353 0.72393424
C 0.00000417 -0.00000109 -0.72393515
H 0.73780975 -0.54421247 1.29907106
H -0.73778145 0.54421417 1.29907329
H 0.73777374 0.54421576 -1.29907129
H -0.73779427 -0.54423609 -1.29906321
END geometry
nosym
$END
$bdfopt
imulti
2
maxcycle
50
tolgrad
1.d-4
tolstep
5.d-3
noncouple
$end
$xuanyuan
$end
$SCF
RKS
charge
0
spinmulti
1
atomorb
DFT
BHHLYP
$END
$resp
geom
norder
1
method
1
$end
$SCF
UKS
charge
0
spinmulti
3
atomorb
DFT
BHHLYP
$END
$resp
geom
norder
1
method
1
$end
where the imulti 2
and noncouple
keywords are specified to perform MECP optimization. Note that the MECP optimization task requires the calculation of only two states (here S0 and T The output of the MECP optimization task is similar to the CI optimization task and is not described here.
Geometric Optimization Frequently Asked Questions
False frequency problem
Geometric optimization requires not only convergence of the structure (i.e., gradient and step size meet the convergence limits), but also the number of imaginary frequencies of the resulting structure to meet the expected value, i.e., 0 when optimizing the structure of the minima, 1 when optimizing the transition state, and higher order saddle points if the number of imaginary frequencies is greater than 1. When the actual number of virtual frequencies calculated does not match the expected value, the structure needs to be adjusted and re-optimized.
When the actual calculated number of imaginary frequencies is less than the expected value, i.e., when the optimized transition state gets a structure with the number of imaginary frequencies of 0: this generally means that the obtained transition state structure is wrongly characterized, and the initial guess structure needs to be prepared again according to the common sense of chemistry.
When the actual number of false frequencies is greater than the expected value, there are two possible cases:(1)the false frequencies are caused by the numerical error of the calculation, not the real existence. In this case, it can be solved by increasing the grid point, decreasing the integration truncation threshold, decreasing various convergence thresholds (such as SCF convergence threshold, structural optimization convergence threshold, etc.), etc.(2)The system does have a false frequency. In this case, we should check the simple positive mode corresponding to the false frequency from the output file, and perturb the converged structure along the direction of the simple positive mode, and then use the perturbed structure as the first guess to re-optimize the structure.
Note that it is impossible to determine whether a certain imaginary frequency is caused by numerical error from the frequency calculation results alone, but in general, the smaller the absolute value of the imaginary frequency, the more likely it is caused by numerical error, and vice versa, the more likely it is real.
Symmetry problem
When the initial structure has a point group symmetry above group \(\rm C_1\) , the structure optimization may break the point group symmetry, e.g., when optimizing an ammonia molecule with a planar structure with initial structure symmetry \(\rm D_{3h}\) , the structure optimization may result in a conical structure with symmetry \(\rm C_{3v}\) . By default the BDF forces the molecular point group symmetry to be maintained unless the system has a first order Jahn-Teller effect. If the user wants the BDF to break the symmetry of the molecules, one of the following approaches can be taken:
Still optimize at high symmetry until convergence, and then calculate the frequencies. If false frequencies are present, perturb the molecular structure as in the previous subsection to eliminate them. If the molecule can be further reduced in energy by breaking the symmetry, then the perturbed molecular structure should be found to have reduced symmetry at this point, and the optimization should continue with that structure as the initial structure.
If a subgroup of the molecular point group is specified in the COMPASS module, the program will only keep the subgroup symmetry unbroken. If a \(\rm C_1\) group is specified, the program allows breaking the molecular symmetry in any way, maximizing the probability of obtaining a low-energy structure at the cost of not being able to use the point group symmetry to speed up the computation, resulting in increased computational effort.
Geometric optimization does not converge
There are many factors that lead to the non-convergence of geometric optimization, including:
The presence of numerical noise in the energy, gradients;
The potential energy surface is too flat;
The molecule has more than one stable wave function, and the wave function jumps back and forth between the various stable solutions during structural optimization, and does not converge stably and consistently to the the same solution;
unreasonable molecular structure, e.g. wrong units of coordinates (e.g. the unit of coordinates is supposed to be Bohr, but the unit specified in the input file is Angstrom or vice versa), overdrawing or missing atoms, too close distances between non-bonded atoms, etc.
If the geometric optimization does not converge, or if there is no trend of convergence even though the maximum number of convergences has not been reached, after repeatedly checking that the three-dimensional structure of the molecule is correct and reasonable, and that the wave function is not too close to the atom, then the geometry of the molecule should be optimized. After repeatedly checking that the three-dimensional structure of the molecule is correct and reasonable, and that the wave function converges normally, the following methods can be tried in turn:
Use the last frame of the task that does not converge as the initial structure and start the optimization again. In addition to manually copying the structure coordinates of the last frame into the input file, a In addition to manually copying the structural coordinates of the last frame into the input file, a simpler way is to add the
restart
keyword to the COMPASS module, e.g.
$compass
title
CH3Cl geomopt
basis
def2-SV(P)
geometry
C 2.67184328 0.03549756 -3.40353093
H 2.05038141 -0.21545378 -2.56943947
H 2.80438882 1.09651909 -3.44309081
H 3.62454948 -0.43911916 -3.29403269
Cl 1.90897396 -0.51627638 -4.89053325
end geometry
restart
$end
Suppose the input file is named CH3Cl-opt.inp
,then the program automatically reads the coordinates in CH3Cl-opt.optgeom
as the initial structure at this point
(note that the program does not use the molecular coordinates in the geometry
field at this point, but the molecular coordinates cannot be deleted). At first
glance, this may seem to be the same as simply increasing the maximum number of iterations for geometry optimization, but in fact it often works better than
simply increasing the maximum number of iterations, e.g., if the structure is reread after 100 steps of optimization and then re-optimized for 50 steps, the
convergence probability is often higher than if the structure is re-read for 150 consecutive steps. This is because the program regenerates the initial Hessian
when the structure is re-read to continue the optimization, thus avoiding the error accumulated by the quasi-Newton method of constructing the Hessian in multiple successive steps.
Decreasing the optimization step length, or trust radius. This is done by using the trust keyword, e.g.
$bdfopt
solver
1
trust
0.05
$end
The default confidence radius is 0.3, so the new confidence radius should be less than 0.3. Note that the program will dynamically increase the confidence radius if it detects that the confidence radius is too small. To avoid this behavior, the confidence radius can be set to a negative value, e.g.
$bdfopt
solver
1
trust
-0.05
$end
To avoid this behavior, the confidence radius can be set to a negative value, e.g., the initial confidence radius is set to 0.05, and the confidence radius is forbidden to exceed 0.05 during the entire structural optimization process.
For transition state optimization, the
recalchess
keyword can be used to specify that the exact Hessian is recalculated at several steps.
$bdfopt
solver
1
iopt
10
hess
init
recalchess
10
$end
It indicates that the exact Hessian is recalculated every 10 steps of structural optimization, in addition to the exact Hessian calculated before structural optimization.
The lattice points are increased and the convergence thresholds of the integration truncation and SCF, etc., are decreased to reduce the numerical errors. Note that this method only works when the structural optimization is almost convergence but not full convergence.
Solvation models
Solvation models are used to calculate the interaction between solutes and solvents, and are generally divided into two types: implicit solvent models (continuous medium models) and explicit solvent models. In BDF, for the continuous solvent model, we use ddCOSMO (domain-decomposition COSMO solvation model), and for the display solvent model we use the QM/MM method in combination with the pDymamo2.0 program package for the calculation.
Calculation of solvation effects
BDF currently supports the calculation of base-state solvation effects, including HF and DFT methods. The following are the input files for the solventization effect calculation of formaldehyde molecules file:
$COMPASS
Title
ch2o Molecule test run
Basis
6-31g
Geometry
C 0.00000000 0.00000000 -0.54200000
O 0.00000000 0.00000000 0.67700000
H 0.00000000 0.93500000 -1.08200000
H 0.00000000 -0.9350000 -1.08200000
END geometry
nosym
unit
ang
$END
$xuanyuan
$END
$SCF
rks
dft
b3lyp
solvent #Solvation calculation
water #Specify the solvent
grid
medium
$END
Where the solvent keyword is added to the SCF
to indicate that a solvent
effect calculation is to be performed, followed by a line where the solvent type, in this
case water
, can be entered.
The list of solvent types supported in BDF is as follows:
Water |
\({\epsilon}\) =78.3553 |
Butanone |
\({\epsilon}\) =18.246 |
Acetonitrile |
\({\epsilon}\) =35.688 |
ButanoNitrile |
\({\epsilon}\) =24.291 |
Methanol |
\({\epsilon}\) =32.613 |
ButylAmine |
\({\epsilon}\) =4.6178 |
Ethanol |
\({\epsilon}\) =24.852 |
ButylEthanoate |
\({\epsilon}\) =4.9941 |
IsoQuinoline |
\({\epsilon}\) =11.00 |
CarbonDiSulfide |
\({\epsilon}\) =2.6105 |
Quinoline |
\({\epsilon}\) =9.16 |
Cis-1,2-DiMethylCycloHexane |
\({\epsilon}\) =2.06 |
Chloroform |
\({\epsilon}\) =4.7113 |
Cis-Decalin |
\({\epsilon}\) =2.2139 |
DiethylEther |
\({\epsilon}\) =4.24 |
CycloHexanone |
\({\epsilon}\) =15.619 |
Dichloromethane |
\({\epsilon}\) =8.93 |
CycloPentane |
\({\epsilon}\) =1.9608 |
DiChloroEthane |
\({\epsilon}\) =10.125 |
CycloPentanol |
\({\epsilon}\) =16.989 |
CarbonTetraChloride |
\({\epsilon}\) =2.2280 |
CycloPentanone |
\({\epsilon}\) =13.58 |
Benzene |
\({\epsilon}\) =2.2706 |
Decalin-mixture |
\({\epsilon}\) =2.196 |
Toluene |
\({\epsilon}\) =2.3741 |
DiBromomEthane |
\({\epsilon}\) =7.2273 |
ChloroBenzene |
\({\epsilon}\) =5.6968 |
DiButylEther |
\({\epsilon}\) =3.0473 |
NitroMethane |
\({\epsilon}\) =36.562 |
DiEthylAmine |
\({\epsilon}\) =3.5766 |
Heptane |
\({\epsilon}\) =1.9113 |
DiEthylSulfide |
\({\epsilon}\) =5.723 |
CycloHexane |
\({\epsilon}\) =2.0165 |
DiIodoMethane |
\({\epsilon}\) =5.32 |
Aniline |
\({\epsilon}\) =6.8882 |
DiIsoPropylEther |
\({\epsilon}\) =3.38 |
Acetone |
\({\epsilon}\) =20.493 |
DiMethylDiSulfide |
\({\epsilon}\) =9.6 |
TetraHydroFuran |
\({\epsilon}\) =7.4257 |
DiPhenylEther |
\({\epsilon}\) =3.73 |
DiMethylSulfoxide |
\({\epsilon}\) =46.826 |
DiPropylAmine |
\({\epsilon}\) =2.9112 |
Argon |
\({\epsilon}\) =1.430 |
e-1,2-DiChloroEthene |
\({\epsilon}\) =2.14 |
Krypton |
\({\epsilon}\) =1.519 |
e-2-Pentene |
\({\epsilon}\) =2.051 |
Xenon |
\({\epsilon}\) =1.706 |
EthaneThiol |
\({\epsilon}\) =6.667 |
n-Octanol |
\({\epsilon}\) =9.8629 |
EthylBenzene |
\({\epsilon}\) =2.4339 |
1,1,1-TriChloroEthane |
\({\epsilon}\) =7.0826 |
EthylEthanoate |
\({\epsilon}\) =5.9867 |
1,1,2-TriChloroEthane |
\({\epsilon}\) =7.1937 |
EthylMethanoate |
\({\epsilon}\) =8.3310 |
1,2,4-TriMethylBenzene |
\({\epsilon}\) =2.3653 |
EthylPhenylEther |
\({\epsilon}\) =4.1797 |
1,2-DiBromoEthane |
\({\epsilon}\) =4.9313 |
FluoroBenzene |
\({\epsilon}\) =5.42 |
1,2-EthaneDiol |
\({\epsilon}\) =40.245 |
Formamide |
\({\epsilon}\) =108.94 |
1,4-Dioxane |
\({\epsilon}\) =2.2099 |
FormicAcid |
\({\epsilon}\) =51.1 |
1-Bromo-2-MethylPropane |
\({\epsilon}\) =7.7792 |
HexanoicAcid |
\({\epsilon}\) =2.6 |
1-BromoOctane |
\({\epsilon}\) =5.0244 |
IodoBenzene |
\({\epsilon}\) =4.5470 |
1-BromoPentane |
\({\epsilon}\) =6.269 |
IodoEthane |
\({\epsilon}\) =7.6177 |
1-BromoPropane |
\({\epsilon}\) =8.0496 |
IodoMethane |
\({\epsilon}\) =6.8650 |
1-Butanol |
\({\epsilon}\) =17.332 |
IsoPropylBenzene |
\({\epsilon}\) =2.3712 |
1-ChloroHexane |
\({\epsilon}\) =5.9491 |
m-Cresol |
\({\epsilon}\) =12.44 |
1-ChloroPentane |
\({\epsilon}\) =6.5022 |
Mesitylene |
\({\epsilon}\) =2.2650 |
1-ChloroPropane |
\({\epsilon}\) =8.3548 |
MethylBenzoate |
\({\epsilon}\) =6.7367 |
1-Decanol |
\({\epsilon}\) =7.5305 |
MethylButanoate |
\({\epsilon}\) =5.5607 |
1-FluoroOctane |
\({\epsilon}\) =3.89 |
MethylCycloHexane |
\({\epsilon}\) =2.024 |
1-Heptanol |
\({\epsilon}\) =11.321 |
MethylEthanoate |
\({\epsilon}\) =6.8615 |
1-Hexanol |
\({\epsilon}\) =12.51 |
MethylMethanoate |
\({\epsilon}\) =8.8377 |
1-Hexene |
\({\epsilon}\) =2.0717 |
MethylPropanoate |
\({\epsilon}\) =6.0777 |
1-Hexyne |
\({\epsilon}\) =2.615 |
m-Xylene |
\({\epsilon}\) =2.3478 |
1-IodoButane |
\({\epsilon}\) =6.173 |
n-ButylBenzene |
\({\epsilon}\) =2.36 |
1-IodoHexaDecane |
\({\epsilon}\) =3.5338 |
n-Decane |
\({\epsilon}\) =1.9846 |
1-IodoPentane |
\({\epsilon}\) =5.6973 |
n-Dodecane |
\({\epsilon}\) =2.0060 |
1-IodoPropane |
\({\epsilon}\) =6.9626 |
n-Hexadecane |
\({\epsilon}\) =2.0402 |
1-NitroPropane |
\({\epsilon}\) =23.73 |
n-Hexane |
\({\epsilon}\) =1.8819 |
1-Nonanol |
\({\epsilon}\) =8.5991 |
NitroBenzene |
\({\epsilon}\) =34.809 |
1-Pentanol |
\({\epsilon}\) =15.13 |
NitroEthane |
\({\epsilon}\) =28.29 |
1-Pentene |
\({\epsilon}\) =1.9905 |
n-MethylAniline |
\({\epsilon}\) =5.96 |
1-Propanol |
\({\epsilon}\) =20.524 |
n-MethylFormamide-mixture |
\({\epsilon}\) =181.56 |
2,2,2-TriFluoroEthanol |
\({\epsilon}\) =26.726 |
n,n-DiMethylAcetamide |
\({\epsilon}\) =37.781 |
2,2,4-TriMethylPentane |
\({\epsilon}\) =1.9358 |
n,n-DiMethylFormamide |
\({\epsilon}\) =37.219 |
2,4-DiMethylPentane |
\({\epsilon}\) =1.8939 |
n-Nonane |
\({\epsilon}\) =1.9605 |
2,4-DiMethylPyridine |
\({\epsilon}\) =9.4176 |
n-Octane |
\({\epsilon}\) =1.9406 |
2,6-DiMethylPyridine |
\({\epsilon}\) =7.1735 |
n-Pentadecane |
\({\epsilon}\) =2.0333 |
2-BromoPropane |
\({\epsilon}\) =9.3610 |
n-Pentane |
\({\epsilon}\) =1.8371 |
2-Butanol |
\({\epsilon}\) =15.944 |
n-Undecane |
\({\epsilon}\) =1.9910 |
2-ChloroButane |
\({\epsilon}\) =8.3930 |
o-ChloroToluene |
\({\epsilon}\) =4.6331 |
2-Heptanone |
\({\epsilon}\) =11.658 |
o-Cresol |
\({\epsilon}\) =6.76 |
2-Hexanone |
\({\epsilon}\) =14.136 |
o-DiChloroBenzene |
\({\epsilon}\) =9.9949 |
2-MethoxyEthanol |
\({\epsilon}\) =17.2 |
o-NitroToluene |
\({\epsilon}\) =25.669 |
2-Methyl-1-Propanol |
\({\epsilon}\) =16.777 |
o-Xylene |
\({\epsilon}\) =2.5454 |
2-Methyl-2-Propanol |
\({\epsilon}\) =12.47 |
Pentanal |
\({\epsilon}\) =10.0 |
2-MethylPentane |
\({\epsilon}\) =1.89 |
PentanoicAcid |
\({\epsilon}\) =2.6924 |
2-MethylPyridine |
\({\epsilon}\) =9.9533 |
PentylAmine |
\({\epsilon}\) =4.2010 |
2-NitroPropane |
\({\epsilon}\) =25.654 |
PentylEthanoate |
\({\epsilon}\) =4.7297 |
2-Octanone |
\({\epsilon}\) =9.4678 |
PerFluoroBenzene |
\({\epsilon}\) =2.029 |
2-Pentanone |
\({\epsilon}\) =15.2 |
p-IsoPropylToluene |
\({\epsilon}\) =2.2322 |
2-Propanol |
\({\epsilon}\) =19.264 |
Propanal |
\({\epsilon}\) =18.5 |
2-Propen-1-ol |
\({\epsilon}\) =19.011 |
PropanoicAcid |
\({\epsilon}\) =3.44 |
3-MethylPyridine |
\({\epsilon}\) =11.645 |
PropanoNitrile |
\({\epsilon}\) =29.324 |
3-Pentanone |
\({\epsilon}\) =16.78 |
PropylAmine |
\({\epsilon}\) =4.9912 |
4-Heptanone |
\({\epsilon}\) =12.257 |
PropylEthanoate |
\({\epsilon}\) =5.5205 |
4-Methyl-2-Pentanone |
\({\epsilon}\) =12.887 |
p-Xylene |
\({\epsilon}\) =2.2705 |
4-MethylPyridine |
\({\epsilon}\) =11.957 |
Pyridine |
\({\epsilon}\) =12.978 |
5-Nonanone |
\({\epsilon}\) =10.6 |
sec-ButylBenzene |
\({\epsilon}\) =2.3446 |
AceticAcid |
\({\epsilon}\) =6.2528 |
tert-ButylBenzene |
\({\epsilon}\) =2.3447 |
AcetoPhenone |
\({\epsilon}\) =17.44 |
TetraChloroEthene |
\({\epsilon}\) =2.268 |
a-ChloroToluene |
\({\epsilon}\) =6.7175 |
TetraHydroThiophene-s,s-dioxide |
\({\epsilon}\) =43.962 |
Anisole |
\({\epsilon}\) =4.2247 |
Tetralin |
\({\epsilon}\) =2.771 |
Benzaldehyde |
\({\epsilon}\) =18.220 |
Thiophene |
\({\epsilon}\) =2.7270 |
BenzoNitrile |
\({\epsilon}\) =25.592 |
Thiophenol |
\({\epsilon}\) =4.2728 |
BenzylAlcohol |
\({\epsilon}\) =12.457 |
trans-Decalin |
\({\epsilon}\) =2.1781 |
BromoBenzene |
\({\epsilon}\) =5.3954 |
TriButylPhosphate |
\({\epsilon}\) =8.1781 |
BromoEthane |
\({\epsilon}\) =9.01 |
TriChloroEthene |
\({\epsilon}\) =3.422 |
Bromoform |
\({\epsilon}\) =4.2488 |
TriEthylAmine |
\({\epsilon}\) =2.3832 |
Butanal |
\({\epsilon}\) =13.45 |
Xylene-mixture |
\({\epsilon}\) =2.3879 |
ButanoicAcid |
\({\epsilon}\) =2.9931 |
z-1,2-DiChloroEthene |
\({\epsilon}\) =9.2 |
Entering the dielectric constant
For solvents that are not in the table, you can enter the dielectric constant. The format is as follows:
solvent
user #User-specified
dielectric
78.3553 #Enter the dielectric constant
Note
Solvation effects are currently only supported for energy calculations, and gradient calculations will be completed in the near future.
Excited State Solvation Effect
The excited state solvation effect can be calculated using a combination of explicit and implicit solvents. Take an aqueous solution as an example, due to the solute molecule’s HOMO and LUMO orbitals may diffuse into the first hydration layer, so the excited state calculation can include the water molecules in the first hydration layer in the TDDFT calculation region, while the rest is treated with an implicit solvent.
Take sinapic acid as an example. To determine the first hydration layer of the solute molecule, the Amber program can be used to simulate the molecular dynamics of the mustard acid molecule in a small box of water. After the system is equilibrated, the distribution of water molecules around the solute molecule can be analyzed to determine the first hydration layer. Of course, it is also possible to select a multi-frame structure for calculation and then take an average.
The selection of molecules in the hydration layer can be done using the VMD program. Assuming that the input is a pdb file, the first hydration layer molecule can be selected on the command line and saved as a pdb file. The command is as follows:
atomselect top "same resid as (within 3.5 of not water)" # Select the first hydration layer
atomselect0 writepdb sa.pdb #Solute molecules and first hydrated layers are preserved in pdb files
In the above example, all water molecules within 3.5 Å of the solute molecule are selected, and the entire molecule is selected as long as one of the three atoms of the water molecule is within the truncation range. The selection results are shown in the figure:
Based on the coordinate information in the sa.pdb file, the TDDFT calculation is performed with the following input file:
$COMPASS
Title
SA Molecule test run
Basis
6-31g
Geometry
C 14.983 14.539 6.274
C 14.515 14.183 7.629
C 13.251 14.233 8.118
C 12.774 13.868 9.480
C 11.429 14.087 9.838
C 10.961 13.725 11.118
O 9.666 13.973 11.525
C 8.553 14.050 10.621
C 11.836 13.125 12.041
O 11.364 12.722 13.262
C 13.184 12.919 11.700
O 14.021 12.342 12.636
C 15.284 11.744 12.293
C 13.648 13.297 10.427
O 14.270 14.853 5.341
O 16.307 14.468 6.130
H 15.310 13.847 8.286
H 12.474 14.613 7.454
H 10.754 14.550 9.127
H 7.627 14.202 11.188
H 8.673 14.888 9.924
H 8.457 13.118 10.054
H 10.366 12.712 13.206
H 15.725 11.272 13.177
H 15.144 10.973 11.525
H 15.985 12.500 11.922
H 14.687 13.129 10.174
H 16.438 14.756 5.181
O 18.736 9.803 12.472
H 18.779 10.597 11.888
H 19.417 10.074 13.139
O 18.022 14.021 8.274
H 17.547 14.250 7.452
H 18.614 13.310 7.941
O 8.888 16.439 7.042
H 9.682 16.973 6.797
H 8.217 17.162 7.048
O 4.019 14.176 11.140
H 4.032 13.572 10.360
H 4.752 14.783 10.885
O 16.970 8.986 14.331
H 17.578 9.273 13.606
H 17.497 8.225 14.676
O 8.133 17.541 10.454
H 8.419 17.716 11.386
H 8.936 17.880 9.990
O 8.639 12.198 13.660
H 7.777 11.857 13.323
H 8.413 13.155 13.731
O 13.766 11.972 4.742
H 13.858 12.934 4.618
H 13.712 11.679 3.799
O 10.264 16.103 14.305
H 9.444 15.605 14.054
H 10.527 15.554 15.084
O 13.269 16.802 3.701
H 13.513 16.077 4.325
H 14.141 17.264 3.657
O 13.286 14.138 14.908
H 13.185 14.974 14.393
H 13.003 13.492 14.228
O 16.694 11.449 15.608
H 15.780 11.262 15.969
H 16.838 10.579 15.161
O 7.858 14.828 14.050
H 7.208 15.473 13.691
H 7.322 14.462 14.795
O 15.961 17.544 3.706
H 16.342 16.631 3.627
H 16.502 17.866 4.462
O 10.940 14.245 16.302
H 10.828 13.277 16.477
H 11.870 14.226 15.967
O 12.686 10.250 14.079
H 11.731 10.151 14.318
H 12.629 11.070 13.541
O 9.429 11.239 8.483
H 8.927 10.817 7.750
H 9.237 12.182 8.295
O 17.151 15.141 3.699
H 17.124 14.305 3.168
H 18.133 15.245 3.766
O 17.065 10.633 9.634
H 16.918 10.557 8.674
H 17.024 9.698 9.909
O 17.536 14.457 10.874
H 18.014 13.627 11.089
H 17.683 14.460 9.890
O 5.836 16.609 13.299
H 4.877 16.500 13.549
H 5.760 16.376 12.342
O 19.014 12.008 10.822
H 18.249 11.634 10.308
H 19.749 11.655 10.256
O 15.861 14.137 15.750
H 14.900 13.990 15.574
H 16.185 13.214 15.645
O 11.084 9.639 10.009
H 11.641 9.480 9.213
H 10.452 10.296 9.627
O 14.234 10.787 16.235
H 13.668 10.623 15.444
H 13.663 10.376 16.925
O 14.488 8.506 13.105
H 13.870 9.136 13.550
H 15.301 8.683 13.628
O 14.899 17.658 9.746
H 15.674 18.005 9.236
H 15.210 16.754 9.926
O 8.725 13.791 7.422
H 9.237 13.488 6.631
H 8.845 14.770 7.309
O 10.084 10.156 14.803
H 9.498 10.821 14.366
H 10.215 10.613 15.669
O 5.806 16.161 10.582
H 5.389 16.831 9.993
H 6.747 16.470 10.509
O 6.028 13.931 7.206
H 5.971 14.900 7.257
H 6.999 13.804 7.336
O 17.072 12.787 2.438
H 16.281 12.594 1.885
H 17.062 11.978 3.013
END geometry
nosym
mpec+cosx
$END
$xuanyuan
$end
$SCF
rks
dft
b3lyp
solvent
water
grid
medium
$END
# input for tddft
$tddft
iroot # Calculate 1 root for each irrep. By default, 10 roots are calculated
1 # for each irrep
memjkop # maxium memeory for Coulomb and Exchange operator. 1024 MW (Mega Words)
1024
$end
Point charge model
The BDF supports the calculation of atomic charges in the MM region as point charge input. The point charge is given as input to the $BDFTASK.extcharge
file
with the same name as the calculation task as input, in the following format:
$COMPASS
Title
water molecule in backgroud of exteral charges
Basis
6-31g
Geometry
O 0.000000 0.000000 0.106830
H 0.000000 0.785178 -0.427319
H 0.000000 -0.785178 -0.427319
End Geometry
Extcharge #Indicates that an input point charge is required
point #Indicates that the input charge type is a point charge
$END
$XUANYUAN
$END
$SCF
RHF
$END
The point charge input file (file name h2o.extcharge) is as follows:
External charge, Point charge #The first line is the title and description line
6 #The number of point charges to enter
C1 -0.732879 0.000000 5.000000 0.114039
C2 0.366440 0.000000 5.780843 -0.456155
C3 0.366440 0.000000 4.219157 -0.456155
C4 -0.732879 0.000000 10.00000 0.114039
C5 0.366440 0.000000 10.78084 -0.456155
C6 0.366440 0.000000 9.219157 -0.456155
The default input format for point charges is: atomic label, charge, and coordinates (x y z); the coordinates are in angstroms by default. Coordinate input units can also be be Bohr, and the input format is as follows
External charge, Point charge # title line
6 Bohr # Unit: Bohr
C1 -0.732879 0.000000 5.000000 0.114039
# ... #
Wave function analysis and single-electron properties
The wave function analyses supported by the BDF are: Mulliken and Lowdin Boolean analysis, including net atomic charge and spin density.
The single-electron properties supported by the BDF are:
SCF:dipole moment, polarizability*, hyperpolarizability*, Musburger spectrum (effective contact density), NMR**
TDDFT:dipole moment of excited states*, vibronic intensity of fluorescence absorption spectra, vibronic intensity of phosphorescence absorption spectra
* Calculated in
resp
module. ** Calculated innmr
module
More wave function analysis and single electron properties can be done by generating data files in molden format in the scf
module with a third party program This is done. Example input.
$scf
rks
dft
b3lyp
molden
$end
The standard molden format only supports spdfg-type Gaussian basis functions, but has been extended to h-functions in BDF
Effective contact density
The calculation of the effective contact density (ED) requires consideration of
both relativistic effects (X2C Hamiltonian in BDF, identified by heff
= 21, 22,
or 23) and finite size nuclei ( nuclear
= 1). An example input at the sf-X2CAU/B3LYP level is as follows
$xuanyuan
heff
23
nuclear
1
$end
$scf
rks
dft
b3lyp
grid
sg1
reled
20
$end
where reled
calls the calculation of the relativistic property ED. 20
means that the ED is not calculated for light elements with atomic number less than 20, thus
saving calculation time. For density generalization calculations, the value of ED is sensitive to the integration grid point and ultra fine
or more precise sg1
is recommended.
The ED requires a special treatment of the basis group, see 穆斯堡尔谱 .
molden2aim
Download: https://github.com/zorkzou/Molden2AIM
The purpose of molden2aim is to convert molden files generated by BDF into wfn, wfx, or NBO-47 format data files for various various analyses. It supports spdfghtype Gaussian basis functions as well as ECP.
Multiwfn
Download: http://sobereva.com/multiwfn/
Multiwfn is a powerful wave function analysis program. Molden data files (supporting spdfgh basis functions and pseudopotentials) generated by BDF or wfn, wfx data files transformed by molden2aim, Multiwfn can be used for various wave function analyses, such as electron density topology analysis (also known as quantum theory of atoms in molecules ; QTAIM), electron localization functions (ELF), booster analysis, bond level analysis, atomic charge analysis, etc., and Images of molecular orbitals, electron density and various real space functions can also be plotted. See the Multiwfn user manual for details.
NBO analysis
BDF does not currently contain an interface to NBO (https://nbo7.chem.wisc.edu/), but it is possible to use molden2aim to convert BDF-generated molden files (supporting spdfgh basis functions and pseudopotentials) into NBO-47 format data files, and then use the NBO standalone program gennbo.exe to perform NBO analysis.
For wave functions of the RHF/RKS and UHF/UKS types (i.e., the MO occupation
number can only be 0, 1, and 2), NBO can calculate the “Second Order Perturbation
Theory Analysis”, which requires the presence of the Fock matrix in the 47 file.
To do this, set nbopro=1
in the molden2aim configuration file m2a.ini
.