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 named bdf.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, and 3-21G specifies that the calculation uses the 3-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 and End 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 COMPASSXUANYUAN 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 and End geometry;

  • Basis defines the basis group as 3-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 of scf, 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

  1. add the iprtmo keyword to the input of the SCF module with a value of 2 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 GabEditJMolMoldenMultiwfn), 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.

\[\varphi_{i}(r) = C_{1,i}\chi_{1}(r) + C_{2,i}\chi_{2}(r) + C_{3,i}\chi_{3}(r) + \dots + C_{N,i}\chi_{N}(r)\]

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.

  1. Gauss type orbital(GTO)basis functions: Most quantum chemistry programs use GTO basis functions because they are mathematically easy to calculate two-electron integrals.

  2. 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.

  3. Plane wave: A basis function specifically suitable for periodic calculations and much less cost effective than the GTO basis function for isolated systems.

  4. 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 *df, etc.),there are two ways to represent them. One is written in the form of a Cartesian function (also called a right-angle function).

\[N x^{lx} y^{ly} z^{lz} {\rm exp}(-\alpha r^2), \qquad L=lx+ly+lz\]

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).

\[N Y^L_m r^L {\rm exp}(-\alpha r^2)\]

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

  1. most modern Gaussian basis sets are optimized under spherical basis functions, except for the older basis sets such as Pople type.

  2. 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.

  3. 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.

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-blockend basis keyword.

If you specify a different name for a different element, you need to put it in the COMPASS module’s basis-blockend 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-JRI-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 MCSCFMP2 etc. It is not recommended for users in SCFTDDFT, 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

  1. 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。

  2. For range-separated generalized calculations, the rs values must be set manually in the Xuanyuan 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。

  3. For the two-hybrid generalized function calculation, an MP2 module must be added after the SCF module(see example test116 in the example description )and the final result is read from the output of the MP2 module.

  4. 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 the facex and facco keywords(see the list of keywords in the SCF module )。

  5. 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 AlphaBeta 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

\[\frac{1}{r_{12}} = \frac{1-[\alpha + \beta \cdot erf(\mu r_{12})]}{r_{12}}+\frac{\alpha + \beta \cdot erf(\mu r_{12})}{r_{12}}\]

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 coarseCoarsemediumfineUltra finesg1 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.

Table 3 The order of irreducible representations under different point groups

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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 is 9 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):

  1. 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.

  1. 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.

  1. 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.

  2. 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.

  3. 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

  4. 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.

  5. 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.

  1. 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.

  1. 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: compassxuanyuanscflocalmo . 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:

  1. 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.

  2. 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.

  3. 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.

  1. 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.

  2. 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

  1. support for various spin-flip (spin-flip) methods.

  2. 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.

  3. 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.

  4. 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 of 9.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 value S(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 keyword group to force the calculation to use the C(1) point group;

  • The scf module sets the UKS calculation with charge of 1 and spinmulti (spin multi, 2S+1) = 2;

  • The iroot of the tddft 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 states iroot, the more accurate the result; when considering the ground state(i.e., ifgs=1), too many iroot will reduce the accuracy, which is reflected in the underestimation of the ground state energy, and there is no fixed rule for the selection of iroot.

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 the stateA root of the integrable representation of symA in fileA; 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 10th SOC-SI state is 5.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 of 25.1%.

The second part summarizes the results of the SOC-SI state calculations.

  • ExEnergies are the excitation energies when SOC is taken into account, and Esf 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 that 6 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, and imatrso 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.

Table 4 InBr分子的垂直激发能:SOECP/TDDFT-SOC与二分量EOM-CCSD。能量单位:cm \(^{-1}\)

Λ-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:

Table 5 InBr分子的TDDFT-SOC垂直激发能:In:SOECP,Br:SOECP与Br:ECP。能量单位:cm \(^{-1}\)

Λ-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

  1. 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.

  2. 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.

  1. 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.

  1. 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.

  1. 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.

  2. 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

  1. Do not mix X2C Hamiltonian and ECP basis sets

  2. 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:

  1. 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)

  2. the effective nuclear charge [68, 69]

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:

Table 6 The number of electrons and atoms in the core of the scalar ECP base group supported by the effective nuclear charge

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:

\[E_{QM/MM}(\mathbb{S}) = E_{MM}(\mathbb{O})+E_{QM}(\mathbb{I+L})+E_{QM/MM}(\mathbb{I,O})\]

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_{QM/MM}(\mathbb{I,O})=E_{nuc-MM}+V_{elec-MM}\]

\(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.:

\[F_{i} = -\frac{\partial E(R_1,R_2,\dots,R_N)}{\partial R_i} = 0, i=1,2,\dots,N\]

Commonly used algorithms for structural optimization are as follows:

  1. 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.

  2. 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

  3. 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.

  4. 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:

  1. run COMPASS, which reads the molecular structure and other information;

  2. run BDFOPT to initialize the intermediate quantities needed for structure optimization;

  3. 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)

  4. 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;

  5. 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:

  1. a frequency correction factor of 1.0;

  2. a temperature of 298.15 K;

  3. a pressure of 1 atm;

  4. 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:

_images/SAtddft.jpg

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 in nmr 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 .