welcome: please sign in
location: Diff for "tddft"
Differences between revisions 2 and 123 (spanning 121 versions)
Revision 2 as of 2013-11-04 07:08:22
Size: 9958
Editor: 10
Comment:
Revision 123 as of 2022-09-24 07:33:54
Size: 14123
Editor: bsuo
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= TD-DFT/SOC =
SOC计算的输入文件中以$section name ... $end符号为划分分为6段:

 . $compass 为基组和坐标控制(如果要计算其他化合物,选用其他基组,可修改这一段); $xuanyuan 为积分控制,基本不需要改动,除非需要使用cam-b3lyp这段要加入两行:RS和0.33d0,控制计算新的积分; $scf为计算方法控制,可选用不同泛函; $tddft isf=0 ... 这一段(isf=0)表示计算singlet $tddft isf=1 ... 计算triplet $tddft isoc=2 ...根据前面两个计算的结果来计算soc state interaction,imatsoc为控制打印旋轨耦合矩阵元,格式如下: IMATSOC n fileA symA stateA fileB symB stateB fileA' symA' stateA' fileB' symB' stateB'
 . ..
 . ..
 n代表要打印几个态的旋轨耦合矩阵元<A|hso|B>,接着后面为要打印矩阵元两个态的描述,每个态由(file,sym,state)3个量表示,file表示前面第几个tddft的文件,sym表示该计算中第几个不可约表示,state表示该不可约表示里的第几个态。如输入文件中(0,0,0,2,1,1)表示基态和file2即triplet,sym=1的第一个态(即T1),之间的旋轨耦合矩阵元。

= Example =
$COMPASS Title

 . ir1

Basis

 . IRCOMPLEX

Geometry

 . Ir -0.0117154745 0.02136826 -0.1871622466 C -1.590674169 0.7736105591 0.850482009 C -4.0103593084 1.6631710744 2.0881698872 C -1.587030516 1.6064254297 1.9846531563 C -2.8754743453 0.4162567381 0.3762778017 C -4.0684588604 0.8406678872 0.9653728357 C -2.7652566303 2.0433988261 2.5945234724 H -0.633533598 1.9127046365 2.4024890794 H -5.031807216 0.5389051931 0.5644872718 H -2.7118027246 2.6839610147 3.4712663621 H -4.9285536031 2.0014173162 2.5588819363 C 1.4053272337 1.0109349589 0.8613594531 C 3.3836289249 2.6234305864 2.1354680771 C 2.0771460677 0.5800974992 2.0211645669 C 1.7631262545 2.2970140474 0.3585152663 C 2.7411852479 3.0844966855 0.9939992732 C 3.044957901 1.3650101996 2.6469305081 H 1.8305785647 -0.3881315485 2.4444240781 H 3.0042061929 4.0630294704 0.6010854425 H 3.5407187868 0.9959817385 3.5420383099 H 4.1379887938 3.2338708527 2.6233130653 C 0.1111675725 -1.7119838156 0.8795182027 C 0.5294631611 -4.2465845213 2.136544371 C 1.0417183334 -2.6652412426 0.4024936912 C -0.6004107662 -2.1019903883 2.028797446 C -0.4006210626 -3.3384592866 2.6477946425 C 1.2608503358 -3.9079720636 1.0002003463 H -1.3244348019 -1.413608967 2.4531282601 H -0.9731808696 -3.5946754614 3.5357463104 H 1.9890357565 -4.6057356294 0.596753782 H 0.6876544671 -5.2085686031 2.6147222734 N -1.7055918832 -0.7893527004 -1.3058124454 C -1.9722242221 -1.5767164653 -2.3518797181 C -3.3612772292 -1.7339951323 -2.5010242321 C -3.9194938069 -0.9920736156 -1.4729787184 N -2.8999954385 -0.434228237 -0.7703095731 N 1.5150714233 -1.0583114657 -1.2825131804 C 2.3138081406 -0.9142123699 -2.3433358371 C 3.1082799478 -2.0614459074 -2.5127910698 C 2.7399679653 -2.9098550697 -1.4816601802 N 1.779892419 -2.2802990117 -0.7566347846 H -1.1601491745 -1.9907288667 -2.9313421992 H 3.089224611 -3.8952971699 -1.2184247348 H 3.8501674705 -2.2464169166 -3.2743336863 H -3.8863865729 -2.3105313491 -3.2470045506 H -4.9492341453 -0.8290099882 -1.1983109053 H 2.2814545468 -0.0015798294 -2.9198044757 C 0.5167706643 4.2876200227 -2.6332627231 C -0.4153270812 3.3663568698 -3.1195481682 C -0.5686406908 2.1688169354 -2.4341135463 N 0.1409383672 1.8631654694 -1.3352631181 C 1.05542065 2.7471949823 -0.8428699526 C 1.2493629941 3.9769776219 -1.4963443658 H 0.6676353447 5.2385692731 -3.1359337322 H -1.011339893 3.5685529446 -4.0026032407 H -1.276466123 1.413706092 -2.7596936709 H 1.9731120675 4.6831024371 -1.1074561222

