Time-Dependent
Name MaxwellFunctions
Section Time-Dependent
Type block
This block specifies the shape of a "spatial-dependent function", such as the
envelope needed when using the MaxwellFunctions block. Each line in the block
specifies one function. The first element of each line will be a string
that defines the name of the function. The second element specifies which type
of function we are using; in the following we provide an example for each of the
possible types:
Options:
- mxf_const_wave:
%MaxwellFunctions
"function-name" | mxf_const_wave | kx | ky | kz | x0 | y0 | z0
%The function is constant plane wave $ f(x,y,z) = a0 * \cos( kx*(x-x0) + ky*(y-y0) + kz*(z-z0) ) $
- mxf_const_phase:
%MaxwellFunctions
"function-name" | mxf_const_phase | kx | ky | kz | x0 | y0 | z0
%The function is a constant phase of $ f(x,y,z) = a0 * (kx * x0 + ky * y0 + kz * z0) $
- mxf_gaussian_wave:
%MaxwellFunctions
"function-name" | mxf_gaussian_wave | kx | ky | kz | x0 | y0 | z0 | width
%The function is a Gaussian, $ f(x,y,z) = a0 * \exp( -( kx*(x-x0) + ky*(y-y0) + kz*(z-z0) )^2 / (2 width^2) ) $
- mxf_cosinoidal_wave:
%MaxwellFunctions
"function-name" | mxf_cosinoidal_wave | kx | ky | kz | x0 | y0 | z0 | width
%$ f(x,y,z) = \cos( \frac{\pi}{2} \frac{kx*(x-x0)+ky*(y-y0)+kz*(z-z0)-2 width}{width} + \pi ) $
If $ | kxx + kyy + kz*z - x0 | > \xi_0 $, then $ f(x,y,z) = 0 $.
- mxf_logistic_wave:
%MaxwellFunctions
"function-name" | mxf_logistic_wave | kx | ky | kz | x0 | y0 | z0 | growth | width
%The function is a logistic function, $ f(x,y,z) = a0 * 1/(1+\exp(growth*(kx*(x-x0)+ky*(y-y0)+kz*(kz*(z-z0))+width/2))) * 1/(1+\exp(-growth*(kx*(x-x0)+ky*(y-y0)+kz*(kz*(z-z0))-width/2))) $
- mxf_trapezoidal_wave:
%MaxwellFunctions
"function-name" | mxf_trapezoidal_wave | kx | ky | kz | x0 | y0 | z0 | growth | width
%The function is a logistic function,
$ f(x,y,z) = a0 * ( ( 1-growth*(k*(r-r0)-width/2)*\Theta(k*(r-r0)-width/2))*\Theta(-(k*(r-r0)+width/2+1/growth)) $
$ \qquad \qquad \qquad + (-1+growth*(k*(r-r0)+width/2)*\Theta(k*(r-r0)+width/2))*\Theta(-(k*(r-r0)-width/2+1/growth)) ) $
- mxf_from_expr:
%MaxwellFunctions
"function-name" | mxf_from_expr | "expression"
%The temporal shape of the field is given as an expression (e.g., cos(2.0x-3y+4*z). The letter x, y, z means spatial coordinates, obviously. The expression is used to construct the function f that defines the field.
Name TDExternalFields
Section Time-Dependent
Type block
The block TDExternalFields describes the type and shape of time-dependent
external perturbations that are applied to the system, in the form
$f(x,y,z) \cos(\omega t + \phi (t)) g(t)$, where $f(x,y,z)$ is defined by
by a field type and polarization or a scalar potential, as below; $\omega$
is defined by omega; $g(t)$ is defined by
envelope_function_name; and $\phi(t)$ is the (time-dependent) phase from phase.
These perturbations are only applied for time-dependent runs. If you want the value of the perturbation at time zero to be applied for time-independent runs, use TimeZero = yes.
Each line of the block describes an external field; this way you can actually have more than one laser (e.g. a "pump" and a "probe").
There are two ways to specify $f(x,y,z)$ but both use the same omega | envelope_function_name [| phase] for the time-dependence. The float omega will be the carrier frequency of the pulse (in energy units). The envelope of the field is a time-dependent function whose definition must be given in a TDFunctions block. envelope_function_name is a string (and therefore it must be surrounded by quotation marks) that must match one of the function names given in the first column of the TDFunctions block. phase is optional and is taken to be zero if not provided, and is also a string specifying a time-dependent function.
(A) type = electric field, magnetic field, vector_potential
For these cases, the syntax is:
%TDExternalFields
type | nx | ny | nz | omega | envelope_function_name | phase
%
The vector_potential option (constant in space) permits us to describe an electric perturbation in the velocity gauge. The three (possibly complex) numbers (nx, ny, nz) mark the polarization direction of the field.
(B) type = scalar_potential
%TDExternalFields
scalar_potential | "spatial_expression" | omega | envelope_function_name | phase
%
The scalar potential is any expression of the spatial coordinates given by the string "spatial_expression", allowing a field beyond the dipole approximation.
For DFTB runs, only fields of type type = electric field are allowed for the moment, and the type keyword is omitted.
A NOTE ON UNITS:
It is very common to describe the strength of a laser field by its intensity, rather than using the electric-field amplitude. In atomic units (or, more precisely, in any Gaussian system of units), the relationship between instantaneous electric field and intensity is: $ I(t) = \frac{c}{8\pi} E^2(t) $.
It is common to read intensities in W/cm$^2$. The dimensions of intensities are [W]/(L$^2$T), where [W] are the dimensions of energy. The relevant conversion factors are:
Hartree / ($a_0^2$ atomic_time) = $6.4364086 \times 10^{15} \mathrm{W/cm}^2$
eV / ( Å$^2 (\hbar$/eV) ) = $2.4341348 \times 10^{12} \mathrm{W/cm}^2$
If, in atomic units, we set the electric-field amplitude to $E_0$, then the intensity is:
$ I_0 = 3.51 \times 10^{16} \mathrm{W/cm}^2 (E_0^2) $
If, working with Units = ev_angstrom, we set $E_0$, then the intensity is:
$ I_0 = 1.327 \times 10^{13} (E_0^2) \mathrm{W/cm}^2 $
Options:
- electric_field:
The external field is an electric field, the usual case when we want to describe a
laser in the length gauge.
- magnetic_field:
The external field is a (homogeneous) time-dependent magnetic field.
- vector_potential:
The external field is a time-dependent homogeneous vector potential, which may describe
a laser field in the velocity gauge.
- scalar_potential:
The external field is an arbitrary scalar potential, which may describe an
inhomogeneous electrical field.
Name TDFreezeDFTUOccupations
Section Time-Dependent
Type logical
Default no
The occupation matrices than enters in the LDA+U potential
are not evolved during the time evolution.
Name TDFreezeHXC
Section Time-Dependent
Type logical
Default no
The electrons are evolved as independent particles feeling the Hartree and
exchange-correlation potentials from the ground-state electronic configuration.
Name TDFreezeOrbitals
Section Time-Dependent
Type integer
Default 0
(Experimental) You have the possibility of "freezing" a number of orbitals during a time-propagation.
The Hartree and exchange-correlation potential due to these orbitals (which
will be the lowest-energy ones) will be added during the propagation, but the orbitals
will not be propagated.
Options:
- sae:
Single-active-electron approximation. This option is only valid for time-dependent
calculations (CalculationMode = td). Also, the nuclei should not move.
The idea is that all orbitals except the last one are frozen. The orbitals are to
be read from a previous ground-state calculation. The active orbital is then treated
as independent (whether it contains one electron or two) -- although it will
feel the Hartree and exchange-correlation potentials from the ground-state electronic
configuration.
It is almost equivalent to setting TDFreezeOrbitals = N-1, where N is the number of orbitals, but not completely.
Name TDFreezeU
Section Time-Dependent
Type logical
Default no
The effective U of LDA+U is not evolved during the time evolution.
Name TDFunctions
Section Time-Dependent
Type block
This block specifies the shape of a "time-dependent function", such as the
envelope needed when using the TDExternalFields block. Each line in the block
specifies one function. The first element of each line will be a string
that defines the name of the function. The second element specifies which type
of function we are using; in the following we provide an example for each of the
possible types:
Options:
- tdf_cw:
%TDFunctions
"function-name" | tdf_cw | amplitude
%The function is just a constant of value amplitude: $ f(t) $ = amplitude
- tdf_gaussian:
%TDFunctions
"function-name" | tdf_gaussian | amplitude | tau0 | t0
%The function is a Gaussian, $ f(t) = F_0 \exp( - (t-t_0)^2/(2\tau_0^2) ) $, where $F_0$ = amplitude.
- tdf_cosinoidal:
%TDFunctions
"function-name" | tdf_cosinoidal | amplitude | tau0 | t0
%$ f(t) = F_0 \cos( \frac{\pi}{2} \frac{t-2\tau_0-t_0}{\tau0} ) $
If $ | t - t_0 | > \tau_0 $, then $ f(t) = 0 $.
- tdf_trapezoidal:
%TDFunctions
"function-name" | tdf_trapezoidal | amplitude | tau0 | t0 | tau1
%This function is a trapezoidal centered around t0. The shape is determined by tau0 and tau1. The function ramps linearly for tau1 time units, stays constant for tau0 time units, and then decays to zero linearly again for tau1 time units.
- tdf_from_file:
%TDFunctions
"function-name" | tdf_from_file | "filename"
%The temporal shape of the function is contained in a file called filename. This file should contain three columns: first column is time, second and third column are the real part and the imaginary part of the temporal function f(t).
- tdf_from_expr:
%TDFunctions
"function-name" | tdf_from_expr | "expression"
%The temporal shape of the field is given as an expression (e.g., cos(2.0*t). The letter t means time, obviously. The expression is used to construct the function f that defines the field.
Name TDGlobalForce
Section Time-Dependent
Type string
If this variable is set, a global time-dependent force will be
applied to the ions in the x direction during a time-dependent
run. This variable defines the base name of the force, that
should be defined in the TDFunctions block. This force
does not affect the electrons directly.
Name TDScissor
Section Time-Dependent
Type float
Default 0.0
(experimental) If set, a scissor operator will be applied in the
Hamiltonian, shifting the excitation energies by the amount
specified. By default, it is not applied.