SCFCalculateDipole
Section: SCF
Type: logical
This variable controls whether the dipole is calculated at the
end of a self-consistent iteration. For finite systems the
default is yes. For periodic systems the default is no, unless
an electric field is being applied in a periodic direction.
The single-point Berry`s phase approximation is used for
periodic directions. Ref:
E Yaschenko, L Fu, L Resca, and R Resta, Phys. Rev. B 58, 1222-1229 (1998).
SCFCalculateForces
Section: SCF
Type: logical
This variable controls whether the forces on the ions are
calculated at the end of a self-consistent iteration. The
default is yes, unless the system only has user-defined
species.
SCFinLCAO
Section: SCF
Type: logical
Default: no
Performs the SCF cycle with the calculation restricted to the LCAO subspace.
This may be useful for systems with convergence problems (first do a
calculation within the LCAO subspace, then restart from that point for
an unrestricted calculation).
ConvAbsDens
Section: SCF::Convergence
Type: float
Default: 0.0
Absolute convergence of the density:
\(\varepsilon = \int {\rm d}^3r \left| \rho^{out}(\bf r) -\rho^{inp}(\bf r) \right|\).
A zero value (the default) means do not use this criterion.
ConvAbsEv
Section: SCF::Convergence
Type: float
Default: 0.0
Absolute convergence of the sum of the eigenvalues:
\( \varepsilon = \left| \sum_{j=1}^{N_{occ}} \varepsilon_j^{out} -
\sum_{j=1}^{N_{occ}} \varepsilon_j^{inp} \right| \)
A zero value (the default) means do not use this criterion.
ConvEigenError
Section: SCF::Convergence
Type: logical
Default: false
If true, the calculation will not be considered converged unless all states have
individual errors less than EigensolverTolerance.
ConvForce
Section: SCF::Convergence
Type: float
Absolute convergence of the forces: maximum variation of any
component of the ionic forces in consecutive iterations. A
zero value means do not use this criterion. The default is
zero, except for geometry optimization, which sets a default of
1e-8.
ConvRelDens
Section: SCF::Convergence
Type: float
Default: 1e-5
Relative convergence of the density:
\(\varepsilon = \frac{1}{N} \mathrm{ConvAbsDens}\).
N is the total number of electrons in the problem. A
zero value means do not use this criterion.
ConvRelEv
Section: SCF::Convergence
Type: float
Default: 0.0
Relative convergence of the sum of the eigenvalues:
\(\varepsilon = \frac{ \left| \sum_{j=1}^{N_{occ}} ( \varepsilon_j^{out} - \varepsilon_j^{inp} ) \right|}
{\left| \sum_{j=1}^{N_{occ}} \varepsilon_j^{out} \right|} \)
MaximumIter
Section: SCF::Convergence
Type: integer
Default: 200
Maximum number of SCF iterations. The code will stop even if convergence
has not been achieved. -1 means unlimited.
0 means just do LCAO (or read from restart), compute the eigenvalues and energy,
and stop, without updating the wavefunctions or density.
MaximumIterBerry
Section: SCF::Convergence
Type: integer
Default: 10
Maximum number of iterations for the Berry potential, within each SCF iteration.
Only applies if a StaticElectricField is applied in a periodic direction.
The code will move on to the next SCF iteration even if convergence
has not been achieved. -1 means unlimited.
Eigensolver
Section: SCF::Eigensolver
Type: integer
Which eigensolver to use to obtain the lowest eigenvalues and
eigenfunctions of the Kohn-Sham Hamiltonian. The default is
conjugate gradients (cg), except that when parallelization in states is
enabled, the default is lobpcg.
Options:
EigensolverImaginaryTime
Section: SCF::Eigensolver
Type: float
Default: 10.0
The imaginary-time step that is used in the imaginary-time evolution
method (Eigensolver = evolution) to obtain the lowest eigenvalues/eigenvectors.
It must satisfy EigensolverImaginaryTime > 0.
EigensolverMaxIter
Section: SCF::Eigensolver
Type: integer
Determines the maximum number of iterations that the
eigensolver will perform if the desired tolerance is not
achieved. The default is 25 iterations for all eigensolvers
except for rmdiis, which performs only 3 iterations (only
increase it if you know what you are doing).
EigensolverMinimizationIter
Section: SCF::Eigensolver
Type: integer
Default: 5
During the first iterations, the RMMDIIS eigensolver requires
some steepest-descent minimizations to improve
convergence. This variable determines the number of those
minimizations.
EigensolverSaveMemory
Section: SCF::Eigensolver
Type: logical
Default: no
The RMMDIIS eigensolver may require a considerable amount of
extra memory. When this variable is set to yes, the
eigensolver will use less memory at the expense of some
performance. This is especially useful for GPUs.
EigensolverTolerance
Section: SCF::Eigensolver
Type: float
This is the tolerance for the eigenvectors. The default is 1e-6,
except for the ARPACK solver for which it is 0.
Preconditioner
Section: SCF::Eigensolver
Type: integer
Which preconditioner to use in order to solve the Kohn-Sham
equations or the linear-response equations. May apply prefix of
linear-response (e.g. EM, KdotP,
VM) to differentiate from choice for ground state. The
default is pre_filter, except for periodic systems or
curvilinear coordinates, where no preconditioner is applied by
default.
Options:
StatesOrthogonalization
Section: SCF::Eigensolver
Type: integer
The full orthogonalization method used by some
eigensolvers. The default is cholesky_serial, except with state
parallelization, the default is cholesky_parallel.
Options:
SubspaceDiagonalization
Section: SCF::Eigensolver
Type: integer
Default: standard
Selects the method to perform subspace diagonalization. The
default is standard, unless states parallelization is used,
when the default is scalapack.
Options:
ArpackInitialTolerance
Section: SCF::Eigensolver::ARPACK
Type: float
Default: 0.0
Use this tolerance in Arpack when the relative density error is
approximately 1. As the relative density error becomes lower,
use a tolerance in between this value and EigenSolverTolerance.
approaching the latter as the SCF cycle converges. This
parameter is ignored if given a non-positive value (default).
In that case EigenSolverTolerance is used always.
EigensolverArnoldiVectors
Section: SCF::Eigensolver::ARPACK
Type: integer
This indicates how many Arnoldi vectors are generated
It must satisfy EigenSolverArnoldiVectors - Number Of Eigenvectors >= 2.
See the ARPACK documentation for more details. It will default to
twice the number of eigenvectors (which is the number of states).
EigensolverArpackInitialResid
Section: SCF::Eigensolver::ARPACK
Type: integer
Default: constant
Initial residual vector.
Options:
EigensolverArpackSort
Section: SCF::Eigensolver::ARPACK
Type: string
Default: SR
Eigenvalue sorting strategy (case sensitive).
From ARPACK documentation:
EigensolverParpack
Section: SCF::Eigensolver::ARPACK
Type: logical
Use Parallel ARPACK. Default is true if parallel in domains. Code must have been built with
PARPACK support. Only relevant if Eigensolver = arpack. Even more experimental than ARPACK.
FeastContour
Section: SCF::Eigensolver::FEAST
Type: block
A list of points tracing out a complex contour within which FEAST will
search for eigenvalues. Each row is one point. Real and imaginary
parts are read from first and second column respectively. For now,
points will be joined by straight line segments.
Note: Contour must have negative orientation!
FeastMaxIter
Section: SCF::Eigensolver::FEAST
Type: integer
Default: 20
Maximum number of extra iterations that the FEAST eigensolver
will perform per SCF step. Must be >= 0. 0 means that only
one iteration will be done.
AtomsMagnetDirection
Section: SCF::LCAO
Type: block
This option is only used when GuessMagnetDensity is
set to user_defined. It provides a direction for the
magnetization vector of each atom when building the guess
density. In order to do that, the user should specify the
coordinates of a vector that has the desired direction and
norm. Note that it is necessary to maintain the ordering in
which the species were defined in the coordinates
specifications.
For spin-polarized calculations, the vectors should have only
one component; for non-collinear-spin calculations, they
should have three components. If the norm of the vector is greater
than the number of valence electrons in the atom, it will be rescaled
to this number, which is the maximum possible magnetization.
GuessMagnetDensity
Section: SCF::LCAO
Type: integer
Default: ferromagnetic
The guess density for the SCF cycle is just the sum of all the atomic densities.
When performing spin-polarized or non-collinear-spin calculations this option sets
the guess magnetization density.
For anti-ferromagnetic configurations, the user_defined option should be used.
Note that if the paramagnetic option is used, the final ground state will also be
paramagnetic, but the same is not true for the other options.
Options:
LCAOAlternative
Section: SCF::LCAO
Type: logical
Default: false
If this variable is set, the LCAO procedure will use an
alternative (and experimental) implementation. It is faster for
large systems and parallel in states. It is not working for spinors, however.
LCAOComplexYlms
Section: SCF::LCAO
Type: logical
Default: false
If set to true, and using complex states, complex spherical harmonics will be used, i.e.
with \(e^{\pm i m \phi}\).
If false, real spherical harmonics with \(\sin(m \phi)\) or \(\cos(m \phi)\) are used.
This variable will make it more likely to get states that are eigenvectors of the \(L_z\)
operator, with a definite angular momentum.
LCAODiagTol
Section: SCF::LCAO
Type: float
Default: 1e-10
Only applies if LCAOAlternative = true.
The tolerance for the diagonalization of the LCAO Hamiltonian.
LCAODimension
Section: SCF::LCAO
Type: integer
(Only applies if LCAOAlternative = no.)
Before starting the SCF cycle, an initial LCAO calculation can be performed
in order to obtain reasonable initial guesses for spin-orbitals and densities.
For this purpose, the code calculates a number of atomic orbitals.
The number available for a species described by a pseudopotential is all the
orbitals up the maximum angular momentum in the pseudopotential, minus any orbitals that
are found to be unbound. For non-pseudopotential species, the number is equal to
twice the valence charge.
The default dimension for the LCAO basis
set will be the sum of all these numbers, or twice the number of required orbitals
for the full calculation, whichever is less.
This dimension however can be changed by making use of this
variable. Note that LCAODimension cannot be smaller than the
number of orbitals needed in the full calculation -- if
LCAODimension is smaller, it will be silently increased to meet
this requirement. In the same way, if LCAODimension is larger
than the available number of atomic orbitals, it will be
reduced. If you want to use the largest possible number, set
LCAODimension to a negative number.
LCAOExtraOrbitals
Section: SCF::LCAO
Type: logical
Default: false
Only applies if LCAOAlternative = true, and all species are pseudopotentials.
(experimental) If this variable is set to yes, the LCAO
procedure will add an extra set of numerical orbitals (by
using the derivative of the radial part of the original
orbitals). Note that this corresponds roughly to adding orbitals
with higher principal quantum numbers, but the same angular momentum.
This option may cause problems for unoccupied states since you may miss
some lower-lying states which correspond to higher angular momenta instead
of higher principal quantum number.
LCAOKeepOrbitals
Section: SCF::LCAO
Type: logical
Default: yes
Only applies if LCAOAlternative = true.
If set to yes (the default) Octopus keeps atomic orbitals in
memory during the LCAO procedure. If set to no, the orbitals
are generated each time that they are needed, increasing
computational time but saving memory.
When set to yes, Octopus prints the amount of memory per node
that is required to store the orbitals.
LCAOMaximumOrbitalRadius
Section: SCF::LCAO
Type: float
Default: 20.0 a.u.
The LCAO procedure will ignore orbitals that have an
extent greater that this value.
LCAOScaleFactor
Section: SCF::LCAO
Type: float
Default: 1.0
The coordinates of the atomic orbitals used by the LCAO
procedure will be rescaled by the value of this variable. 1.0 means no rescaling.
LCAOStart
Section: SCF::LCAO
Type: integer
Before starting a SCF calculation, Octopus can perform
a linear combination of atomic orbitals (LCAO) calculation.
These can provide Octopus with a good set
of initial wavefunctions and with a new guess for the density.
(Up to the current version, only a minimal basis set is used.)
The default is lcao_full if at least one species representing an atom is present.
The default is lcao_none if all species are spec_user_defined,
spec_charge_density, species_from_file, or spec_jelli_slab.
The initial guess densities for LCAO are from the pseudopotential for PSF, HGH, UPF, PSPIO species;
from the natural charge density for spec_charge_density, spec_point,
spec_jelli, and spec_jelli_slab;
or uniform for CPI and FHI pseudopotentials, spec_full_delta, spec_full_gaussian,
spec_user_defined, or species_from_file.
Pseudopotential species use the pseudo-wavefunctions as orbitals, full-potential atomic species
(spec_full_delta and spec_full_gaussian) use hydrogenic wavefunctions, and
others use harmonic-oscillator wavefunctions.
Options:
MixField
Section: SCF::Mixing
Type: integer
Selects what should be mixed during the SCF cycle. Note that
currently the exact-exchange part of hybrid functionals is not
mixed at all, which would require wavefunction-mixing, not yet
implemented. This may lead to instabilities in the SCF cycle,
so starting from a converged LDA/GGA calculation is recommended
for hybrid functionals. The default depends on the TheoryLevel
and the exchange-correlation potential used.
Options:
MixNumberSteps
Section: SCF::Mixing
Type: integer
Default: 3
In the Broyden and GR-Pulay schemes, the new input density or potential is constructed
from the values of the densities/potentials of a given number of previous iterations.
This number is set by this variable. Must be greater than 1.
Mixing
Section: SCF::Mixing
Type: float
Default: 0.3
Both the linear and the Broyden scheme depend on a "mixing parameter", set by this variable.
Must be 0 < Mixing <= 1.
TypeOfMixing
Section: SCF::Mixing
Type: integer
Default: broyden
The scheme used to produce, at each iteration in the self-consistent cycle
that attempts to solve the Kohn-Sham equations, the input density from the value
of the input and output densities of previous iterations.
Options:
RDMConvEner
Section: SCF::RDMFT
Type: float
Default: 1e-6 Ha
Convergence criterion for stopping the overall minimization of the energy with
respect to occupation numbers and the orbitals. The minimization of the
energy stops when the total energy difference between two subsequent
minimizations of the energy with respect to the occupation numbers and the
orbitals is smaller than this criterion. It is also used to exit the orbital minimization.
RDMMaxIter
Section: SCF::RDMFT
Type: integer
Default: 400
Even if the convergence criterion is not satisfied, the minimization will stop
after this number of iterations.
RDMTolerance
Section: SCF::RDMFT
Type: float
Default: 1e-1 Ha
Convergence criterion for stopping the occupation numbers minimization. Minimization is
stopped when all derivatives of the energy wrt. each occupation number
are smaller than this criterion. The bisection for finding the correct mu that is needed
for the occupation number minimization also stops according to this criterion.
This number gets stricter with more iterations.