Only two TDKS job-control variables belong in the $rem section: TDKS = TRUE to request such a calculation, and (optionally) TDKS_RESTART = TRUE to resume a previous time propagation. All other job control relies on a $tdks input section that is described below. The propagator algorithms are described in detail in Ref. 1256 and the use of TDKS to obtain broadband spectra is described in Ref. 1256 and in Ref. Zhu:2021, and users of Q-Chem’s TDKS methodology are asked to cite these two papers.
Assuming that TDKS_RESTART = FALSE, a standard ground-state SCF calculation is performed first in order to obtain the density at $t=0$. For this calculation, the value of SCF_CONVERGENCE needs to be set reasonably tightly because in the subsequent TDKS calculation the density will be perturbed by an external field (to generate the time-dependent superposition state) so any convergence error in the initial density needs to be smaller than the perturbation-induced fluctuations that one is trying to integrate in the TDKS time-propagation steps. The use of incremental Fock builds (INCFOCK = TRUE) is recommended to reduce the cost of the numerous Fock builds, which are closely spaced in time. The input file for a basic TDKS propagation is illustrated in the following example. The basic job is relatively simple but sophisticated jobs require additional input files, and generate additional output.
Note: PURECART needs to be set to 2222 for TDKS jobs.
$molecule 0 1 O 0.000000 0.000000 0.000000 H 0.758602 0.000000 0.504284 H 0.758602 0.000000 -0.504284 $end $rem METHOD pbe0 BASIS 6-31G* TDKS true PURECART 2222 SCF_CONVERGENCE 7 $end $tdks DT 0.05 MAXITER 30000 PROPAGATOR MMUT FIELD_VECTOR 1 1 1 FIELD_TYPE delta FIELD_AMP 0.0001 $end
Numerous time steps are required for most practical applications of the TDKS approach and therefore a restart capability is provided. A long dynamics simulation can therefore be executed in segments (e.g., to sidestep wall-time limits on shared computing resources), by setting TDKS_RESTART = TRUE in the $rem section. Results from the previous job are stored in the scratch directory and the next job is started by reading the data from the same directory, picking up where the previous time propagation left off. As such, the -save flag is required for the subsequent Q-Chem job, and the scratch directory should be given the same name for both jobs. By default, the intermediate results are automatically stored every 1,000 steps. If the job is stopped accidentally before reaching the requested number of time steps, it can be easily be restarted from the last saved step.
TDKS_RESTART
Restart the calculation by continuing the previous job
TYPE:
LOGICAL
DEFAULT:
FALSE
OPTIONS:
TRUE
The TDKS calculation continues from the previous calculation.
FALSE
The TDKS calculation starts from the beginning.
RECOMMENDATION:
None.
$molecule 0 1 H 0.000000 0.000000 0.000000 H 0.000000 0.000000 0.750000 $end $rem METHOD pbe BASIS 6-31G SYMMETRY false UNRESTRICTED true INCFOCK 0 PURECART 2222 SCF_CONVERGENCE 9 TDKS_RESTART 0 TDKS 1 $end $tdks dt 0.05 maxiter 25 propagator MMUT field_vector 1 1 1 field_type delta field_amp 0.0001 $end @@@ $molecule read $end $rem METHOD pbe BASIS 6-31G SYMMETRY false UNRESTRICTED true INCFOCK 0 PURECART 2222 SCF_CONVERGENCE 9 TDKS_RESTART 1 TDKS 1 SCF_GUESS read $end $tdks dt 0.05 maxiter 25 propagator MMUT field_vector 1 1 1 field_type delta field_amp 0.0001 $end
The remaining job control parameters belong in the $tdks input section.
dt
The value for the time step $\mathrm{\Delta}t$, in atomic units.
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0.02
OPTIONS:
$\mathrm{\Delta}t>0$
RECOMMENDATION:
$\mathrm{\Delta}t=0.1$ a.u. for general-purpose calculation of broadband spectra at excitation energies $$ eV.
For higher energies, $\mathrm{\Delta}t=\pi /(10\mathrm{\Delta}E)$ (in atomic units) is a reliable choice.
MaxIter
The max number of steps
INPUT SECTION: $tdks
TYPE:
INTEGER
DEFAULT:
15000
OPTIONS:
$>0$
RECOMMENDATION:
The total propagation length is $\mathrm{\Delta}t\times \text{\mathbf{M}\mathbf{a}\mathbf{x}\mathbf{I}\mathbf{t}\mathbf{e}\mathbf{r}}$.
Propagator
Time propagation algorithm
INPUT SECTION: $tdks
TYPE:
STRING
DEFAULT:
MMUT
OPTIONS:
EULER
Euler method
MMUT
Modified mid-point unitary transformation method
LFLPPC
Linear Fock, linear density predictor/corrector method
EPPC
Exponential density predictor/corrector method
RECOMMENDATION:
Use MMUT, LFLPPC, or EPPC. (The Euler method is not recommended.) The two predictor/corrector
methods provide stable dynamics using larger time steps as compared to MMUT, ad furthermore provide
on-the-fly consistency checks on the stability of the dynamics, but these algorithms are
more expensive than MMUT on a per-step basis.
PC_Fock_Thresh
Fock matrix threshold for consistency checking in predictor/corrector algorithms.
INPUT SECTION: $tdks
TYPE:
INTEGER
DEFAULT:
7 (for ${10}^{-7}$)
OPTIONS:
> 0
RECOMMENDATION:
None.
PC_Den_Thresh
Density matrix threshold for consistency checking in predictor/corrector algorithms.
INPUT SECTION: $tdks
TYPE:
INTEGER
DEFAULT:
7 (for ${10}^{-7}$)
OPTIONS:
> 0
RECOMMENDATION:
None.
PC_Max_Iter
Maximum number of self-consistent iterations (per time step) for predictor-corrector methods
INPUT SECTION: $tdks
TYPE:
INTEGER
DEFAULT:
20
OPTIONS:
> 0
RECOMMENDATION:
None.
The TDKS approach is based on applying a perturbing electric field $\U0001d4d4$ to a (previously field-free) ground state $|{\mathrm{\Psi}}_{0}\u27e9$. The perturbation generates a superposition of all symmetry-allowed excited states $|{\mathrm{\Psi}}_{n}\u27e9$, i.e., those having a non-vanishing matrix element $\u27e8{\mathrm{\Psi}}_{n}|\U0001d4d4|{\mathrm{\Psi}}_{0}\u27e9$. Several choices for the perturbing field are available, and this choice is specified by means of the Field_Type keyword in the $tdks input section. (Additional job control parameters are required for some field types, as described below.)
Field_Type
The external applied field
INPUT SECTION: $tdks
TYPE:
STRING
DEFAULT:
DELTA
OPTIONS:
DELTA
$\delta $-function kick
CW
continuous-wave field
IMPULSE
impulse field (Gaussian envelope)
STATIC
static field
NONE
no field
RECOMMENDATION:
None.
These choices can be summarized as follows.
Delta simulates a Dirac $\delta $-function kick, with the field $\U0001d4d4$ turned on (at a constant amplitude) only during the first two time steps. The amplitude is controlled by the Field_Amp keyword that is documented below.
CW simulates a continuous-wave electric field of the form $\U0001d4d4(t)={\mathbf{A}}_{0}\mathrm{sin}(\omega t)$, whose amplitude ${\mathbf{A}}_{0}$ and frequency $\omega $ are set using the keywords Field_Amp and Field_Frequency, respectively, in the $tdks section.
The Impulse field has a Gaussian envelope,
$$\U0001d4d4(t)={\mathbf{A}}_{0}\mathrm{exp}\left(\frac{{(t-{t}_{\text{peak}})}^{2}}{2{\tau}^{2}}\right)\mathrm{sin}(\omega t)$$ | (7.32) |
with ${\mathbf{A}}_{0}$ and frequency $\omega $ set using Field_Amp and Field_Frequency, respectively. The field parameters $\tau $ and ${t}_{\text{peak}}$ are set using Field_Tau and Field_Peak, respectively, in the $tdks section.
Note that ${\mathbf{A}}_{0}$ (and therefore $\U0001d4d4$) is a vector. The field direction is set using Field_Vector.
Field_Vector
The direction of the external applied field vector
INPUT SECTION: $tdks
TYPE:
VECTOR
DEFAULT:
1.0 1.0 1.0
OPTIONS:
NONE
RECOMMENDATION:
NONE
Field_Amp
The amplitude of the external field (in a.u.)
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0.0001
OPTIONS:
NONE
RECOMMENDATION:
Values of ${10}^{-3}$–${10}^{-4}$ a.u. correspond to weak fields and are appropriate for simulating absorption spectra
(i.e., within the linear-response regime but without the root-by-root calculation that is required for LR-TDDFT.
Larger field amplitudes correspond to strong-field dynamics, as for example in second harmonic generation.
Field_Frequency
The frequency $\omega $ of the external field, in eV units.
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0.001
OPTIONS:
NONE
RECOMMENDATION:
The use of energy units is for convenience when using the TDKS to generate broadband spectra.
Field_Peak
The peak position ${t}_{\text{peak}}$ (in a.u. of time) for the Gaussian impulse field.
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0.0
OPTIONS:
NONE
RECOMMENDATION:
NONE
Field_Tau
The value of $\tau $ (in a.u. of time) for the Gaussian impulse field.
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0.7
OPTIONS:
NONE
RECOMMENDATION:
NONE
Simulations of broadband spectra at high energies (e.g., for x-ray absorption spectroscopy at the K-edge, corresponding to 1s $\to $ virtual excitations), the requisite electron dynamics often corresponds to fluctuations that take the density out to the edge of the region of space that is spanned by the Gaussian basis set. The edge of the basis set imposes an artificial potential wall, and a time-dependent wave packet can reflect off of this wall and then interfere with its own outgoing wave, in an artificial manner that simply reflects the finite-basis approximation. In practice, this can introduce artificial oscillations into broadband spectra obtained from TDKS calculations. These unwanted artifacts can be removed by the introduction of a complex absorbing potential (CAP) that annihilates the outgoing wave that encounters it.
For TDKS calculations, the CAP that is available is constructed from a sum of spherical, overlapping atom-centered potentials. Within each of these, the potential is zero within a cutoff radius ${r}_{0}$ around ${\mathbf{R}}_{k}$, the position of atom $k$. Outside of that radius, the potential rises quadratically with curvature $\eta $ until it reaches the maximum value of 10 ${E}_{h}$. At any point $\mathbf{r}$ in space, the value of the overall CAP is taken to be $if(\mathbf{r})$ where $f(\mathbf{r})$ is the minimum value of the atom-centered potentials:
$$f(\mathbf{r})=\{\begin{array}{cc}0\hfill & \mathrm{min}(|\mathbf{r}-{\mathbf{R}}_{k}|)\le {r}_{0}\hfill \\ \mathrm{min}(\eta {|\mathbf{r}-{\mathbf{R}}_{k}|}^{2})\hfill & {r}_{0}\le \mathrm{min}(|\mathbf{r}-{\mathbf{R}}_{k}|)\le \sqrt{10/\eta}\hfill \\ 10\hfill & \mathrm{min}(\eta {|\mathbf{r}-{\mathbf{R}}_{k}|}^{2})\ge 10\hfill \end{array}.$$ | (7.33) |
The value of ${r}_{0}$ is user-specifiable and should probably be tested for specific applications.
(For simulating strong-field ionization dynamics, a value
${r}_{0}=3.5\times {R}_{\text{vdW}}$ has been used,
^{
574
}
J. Chem. Phys.
(2014),
141,
pp. 174104.
Link
where ${R}_{\text{vdW}}$ is a representative atomic van der Waals radius.)
Note that placing ${r}_{0}$ beyond the extent of the Gaussian basis functions themselves will have no effect.
For a Gaussian basis function with exponent $\zeta $, the full width at half maximum of that function is
$$\text{FWHM}(\zeta )=2{\left(\frac{\mathrm{ln}2}{\zeta}\right)}^{1/2}.$$ | (7.34) |
This can be used to estimate the spatial extent of the basis, taking $\zeta $ to be the smallest (most diffuse) exponent. Note that when basis function information is requested using PRINT_GENERAL_BASIS = TRUE, the exponents $\zeta $ are printed in atomic units of ${a}_{0}^{-2}$.
The following variables in the $tdks input section control the use of a CAP in TDKS calculations.
Do_CAP
Activate a complex absorbing potential for TDKS calculations
INPUT SECTION: $tdks
TYPE:
LOGICAL
DEFAULT:
False
OPTIONS:
TRUE
Use a CAP
FALSE
Do not use a CAP
RECOMMENDATION:
None.
CAP_R0
Cutoff radius for the CAP (in a.u.)
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0
OPTIONS:
> 0
RECOMMENDATION:
A value greater than twice the largest atomic van der Waals radius is recommended and should be tested as needed.
CAP_Eta
Specifies the curvature of the CAP
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
1.0
OPTIONS:
> 0
RECOMMENDATION:
Values of 4.0–5.0 are typical but testing is recommended.