##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 = <> {{{ 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]] == 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 isf -1, spin flip down }}} === itda === {{{ itda 0, TDDFT, do not use TDA itda 1, TDA }}} === ialda === {{{ ialda=0: full non-collinear kernel (default; recommended for spin-conserving TD-DFT) ialda=1: non-collinear ALDA kernel ialda=2: non-collinear ALDA0 kernel (recommended for spin-flip TD-DFT) 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 setted 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: iterative, =2 full diag, =3 iVI diag (TDA and AO-TDDFT supported) === ndiag === === aokxc === === 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 (iVI only, useful for restarting a failed calculation) 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 (iVI only) }}} == 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 ignored. 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 iviop 1 iwindow 300 700 nm }}} where "iviop 1" specifies that internal roots, rather than external roots, are requested. == Save eigenvectors == === istore === Integer: specify the file no. to store TDDFT information === lefteig === By default, in TD-DFT the left eigenvector X-Y is also stored. == 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 0 ... $end #First TDDFT, singlets S0-S9. $tddft imethod 1 isf 0 iext 10 .... $end #Second TDDFT, triplet T1-T10 $tddft imethod 1 isf 1 iexit 10 $end $tddft .... imatsoc 7 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 treat as 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 . The third matrix element "1 1 1 2 1 1" means SOC matrix . 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. The input is similar to '''imatsoc''' (but currently selected printing is not implemented). Simply use -1 to print all of them. === imatrso === Define transition dipole moment need to be printed between two SOC-included states. 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. === 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 analyze. {{{ ntoanalyze 2 # number of states 1 3 # list of states in NTO analyze. }}} == Stability analysis == === 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 ===