End geometry GROUP C(1) Skeleton $END

$XUANYUAN scalar heff 3 soint hsoc 2 Direct Schwarz $END

$SCF RKS DFT functional

 . B3lyp
##master-page:HelpTemplate
##master-date:Unknown-Date
#format wiki
#language en
#Please change following line to BDF module name

= tddft: time-dependent density functional theory =
<<TableOfContents(4)>>

{{{
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]]

5. [[TD-DFT with SOC]]

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
...
Line 31: Line 267:

$TDDFT IMETHOD

 . 1

ISF

 . 0

ITDA

 . 0

IDIAG

 . 1

istore

 . 1

iexit 10 AOKXC MemJKOP

 . 2048

crit_e 1.d-4 $END

$TDDFT IMETHOD

 . 1

ISF

 . 1

ITDA

 . 0

IDIAG

 . 1

istore

 . 2

iexit 10 AOKXC MemJKOP

 . 2048

crit_e 1.d-4 $END

$TDDFT isoc 2 nfiles 2 ifgs 1 imatsoc 1 0 0 0 2 1 1 $END

= Output =
 * ** List of SOC-SI results *** Totol No. of States: 41
  . No. ExEnergies f Dominant Excitations Esf dE Eex(eV) (cm^-1)
   . 1 -0.0066 eV 0.0000 99.8% Spin: |Gs,1> 0-th A 0.0000 -0.0066 0.0000 0.00 2 2.5694 eV 0.0000 44.1% Spin: |S+,2> 1-th A 2.6425 -0.0731 2.5760 20776.65 3 2.5727 eV 0.0000 32.8% Spin: |S+,3> 1-th A 2.6425 -0.0698 2.5793 20803.69 4 2.5908 eV 0.0000 31.8% Spin: |S+,1> 1-th A 2.6425 -0.0517 2.5974 20949.77 5 2.7010 eV 0.0000 31.1% Spin: |So,1> 1-th A 2.9592 -0.2583 2.7076 21837.87 6 2.8740 eV 0.0000 19.9% Spin: |S+,1> 2-th A 2.9081 -0.0340 2.8806 23233.61 7 2.8794 eV 0.0000 27.0% Spin: |S+,2> 2-th A 2.9081 -0.0287 2.8859 23276.69 8 2.9589 eV 0.0000 22.8% Spin: |S+,1> 3-th A 2.9849 -0.0261 2.9655 23917.99 9 3.0395 eV 0.0000 26.0% Spin: |S+,2> 2-th A 2.9081 0.1314 3.0461 24568.13
   . 10 3.0631 eV 0.0000 38.7% Spin: |S+,2> 3-th A 2.9849 0.0782 3.0697 24758.84 11 3.0881 eV 0.0000 52.9% Spin: |So,1> 2-th A 3.0330 0.0551 3.0947 24960.28 12 3.1239 eV 0.0000 30.7% Spin: |So,1> 1-th A 2.9592 0.1647 3.1305 25249.42 13 3.1328 eV 0.0000 21.9% Spin: |S+,2> 5-th A 3.1710 -0.0382 3.1394 25320.98 14 3.1334 eV 0.0000 20.5% Spin: |S+,3> 4-th A 3.1640 -0.0305 3.1400 25325.94 15 3.1455 eV 0.0000 33.3% Spin: |S+,2> 4-th A 3.1640 -0.0185 3.1521 25423.24 16 3.1489 eV 0.0000 24.5% Spin: |S+,2> 5-th A 3.1710 -0.0221 3.1555 25450.64 17 3.1546 eV 0.0000 17.0% Spin: |S+,3> 4-th A 3.1640 -0.0094 3.1612 25496.52 18 3.1580 eV 0.0000 34.2% Spin: |S+,3> 5-th A 3.1710 -0.0130 3.1646 25524.02 19 3.1866 eV 0.0000 17.4% Spin: |S+,2> 7-th A 3.2865 -0.1000 3.1932 25754.60 20 3.2140 eV 0.0000 28.2% Spin: |S+,3> 6-th A 3.2065 0.0074 3.2206 25975.68 21 3.2174 eV 0.0000 48.4% Spin: |S+,2> 6-th A 3.2065 0.0109 3.2240 26003.33 22 3.2435 eV 0.0000 38.0% Spin: |So,1> 3-th A 3.2231 0.0204 3.2501 26213.63 23 3.2627 eV 0.0000 20.7% Spin: |S+,3> 6-th A 3.2065 0.0562 3.2693 26368.83 24 3.2725 eV 0.0000 30.0% Spin: |S+,2> 7-th A 3.2865 -0.0140 3.2791 26447.54 25 3.3035 eV 0.0000 45.4% Spin: |So,1> 3-th A 3.2231 0.0804 3.3101 26697.85 26 3.3651 eV 0.0000 23.9% Spin: |So,1> 4-th A 3.5132 -0.1481 3.3717 27194.63 27 3.3945 eV 0.0000 31.5% Spin: |S+,1> 8-th A 3.4260 -0.0315 3.4011 27431.99 28 3.4070 eV 0.0000 31.1% Spin: |S+,1> 9-th A 3.4454 -0.0384 3.4136 27532.74 29 3.4308 eV 0.0000 31.7% Spin: |S+,3> 8-th A 3.4260 0.0047 3.4374 27724.20 30 3.4465 eV 0.0000 19.7% Spin: |S+,2> 8-th A 3.4260 0.0204 3.4531 27850.76 31 3.4518 eV 0.0000 55.5% Spin: |S+,2> 8-th A 3.4260 0.0257 3.4583 27893.46 32 3.4658 eV 0.0000 43.7% Spin: |S+,2> 9-th A 3.4454 0.0204 3.4724 28006.99 33 3.4764 eV 0.0000 24.6% Spin: |S+,1> 10-th A 3.4870 -0.0106 3.4830 28092.46 34 3.5252 eV 0.0000 68.4% Spin: |S+,2> 10-th A 3.4870 0.0382 3.5318 28485.50 35 3.6092 eV 0.0000 49.3% Spin: |So,1> 4-th A 3.5132 0.0960 3.6158 29163.42 36 3.6402 eV 0.0000 60.5% Spin: |So,1> 6-th A 3.5920 0.0482 3.6468 29413.12 37 3.6508 eV 0.0000 48.8% Spin: |So,1> 5-th A 3.5648 0.0859 3.6574 29498.52 38 3.6609 eV 0.0000 47.4% Spin: |So,1> 7-th A 3.6206 0.0403 3.6675 29580.42 39 3.6684 eV 0.0000 43.5% Spin: |So,1> 8-th A 3.6288 0.0396 3.6750 29640.60 40 3.7293 eV 0.0000 83.7% Spin: |So,1> 9-th A 3.6898 0.0395 3.7359 30131.95 41 3.7898 eV 0.0000 90.1% Spin: |So,1> 10-th A 3.7487 0.0411 3.7964 30620.26
  Print selected matrix elements of [Hsoc]
  < 0 0 0 |Hso| 2 1 1 > mi/mj ReHso(au) cm^-1 ImHso(au) cm^-1
   . 1 1 0.0003219734 70.6650036601 0.0009582030 210.3012602778 1 2 0.0000000000 0.0000000000 -0.0006544171 -143.6279497862 1 3 0.0003219734 70.6650036601 -0.0009582030 -210.3012602778
 [tddft_soc_final]
}}}
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|

== Some uncommon keywords just for testing methods ==
=== idrpa ===
=== ispa ===
=== iro ===
=== icv ===
=== ioo ===
=== iksf ===

tddft: time-dependent density functional theory

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

5. TD-DFT with SOC

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|

Some uncommon keywords just for testing methods

idrpa

ispa

iro

icv

ioo

iksf

tddft (last edited 2022-10-28 13:20:58 by bsuo)