MagneticGaugeCorrection
Section: Linear Response
Type: integer
Default: gipaw
For magnetic linear response: how to handle gauge-invariance in the description
of the coupling of electrons to the magnetic field.
Options:
ResponseMethod
Section: Linear Response
Type: integer
Default: sternheimer
Some response properties can be calculated either via
Sternheimer linear response or by using finite
differences. You can use this variable to select how you want
them to be calculated, it applies to em_resp and vib_modes
calculation modes. By default, the Sternheimer linear-response
technique is used.
Options:
CasidaCalcTriplet
Section: Linear Response::Casida
Type: logical
Default: false
For a non-spin-polarized ground state, singlet or triplet excitations can be calculated
using different matrix elements. Default is to calculate singlets. This variable has no
effect for a spin-polarized calculation.
CasidaKohnShamStates
Section: Linear Response::Casida
Type: string
Default: all states
The calculation of the excitation spectrum of a system in the Casida frequency-domain
formulation of linear-response time-dependent density functional theory (TDDFT)
implies the use of a basis set of occupied/unoccupied Kohn-Sham orbitals. This
basis set should, in principle, include all pairs formed by all occupied states,
and an infinite number of unoccupied states. In practice, one has to truncate this
basis set, selecting a number of occupied and unoccupied states that will form the
pairs. These states are specified with this variable. If there are, say, 15 occupied
states, and one sets this variable to the value "10-18", this means that occupied
states from 10 to 15, and unoccupied states from 16 to 18 will be considered.
This variable is a string in list form, i.e. expressions such as "1,2-5,8-15" are
valid. You should include a non-zero number of unoccupied states and a non-zero number
of occupied states.
CasidaMomentumTransfer
Section: Linear Response::Casida
Type: block
Momentum-transfer vector for the calculation of the dynamic structure
factor. When this variable is set, the transition rates are determined
using an exponential operator instead of the normal dipole one.
CasidaQuadratureOrder
Section: Linear Response::Casida
Type: integer
Default: 5
Only applies if CasidaMomentumTransfer is nonzero.
Directionally averaged dynamic structure factor is calculated by
averaging over the results from a set of q-vectors. The vectors
are generated using Gauss-Legendre quadrature scheme [see e.g.
K. Atkinson, J. Austral. Math. Soc. 23, 332 (1982)], and this
variable determines the order of the scheme.
CasidaTheoryLevel
Section: Linear Response::Casida
Type: flag
Default: eps_diff + petersilka + lrtddft_casida
Choose which electron-hole matrix-based theory levels to use in calculating excitation energies.
More than one may be used to take advantage of the significant commonality between the calculations.
Only eps_diff is implemented for complex wavefunctions. Note the restart data saved by each theory level
is compatible with all the others.
Options:
CasidaTransitionDensities
Section: Linear Response::Casida
Type: string
Default: write none
Specifies which transition densities are to be calculated and written down. The
transition density for the many-body state n will be written to a file called
rho0n prefixed by the theory level.
This variable is a string in list form, i.e. expressions such as "1,2-5,8-15" are
valid.
KdotPCalcSecondOrder
Section: Linear Response::KdotP
Type: logical
Default: false
If true, calculates second-order response of wavefunctions as well as first-order response.
Note that the second derivative of the Hamiltonian is NOT included in this calculation.
KdotPCalculateEffectiveMasses
Section: Linear Response::KdotP
Type: logical
Default: true
If true, uses kdotp perturbations of ground-state wavefunctions
to calculate effective masses.
KdotPEta
Section: Linear Response::KdotP
Type: float
Default: 0.0
Imaginary frequency added to Sternheimer equation which may improve convergence.
Not recommended.
KdotPOccupiedSolutionMethod
Section: Linear Response::KdotP
Type: integer
Default: sternheimer
Method of calculating the contribution of the projection of the
linear-response wavefunctions in the occupied subspace.
Options:
KdotPUseNonLocalPseudopotential
Section: Linear Response::KdotP
Type: logical
Default: true
For testing purposes, set to false to ignore the term -i[r,V] in
the k.p perturbation, which is due to non-local pseudopotentials.
BornChargeSumRuleCorrection
Section: Linear Response::Polarizabilities
Type: logical
Default: true
Enforce the acoustic sum rule by distributing the excess sum of Born charges equally among the atoms.
Sum rule: sum(iatom) Z*(iatom,idir,idir2) = Z_tot delta(idir1, idir2).
Violation of the sum rule may be caused by inadequate spacing, box size, or k-point sampling.
EMCalcBornCharges
Section: Linear Response::Polarizabilities
Type: logical
Default: false
Calculate linear-response Born effective charges from electric perturbation (experimental).
EMCalcRotatoryResponse
Section: Linear Response::Polarizabilities
Type: logical
Default: false
Calculate circular-dichroism spectrum from electric perturbation,
and write to file rotatory_strength.
EMEta
Section: Linear Response::Polarizabilities
Type: float
Default: 0.0
The imaginary part of the frequency, effectively a Lorentzian broadening
for peaks in the spectrum. It can help convergence of the SCF cycle for the
Sternheimer equation when on a resonance, and it can be used as a positive
infinitesimal to get the imaginary parts of response functions at poles.
In units of energy. Cannot be negative.
EMForceNoKdotP
Section: Linear Response::Polarizabilities
Type: logical
Default: false
If the system is periodic, by default wavefunctions from a previous kdotp run will
be read, to be used in the formulas for the polarizability and
hyperpolarizability in the quantum theory of polarization. For testing purposes,
you can set this variable to true to disregard the kdotp run, and use the formulas
for the finite system. This variable has no effect for a finite system.
EMFreqs
Section: Linear Response::Polarizabilities
Type: block
This block defines for which frequencies the polarizabilities
will be calculated. If it is not present, the static (omega = 0) response
is calculated.
Each row of the block indicates a sequence of frequency values, the
first column is an integer that indicates the number of steps, the
second number is the initial frequency, and the third number the final
frequency. If the first number is one, then only the initial value is
considered. The block can have any number of rows. Consider the next example:
%EMFreqs
31 | 0.0 | 1.0
1 | 0.32
%
EMFreqsSort
Section: Linear Response::Polarizabilities
Type: logical
Default: true
If true, the frequencies specified by the EMFreqs block are sorted, so that
they are calculated in increasing order. Can be set to false to use the order as stated,
in case this makes better use of available restart information.
EMHyperpol
Section: Linear Response::Polarizabilities
Type: block
This block describes the multiples of the frequency used for
the dynamic hyperpolarizability. The results are written to the
file beta in the directory for the first multiple.
There must be three factors, summing to zero. For example,
for second-harmonic generation, you could use
1 | 1 | -2.
EMOccupiedResponse
Section: Linear Response::Polarizabilities
Type: logical
Default: false
Solve for full response without projector into unoccupied subspace.
Not possible if there are partial occupations.
EMPerturbationType
Section: Linear Response::Polarizabilities
Type: integer
Default: electric
Which perturbation to consider for electromagnetic linear response.
Options:
EMWavefunctionsFromScratch
Section: Linear Response::Polarizabilities
Type: logical
Default: false
Do not use saved linear-response wavefunctions from a previous run as starting guess.
Instead initialize to zero as in FromScratch, but restart densities will still
be used. Restart wavefunctions from a very different frequency can hinder convergence.
vdWNPoints
Section: Linear Response::Polarizabilities
Type: integer
How many points to use in the Gauss-Legendre integration to obtain the
van der Waals coefficients. The default is 6.
LRConvAbsDens
Section: Linear Response::SCF in LR calculations
Type: float
Default: 1e-5
The tolerance in the variation of the density, to determine if
the SCF for linear response is converged.
LRMaximumIter
Section: Linear Response::SCF in LR calculations
Type: integer
Default: 200
The maximum number of SCF iterations to calculate response.
LRTolAdaptiveFactor
Section: Linear Response::SCF in LR calculations
Type: float
Default: 0.1
This factor controls how much the tolerance is decreased
during the self-consistency process. Smaller values mean that
tolerance is decreased faster.
LRTolIterWindow
Section: Linear Response::SCF in LR calculations
Type: float
Default: 10
Number of iterations necessary to reach the final tolerance
LRTolScheme
Section: Linear Response::SCF in LR calculations
Type: integer
Default: tol_adaptive
The scheme used to adjust the tolerance of the solver during
the SCF iteration. For kdotp and magnetic em_resp modes, or
whenever HamiltonianVariation = V_ext_only, the
scheme is set to fixed, and this variable is ignored.
Options:
LRTolFinalTol
Section: Linear Response::Solver
Type: float
Default: 1e-6
This is the tolerance to determine that the linear solver has converged.
LRTolInitTol
Section: Linear Response::Solver
Type: float
Default: 1e-2
This is the tolerance to determine that the linear solver has converged,
for the first SCF iteration. Ignored if LRTolScheme = fixed.
LinearSolver
Section: Linear Response::Solver
Type: integer
Default: qmr_symmetric
Method for solving linear equations, which occur for Sternheimer linear
response and OEP. The solvers vary in speed, reliability (ability to
converge), and domain of applicability. QMR solvers are most reliable.
Options:
LinearSolverMaxIter
Section: Linear Response::Solver
Type: integer
Default: 1000
Maximum number of iterations the linear solver does, even if
convergence is not achieved.
EMCalcDiagonalField
Section: Linear Response::Static Polarization
Type: logical
Default: true
Calculate yz-field for beta_xyz hyperpolarizability, which is sometimes harder to converge.
Only applies if ResponseMethod = finite_differences.
EMStartDensityIsZeroField
Section: Linear Response::Static Polarization
Type: logical
Default: true
Use the charge density from the zero-field calculation as the starting density for
SCF calculations with applied fields. For small fields, this will be fastest.
If there is trouble converging with larger fields, set to false,
to initialize the calculation for each field from scratch, as specified by the LCAO variables.
Only applies if ResponseMethod = finite_differences.
EMStaticElectricField
Section: Linear Response::Static Polarization
Type: float
Default: 0.01 a.u.
Magnitude of the static electric field used to calculate the static polarizability,
if ResponseMethod = finite_differences.
EMVerbose
Section: Linear Response::Static Polarization
Type: logical
Default: false
Write full SCF output.
Only applies if ResponseMethod = finite_differences.
EMWriteRestartDensities
Section: Linear Response::Static Polarization
Type: logical
Default: true
Write density after each calculation for restart, rather than just the resulting electronic dipole moment.
Only applies if ResponseMethod = finite_differences. Restarting from calculations at smaller
fields can be helpful if there are convergence problems.
HamiltonianVariation
Section: Linear Response::Sternheimer
Type: integer
Default: hartree+fxc
The terms to be considered in the variation of the
Hamiltonian. The external potential (V_ext) is always considered. The default is to include
also the exchange-correlation and Hartree terms, which fully
takes into account local fields.
Just hartree gives you the random-phase approximation (RPA).
If you want to choose the exchange-correlation kernel, use the variable
XCKernel. For kdotp and magnetic em_resp modes,
or if TheoryLevel = independent_particles,
the value V_ext_only is used and this variable is ignored.
Options:
Preorthogonalization
Section: Linear Response::Sternheimer
Type: logical
Whether initial linear-response wavefunctions should be orthogonalized
or not against the occupied states, at the start of each SCF cycle.
Default is true only if SmearingFunction = semiconducting,
or if the Occupations block specifies all full or empty states,
and we are not solving for linear response in the unoccupied subspace only.
CalcInfrared
Section: Linear Response::Vibrational Modes
Type: logical
Default: true
If set to true, infrared intensities (and Born charges) will be calculated
and written in vib_modes/infrared.
CalcNormalModeWfs
Section: Linear Response::Vibrational Modes
Type: logical
Default: false
If set to true, the response wavefunctions for each normal mode will be calculated
and written in directory restart/vib_modes/phn_nm_wfs_XXXXX.
This part is time-consuming and not parallel, but not needed for most purposes.
Displacement
Section: Linear Response::Vibrational Modes
Type: float
Default: 0.01 a.u.
When calculating phonon properties by finite differences (CalculationMode = vib_modes,
ResponseMethod = finite_differences),
Displacement controls how much the atoms are to be moved in order to calculate the
dynamical matrix.
SymmetrizeDynamicalMatrix
Section: Linear Response::Vibrational Modes
Type: logical
Default: true
If set to true, all entries of the dynamical matrix will be calculated and then
the matrix will be symmetrized to enforce mat(i,j) = mat(j,i). If set to false,
only the upper half of the matrix will be calculated.
UseRestartDontSolve
Section: Linear Response::Vibrational Modes
Type: logical
Default: false
If set to true, the restart info for each displacement will be used as is
in calculating normal modes, without trying to solve the Sternheimer equation.
This allows continuation of a previous calculation which did not complete
without doing anything at all with the displacements already solved, since
setting up the Sternheimer problem can be quite time-consuming for large systems.
Use with care: if the stored info is not the appropriate converged solution,
results will be incorrect.
If FromScratch = true, this variable is always false.