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. 1292 and the use of TDKS to obtain broadband spectra is described in Ref. 1292 and in Ref. Zhu:2021.
Assuming that TDKS_RESTART = FALSE, a standard ground-state SCF calculation is performed first in order to obtain the density at . 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.
$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
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 , in atomic units.
INPUT SECTION: $tdks
TYPE:
DOUBLE
DEFAULT:
0.02
OPTIONS:
RECOMMENDATION:
a.u. for general-purpose calculation of broadband spectra at excitation energies eV.
For higher energies, (in atomic units) is a reliable choice.
MaxIter
The max number of steps
INPUT SECTION: $tdks
TYPE:
INTEGER
DEFAULT:
15000
OPTIONS:
RECOMMENDATION:
The total propagation length is .
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, and 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 )
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 )
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 to a (previously field-free) ground state . The perturbation generates a superposition of all symmetry-allowed excited states , i.e., those having a non-vanishing matrix element . 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
-function kick
CW
continuous-wave field
IMPULSE
impulse field (Gaussian envelope)
STATIC
static field
NONE
no field
RECOMMENDATION:
None.
These choices for Field_Type can be summarized as follows. Note that is a vector quantity whose magnitude is controlled by Field_Amp and whose direction is controlled by Field_Vector.
Delta simulates a Dirac -function kick, with the field 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. In order to normalize across different choices of , Field_Amp actually specifies the integrated field intensity , meaning that the electric field intensity itself is (Field_Amp)/.Zhu:2021 That way, Field_Amp controls the total amount of energy that is put into this system by the -function impulse, which is the only way that results from simulations with two different time steps can be compared side-by-side.
CW simulates a continuous-wave electric field of the form , whose amplitude and frequency are set using the keywords Field_Amp and Field_Frequency, respectively, in the $tdks section.
The Impulse field has a Gaussian envelope,
(7.32) |
with and frequency set using Field_Amp and Field_Frequency, respectively. The field parameters and are set using Field_Tau and Field_Peak, respectively, in the $tdks section. The 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 – 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 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 (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 (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 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.Zhu:2021 In practice, this can introduce artificial oscillations into broadband spectra obtained from TDKS calculations. The same is true in TDKS simulations of strong-field electron dynamics, such as high harmonic generation.Zhu:2022 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.Zhu:2021, Zhu:2022 Within each of these, the potential is zero within a cutoff radius around , the position of atom . Outside of that radius, the potential rises quadratically with curvature . This is implemented using a set of atom-centered CAP functions
(7.33) |
At any point in space, the value of the CAP is taken to be , where is the minimum of the various atom-centered potentials and a cutoff , the latter of which is used to avoid numerical overflow problems. All together,
(7.34) |
The value of is user-specifiable and should probably be tested for specific applications. (For simulating strong-field ionization dynamics, a value has been used,591 where is a representative atomic van der Waals radius.) Note that placing beyond the extent of the Gaussian basis functions themselves will have no effect. For a Gaussian basis function with exponent , the full width at half maximum of that function is460, Zhu:2021
(7.35) |
and half that value is therefore a measure of the radial extent of the basis function in question. This can be used to estimate the spatial extent of the basis, taking to be the smallest (most diffuse) exponent.460 Note that when basis function information is requested using PRINT_GENERAL_BASIS = TRUE, the exponents are printed in atomic units of .
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.