7.4 Real-Time SCF Methods

7.4.2 Job Control

(June 30, 2021)

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.

7.4.2.1 Basic Job Control & Propagator Algorithms

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.

Example 7.16  Basic TDKS job.

$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

View output

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.

Example 7.17  TDKS calculation illustrating restart capability.

$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

View output

The remaining job control parameters belong in the $tdks input section.

dt
       The value for the time step Δt, in atomic units.
INPUT SECTION: $tdks
TYPE:
       DOUBLE
DEFAULT:
       0.02
OPTIONS:
       Δt>0
RECOMMENDATION:
       Δt=0.1 a.u. for general-purpose calculation of broadband spectra at excitation energies ω<30 eV. For higher energies, Δt=π/(10Δ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 Δt×𝐌𝐚𝐱𝐈𝐭𝐞𝐫.

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.

7.4.2.2 Choices for the Perturbing Field

The TDKS approach is based on applying a perturbing electric field 𝓔 to a (previously field-free) ground state |Ψ0. The perturbation generates a superposition of all symmetry-allowed excited states |Ψn, i.e., those having a non-vanishing matrix element Ψn|𝓔|Ψ0. 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 can be summarized as follows.

  • 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.

  • CW simulates a continuous-wave electric field of the form 𝓔(t)=𝐀0sin(ωt), whose amplitude 𝐀0 and frequency ω are set using the keywords Field_Amp and Field_Frequency, respectively, in the $tdks section.

  • The Impulse field has a Gaussian envelope,

    𝓔(t)=𝐀0exp((t-tpeak)22τ2)sin(ωt) (7.32)

    with 𝐀0 and frequency ω set using Field_Amp and Field_Frequency, respectively. The field parameters τ and tpeak are set using Field_Tau and Field_Peak, respectively, in the $tdks section.

Note that 𝐀0 (and therefore 𝓔) 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-310-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 ω 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 tpeak (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

7.4.2.3 Complex Absorbing Potential

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. 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 r0 around 𝐑k, the position of atom k. Outside of that radius, the potential rises quadratically with curvature η until it reaches the maximum value of 10 Eh. At any point 𝐫 in space, the value of the overall CAP is taken to be if(𝐫) where f(𝐫) is the minimum value of the atom-centered potentials:

f(𝐫)={0min(|𝐫-𝐑k|)r0min(η|𝐫-𝐑k|2)r0min(|𝐫-𝐑k|)10/η10min(η|𝐫-𝐑k|2)10. (7.33)

The value of r0 is user-specifiable and should probably be tested for specific applications. (For simulating strong-field ionization dynamics, a value r0=3.5×RvdW has been used, 574 Krause P., Schlegel H. B.
J. Chem. Phys.
(2014), 141, pp. 174104.
Link
where RvdW is a representative atomic van der Waals radius.) Note that placing r0 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 is

FWHM(ζ)=2(ln2ζ)1/2. (7.34)

This can be used to estimate the spatial extent of the basis, taking ζ to be the smallest (most diffuse) exponent. Note that when basis function information is requested using PRINT_GENERAL_BASIS = TRUE, the exponents ζ are printed in atomic units of a0-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.