tddft: time-dependent density functional theory
Contents
-
tddft: time-dependent density functional theory
- Quick guides
- General keywords
- Convergence threshold
- States specification
- Save eigenvectors
- output eigenvector control
- TD-DFT/SOC and Property evaluation
- Stability analysis
- memory control
- Others
- Modified Davidson algorithm
- AO-TDDFT and AO-TDA
- Frozen orbital
- Spin-flip Kernel
- Propety Analyze
- Some uncommon keywords just for testing methods
Time dependent DFT/HF calculation. Support Full TDDFT, TDA and RPA.
Quick guides
The following examples give the minimal inputs for starting TD-DFT calculations.
1. Closed-shell Systems : R-TD-DFT
2. Open-shell Systems : U-TD-DFT and spin-adapted TD-DFT for spin-conserving excitations
3. TD-DFT with spin-flip calculations
4. Open-shell Systems : Spin-flip TD-DFT for spin-flip excitations
6. TD-DFT with SOC: open-shell systems
7. TD-DFT with SOC: Kramers pairs
8. Excitation analyze based on molecular fragments
9. Nto analyze
10. Alternative of TD-DFT: particle-particle TDA (pp-TDA) based properties
11. Plot Gaussian-broadened spectra
General keywords
imethod
imethod 1, R-TDDFT, start from RKS imethod 2, U-TDDFT, start from UKS or ROKS imethod 3, X-TDDFT, start from ROKS (deprecated; please use imethod=2, itest=1 and icorrect=1 for X-TDDFT, vide infra)
isf
Spin flip TDDFT. isf 0, do not flip isf 1, spin flip up (when imethod=2), spin-conserving triplet calculation (when imethod=1) isf -1, spin flip down
itda
itda 0, full TDDFT, do not use TDA itda 1, TDA
ialda
ialda=0: full non-collinear kernel (default; recommended for isf=0 single point energies) ialda=1: non-collinear ALDA kernel ialda=2: non-collinear ALDA0 kernel (recommended for isf=1 or isf=-1 single point energies) ialda=3: full non-collinear kernel but computed from spin-averaged density ialda=4: full collinear kernel (mandatory for spin-flip TD-DFT gradient and NAC)
itest,icorrect
itest=1;icorrect=1 must be set for X-TD-DFT using the U-TD-DFT subroutines.
itrans
itrans=1: transform the final eigenvector in U-TD-DFT from the spin-orbital based representation to spin-adapted basis, e.g., CV(0) and CV(1). This only makes sense when ROKS reference is used.
iact,elw,eup
iact = 1: define active space based on energy [elw,eup]
elw: lower bound in eV (not in au!).
eup: upper bound in eV.
idiag
idiag=1: Davidson diagonalization idiag=2: full diagonalization idiag=3: iVI diagonalization (only Abelian point groups supported)
aokxc
Calculate the XC kernel using the AO direct algorithm. This is the default for AO-TDDFT.
iguess
iguess=10*x+y
x=0: diagonal guess (default for AO-TDDFT under non-Abelian point groups and MO-TDDFT) x=1: read guess from file (when iVI is used, this option only supports C(1) point group) x=2: tight-binding guess (default for AO-TDDFT under Abelian point groups, usually much better than the diagonal guess, especially for non-diffuse basis sets). This also invokes a tight-binding preconditioner. y=0: do not save eigenvectors during the TD-DFT iterations (default) y=1: save eigenvectors at each iteration (when iVI is used, this option only supports C(1) point group)
grimmestd
Requests Grimme's sTDA or sTDDFT method (not to be confused with S-TDDFT, which is a completely unrelated method!), which are approximate TDDFT methods that are much faster (100x or more) than conventional TDDFT, at the cost of introducing an error on the order of 0.2 eV. Note that for transition metal complexes, the error may be considerably larger and may reach 1 eV. When itda=0, the sTDDFT method is used, otherwise the sTDA method is invoked. NOTE: grimmestd cannot be used together with MPEC+COSX. Moreover, TDDFT gradients, dipole moments and NACMEs are not yet supported at the sTDA/sTDDFT level.
Convergence threshold
Note that convergence is signaled if either all roots converged with respect to energy change, OR all roots converged with respect to the norm of residual vectors. Thus, when one wants to tighten the thresholds, it is advised to tighten them both.
crit_e
Threshold for energy change. Default: 1e-7 a.u.
crit_vec
Threshold for the norm of residual vectors. Default: 1e-5.
States specification
iroot,iexit
The number of calculated excited states of each irreducible representation. If there are several irreps for a point group as C2v, iroot states will be calculated for each irreps. Use "iroot" instead of "iexit". "iexit" will be deleted in the future. For example,
# assume H2O molecule with C2v symmetry $tddft iroot 4 # totally 16 roots, 4 roots for A1, A2, B1, B2 irreps $end
Of course, this can be sometimes wasteful since the roots of some irreps are much higher than the roots of other irreps. It may be desirable to obtain the lowest roots among all irreps, so that if the roots of an irrep are very high-lying, then few or no roots are calculated for this irrep. This kind of calculation can be requested by setting iroot as a negative number:
# assume H2O molecule with C2v symmetry $tddft iroot -4 # totally 4 roots $end
In this case the program tries the best to guess the number of roots to be calculated for each irrep. The resulting states are probably the lowest 4 roots among the roots of all the irreps, but this cannot be guaranteed.
nroot, nexit
Same as above, but different numbers can be specified for different irreps. Use nroot instead of nexit. For example:
# assume H2O molecule with C2v symmetry $tddft nroot 2 3 1 4 # irrep A1 - 2 roots; A2 - 3 roots; B1 - 1 root; B2 - 4 roots $end
iwindow
The excitation energy window in which excited states are to be calculated. If iwindow is specified, the iexit and Nexit keywords (if any) are overridden, so that the actual number of roots calculated are determined by iwindow alone. Two numbers must be provided in the next line, followed by an optional unit (au/eV/nm/cm-1). For example,
iwindow 300 700 nm
specifies that all excited states within 300 nm and 700 nm are to be calculated. If no unit is given, the default unit is eV. When the Davidson diagonalization method is used, the calculated excited states are neither guaranteed to include all excited states within the window, nor guaranteed to be all contained in the window. To ensure that all and only those excited states within the window are calculated, the iVI method must be used:
idiag 3 iwindow 300 700 nm
Note that due to technical reasons, the iVI program requires an upper bound estimate of the number of roots before the calculation. A default value is chosen based on the initial guess, which is usually but not always sufficient; in case it is insufficient, the program will print a warning "too small iroot/nroot, require xxx, but only yyy provided". In this case one should specify Nexit as a number that is at least xxx, and run the calculation again. Under still rarer conditions, the program may abort with the error message "too small ld xxx, require yyy". In this case one should restart the calculation by specifying a maxld parameter that is at least yyy. Thus, the input file may now look like:
idiag 3 nexit 50 maxld 200 iwindow 300 700 nm
Save eigenvectors
istore
Integer: specify the file no. to store TDDFT information
lefteig
In TD-DFT, also store the left eigenvector X-Y, in addition to the right eigenvector X+Y. This is turned on by default.
output eigenvector control
nprt
cthrd
TD-DFT/SOC and Property evaluation
nfiles
No. of TD-DFT calculations to be loaded.
isoc
=1, Only work for closed-shell case (NOT recommended!)
=2, General SOC state interaction
=3, just print SOC matrix elements between two spin-free states (without diagonalization Hsoc).
ifgs
=0, default for not including ground state (GS) in SOC treatment; =1, include GS.
imatsoc
Define SOC matrices need to be calculated. Input format looks like
... #SCF calculation for the ground state S0. It is a singlet. $scf spin 1 ... $end #First TDDFT, singlets S1-S10. $tddft imethod 1 isf 0 iexit 10 .... $end #Second TDDFT, triplet T1-T10. $tddft imethod 1 isf 1 iexit 10 $end $tddft .... imatsoc 8 0 0 0 2 1 1 0 0 0 2 1 2 1 1 1 2 1 1 1 1 1 2 1 2 1 1 2 2 1 1 1 1 2 2 1 2 2 1 1 2 1 1 2 1 1 2 1 2 $end
In this input, 7 means seven of SOC matrices will be calculate (If the number <0, then ALL possible HSOC mat will be printed !). Here, it is very tricky to specify states:
- The string "0 0 0" always stands for the ground state.
For other states, three numbers "n m n" represent "ith-tddft", "symmetry" and "ithstate" respectively. Therefore, the first matrix element "0 0 0 2 1 1" means SOC matrix of <S0|HSOC|T1>. The third matrix element "1 1 1 2 1 1" means SOC matrix <S1|HSOC|T1>. Here, the first "1" in bra state "1 1 1" means the state from first TDDFT calculation. The second and third "1" in the bra state "1 1 1" means this state has spatial symmetry "1" and is the first excited state.
imatrsf
Transition dipole between Spin-free states. Setting it to -1 prints all of them.
imatrso
Define that the transition dipole moments between which pairs of SOC-included states need to be printed. Input format looks like (notice we omit other input in TDDFT module)
$TDDFT ... imatrso 5 1 1 1 2 1 3 1 4 1 5 ... $END
Then, "imatrso" is specified to define transition dipole moments need to be printed. The number "5" require transition dipoles between 5-pairs of states to be print. The following 5 lines define which pairs will be printed. Here, we require transition dipoles between the first state and five states are printed.
When the number of spinor states is large, the above syntax may be inconvenient. Therefore we provide two shortcuts. The following input specifies that the transition dipole moments between all pairs of spinor states will be printed:
$TDDFT ... imatrso -1 $END
The following input specifies that all ground state-excited state spinor transition dipole moments will be printed:
$TDDFT ... imatrso -2 $END
In any case, if a transition dipole moment is requested, the corresponding oscillator strength and radiative transition rate (from Fermi Golden Rule) are printed as well.
imatnso
imatnsf
idiag
By default, idiag=0 uses full diagonalization (preferred for small model space).
If idiag=1, then TD-DFT/SOC can use Davidson's algorithm also, along with a specification for the no. of states by iexit.
iact
=1, allows to use active space specification for the projected active-orbital SOC Hamiltonian (P*HSOC*P), eup can be specified in (eV) to give a cut off to define active physically interested excited states.
ntoanalyze
Natural transition orbital (NTO) analysis. The keyword should be given in a separate TDDFT block, immediately following the TDDFT block that calculated the excited states:
$tddft nexit 5 $end $tddft ntoanalyze 2 # number of states 1 3 # list of states in NTO analysis. $end
The NTOs are written to MOLDEN files, xxx.nto1.molden and xxx.nto3.molden, which correspond to the S1 and S3 excited states, respectively. If one wants to analyze all states computed by the previous TDDFT block, one can write
$tddft nexit 5 $end $tddft ntoanalyze 0 $end
In this case, the NTOs of all five excited states are obtained.
Stability analysis
The wavefunction stability analysis code is currently under debugging. Instead of a genuine stability analysis, one can instead perform a spin-conserving U-TDDFT calculation. The wavefunction is stable if and only if the lowest excitation energy of the calculation is real and non-negative. However, this is slower than a true stability analysis, and if the wavefunction is unstable, one does not have the option to optimize the wavefunction to a stable one.
isab
isave
memory control
memjkop
specific memory usage for ao-JK calculation (PER THREAD for imemshrink = 0)
imemshrink
imemshrink = 0: default
imemshrink = 1: reduce openmp memory usage for ao-JK and ao-Kxc calculation. Will be slower due to thread lock.
Others
isgn
ivo
Modified Davidson algorithm
Eneshift
Specify an energy window. States with excitation energies close to input value will be calculate. The energy unit is eV.
$TDDFT Eneshift 9.0 ... $End
AO-TDDFT and AO-TDA
AO-TDDFT supports R-TDDFT, U-TDDFT, R-TDDFT-SF+1. The possible combinations are imethod=1, itda=0, isf=0 imethod=1, itda=0, isf=1 imethod=2, itda=0, isf=0 AO-TDA supports R-TDA,U-TDA, R-TDA-SF+1, R-TDA-SF-1, U-TDA-SF3. The possible combinations are imethod=1, itda=1, isf=0 imethod=1, itda=1, isf=1 imethod=2, itda=1, isf=0 imethod=2, itda=1, isf=-1 imethod=2, itda=1, isf=3
Frozen orbital
Frzorb
Only valid for C1 symmetry.
Frzorb 4 # number of orbital to be frozen 1 4 6 7 # orbital list
Frzcore
Frzcore 1 2 2 1 # number of core orbitals will be frozen in each irrep
Frzvirt
Frzvirt 2 2 2 2 # number of virtual orbitals will be frozen in each irrep
Spin-flip Kernel
kernelctrl
=0; (va-vb)*(rhoa-rhob)/( (rhoa-rhob)^2+thrdab)
=2; old version using 2nd order derivatives Only affect GGA spin-flip TDDFT with ALDA0
thrdab
threshold for |rhoa-rhob|
Propety Analyze
NTOanalyze
TRDDENS
Output transition density of the excited states into cube files.
DENSCUBE
Output densities of the ground state and excited states into cube files.
CUBETXYZ
CUBENXYZ
CUBEORIGN
CUBEREEXPAND
CUBESUFFIX
Some uncommon keywords just for testing methods
idrpa
ispa
iro
icv
ioo