CalculateSelfInducedMagneticField
Section: Hamiltonian
Type: logical
Default: no
The existence of an electronic current implies the creation of a self-induced magnetic
field, which may in turn back-react on the system. Of course, a fully consistent treatment
of this kind of effect should be done in QED theory, but we will attempt a first
approximation to the problem by considering the lowest-order relativistic terms
plugged into the normal Hamiltonian equations (spin-other-orbit coupling terms, etc.).
For the moment being, none of this is done, but a first step is taken by calculating
the induced magnetic field of a system that has a current, by considering the magnetostatic
approximation and Biot-Savart law:
If CalculateSelfInducedMagneticField is set to yes, this B field is
calculated at the end of a gs calculation (nothing is done -- yet -- in the tdcase)
and printed out, if the Output variable contains the potential keyword (the prefix
of the output files is Bind).
ClassicalPotential
Section: Hamiltonian
Type: integer
Whether and how to add to the external potential the potential generated by
the classical charges read from the PDB input (see PBDCoordinates).
Options:
ComplexScaling
Section: Hamiltonian
Type: logical
Default: false
(experimental) If set to yes, a complex scaled Hamiltonian will be used.
When TheoryLevel=DFT Density functional resonance theory DFRT is employed.
In order to reveal resonances ComplexScalingAngle bigger than zero should be set.
D. L. Whitenack and A. Wasserman, Phys. Rev. Lett. 107, 163002 (2011).
ComplexScalingAngle
Section: Hamiltonian
Type: float
Default: 0.3
The complex scaling parameter theta in DFRT.
It should be bound to 0 <= theta < pi/4.
CurrentDFT
Section: Hamiltonian
Type: logical
Default: false
(experimental) If set to yes, Current-DFT will be used. This is the
extension to DFT that should be used when external magnetic fields are
present. The current-dependent part of the XC functional is set using the
JFunctional variable. The default is no.
FilterPotentials
Section: Hamiltonian
Type: integer
Default: filter_none
Octopus can filter the pseudopotentials so that they no
longer contain Fourier components larger than the mesh itself. This is
very useful to decrease the egg-box effect, and so should be used in
all instances where atoms move (e.g. geometry optimization,
molecular dynamics, and vibrational modes).
Options:
GaugeVectorField
Section: Hamiltonian
Type: block
The gauge vector field is used to include a uniform (but time-dependent)
external electric field in a time-dependent run for
a periodic system. An optional second row specifies the initial
value for the time derivative of the gauge field (which is set
to zero by default). By default this field is not included.
This is used with utility oct-dielectric_function
according to GF Bertsch, J-I Iwata, A Rubio, and K Yabana,
Phys. Rev. B 62, 7998-8002 (2000).
GyromagneticRatio
Section: Hamiltonian
Type: float
Default: 2.0023193043768
The gyromagnetic ratio of the electron. This is of course a physical
constant, and the default value is the exact one that you should not
touch, unless:
(i) You want to disconnect the anomalous Zeeman term in the Hamiltonian
(then set it to zero; this number only affects that term);
(ii) You are using an effective Hamiltonian, as is the case when
you calculate a 2D electron gas, in which case you have an effective
gyromagnetic factor that depends on the material.
IgnoreExternalIons
Section: Hamiltonian
Type: logical
Default: no
If this variable is set to "yes", then the ions that are outside the simulation box do not feel any
external force (and therefore progress at constant velocity), and do not originate any force on other
ions, or any potential on the electronic system.
This feature is only available for finite systems; if the system is periodic in any dimension,
this variable cannot be set to "yes".
MassScaling
Section: Hamiltonian
Type: block
Scaling factor for anisotropic masses (different masses along each
geometric direction).
%MassScaling
1.0 | 1800.0 | 1800.0
%
would fix the mass of the particles to be 1800 along the y and z
directions. This can be useful, e.g., to simulate 3 particles in 1D,
in this case an electron and 2 protons.
ParticleMass
Section: Hamiltonian
Type: float
Default: 1.0
It is possible to make calculations for a particle with a mass
different from one (atomic unit of mass, or mass of the electron).
This is useful to describe non-electronic systems, or for
esoteric purposes.
RelativisticCorrection
Section: Hamiltonian
Type: integer
Default: non_relativistic
The default value means that no relativistic correction is used. To
include spin-orbit coupling turn RelativisticCorrection to spin_orbit
(this will only work if SpinComponents has been set to non_collinear, which ensures
the use of spinors).
Options:
SOStrength
Section: Hamiltonian
Type: float
Default: 1
Tuning of the spin-orbit coupling strength: setting this value to zero turns off spin-orbit terms in
the Hamiltonian, and setting it to one corresponds to full spin-orbit.
StaticElectricField
Section: Hamiltonian
Type: block
A static constant electric field may be added to the usual Hamiltonian,
by setting the block StaticElectricField.
The three possible components of the block (which should only have one
line) are the three components of the electric field vector.
It can be applied in a periodic direction of a large supercell via
the single-point Berry phase.
StaticMagneticField
Section: Hamiltonian
Type: block
A static constant magnetic field may be added to the usual Hamiltonian,
by setting the block StaticMagneticField.
The three possible components of the block (which should only have one
line) are the three components of the magnetic field vector. Note that
if you are running the code in 1D mode, this will not work, and if you
are running the code in 2D mode the magnetic field will have to be in
the z-direction, so that the first two columns should be zero.
The magnetic field should always be entered in atomic units, regardless
of the Units variable. Note that we use the "Gaussian" system
meaning 1 au[B] = 1.7152553 * 10^7 gauss, which corresponds to
1.7152553 * 10^3 Tesla.
StaticMagneticField2DGauge
Section: Hamiltonian
Type: integer
The gauge of the static vector potential A when a magnetic field B = (0,0,B_z) is applied onto a 2D-system.
Options:
TheoryLevel
Section: Hamiltonian
Type: integer
Default: dft
The calculations can be run with different "theory levels":
Options:
AlphaFMM
Section: Hamiltonian::Poisson
Type: float
Default: 0.291262136
Dimensionless parameter for the correction of the self-interaction of the
electrostatic Hartree potential.
Octopus represents charge density in real space grids, each
point containing a value $\rho$ corresponding to the charge
density in the cell centered in such point. Therefore, the
integral for the Hartree potential at point $i$, this is
$V_H(i)$, can be reduced to a summation:
$V_H(i) = (1/4\pi\epsilon_0) \Omega \sum_{i \neq j} \frac{\rho(\vec{r}(j))}{|\vec{r}(j) - \vec{r}(i)|} + V_{self.int.}(i)$
where $\Omega$ is the volume of the cell, and $\vec{r}(j)$ is the
position of the point $j$. The $V_{self.int.}(i)$ corresponds to
the integral over the cell centered on the point $i$ that is necessary to
calculate the Hartree potential at point $i$:
$V_{self.int.}(i):=\int_{\Omega(i)}d\vec{r} \frac{\rho(\vec{r}(i))}{|\vec{r}-\vec{r}(i)|}$
In the FMM version implemented into Octopus, a correction method
for $V_H(i)$ is used (see "A survey of the parallel performance and
the accuracy of Poisson solvers for electronic structure
calculations", by Pablo García-Risueño, Joseba Alberdi-Rodriguez, et al.)
This method defines cells neighbouring cell $i$, which
have volume $\Omega(i)/8$ (in 3D) and charge density obtained by
interpolation. In the calculation of $V_H(i)$, in order to avoid
double counting of charge, and to cancel part of the errors arising
from considering the distances constant in the summation above, a
term $-\alpha_{FMM}V_{self.int.}(i)$ is added to the summation (see
the referred paper for the explicit formulae).
DeltaEFMM
Section: Hamiltonian::Poisson
Type: float
Default: 0.0001
Dimensionless parameter for relative convergence of FMM.
Sets energy error bound.
Strong inhomogeneous systems may violate the error bound.
For inhomogeneous systems we have an error-controlled sequential version available
(from Ivo Kabadshow).
Our implementation of FMM (based on H. Dachsel, J. Chem. Phys. 131,
244102 (2009)) can keep the error of the Hartree energy below an
arbitrary bound. The quotient of the value chosen for the maximum
error in the Hartree energy and the value of the Hartree energy is
DeltaEFMM.
Poisson1DSoftCoulomParam
Section: Hamiltonian::Poisson
Type: float
Default: 1.0 bohr
When Dimensions = 1, to prevent divergence, the Coulomb interaction treated by the Poisson
solver is not 1/r but 1/sqrt(a^2 + r^2), where this variable sets the value of "a".
PoissonCutoffRadius
Section: Hamiltonian::Poisson
Type: float
When PoissonSolver = fft and PoissonFFTKernel is neither multipole_corrections
nor fft_nocut,
this variable controls the distance after which the electron-electron interaction goes to zero.
A warning will be written if the value is too large and will cause spurious interactions between images.
The default is half of the FFT box max dimension in a finite direction.
PoissonFFTKernel
Section: Hamiltonian::Poisson
Type: integer
Defines which kernel is used to impose the correct boundary
conditions when using FFTs to solve the Poisson equation. The
default is selected depending on the dimensionality and
periodicity of the system:
In 1D, spherical if finite, fft_nocut if periodic.
In 2D, spherical if finite, cylindrical if 1D-periodic, fft_nocut if 2D-periodic.
In 3D, spherical if finite, cylindrical if 1D-periodic, planar if 2D-periodic,
fft_nocut if 3D-periodic.
See C. A. Rozzi et al., Phys. Rev. B 73, 205119 (2006) for 3D implementation and
A. Castro et al., Phys. Rev. B 80, 033102 (2009) for 2D implementation.
Options:
PoissonSolver
Section: Hamiltonian::Poisson
Type: integer
Defines which method to use to solve the Poisson equation. Some incompatibilities apply depending on
dimensionality, periodicity, etc.
For comparison of accuracy and performance of the methods in Octopus, see http://arxiv.org/abs/1211.2092.
Defaults:
1D and 2D: fft.
3D: cg_corrected if curvilinear, isf if not periodic, fft if periodic.
Options:
PoissonSolverBoundaries
Section: Hamiltonian::Poisson
Type: integer
Default: multipole
For finite systems, some Poisson solvers (multigrid,
cg_corrected, and fft with PoissonFFTKernel = multipole_correction)
require the calculation of the
boundary conditions with an auxiliary method. This variable selects that method.
Options:
PoissonSolverMaxIter
Section: Hamiltonian::Poisson
Type: integer
Default: 400
The maximum number of iterations for conjugate-gradient
Poisson solvers.
PoissonSolverMaxMultipole
Section: Hamiltonian::Poisson
Type: integer
Order of the multipolar expansion for boundary corrections.
The Poisson solvers multigrid, cg, and cg_corrected
(and fft with PoissonFFTKernel = multipole_correction)
do a multipolar expansion of the given
charge density, such that $\rho = \rho_{multip.expansion}+\Delta
\rho$. The Hartree potential due to the \rho_{multip.expansion} is
calculated analytically, while the Hartree potential due to $\Delta
\rho$ is calculated with either a multigrid or cg solver.
The order of the multipolar expansion is set by this variable.
Default is 4 for PoissonSolver = cg_corrected and multigrid, and 2
for fft with PoissonFFTKernel = multipole_correction.
PoissonSolverNodes
Section: Hamiltonian::Poisson
Type: integer
How many nodes to use to solve the Poisson equation. A value of
0, the default, implies that all available nodes are used.
PoissonSolverThreshold
Section: Hamiltonian::Poisson
Type: float
Default: 1e-5
The tolerance for the Poisson solution, used by the cg,
cg_corrected, and multigrid solvers.
PoissonSolverMGMaxCycles
Section: Hamiltonian::Poisson::Multigrid
Type: integer
Default: 60
Maximum number of multigrid cycles that are performed if
convergence is not achieved.
PoissonSolverMGPostsmoothingSteps
Section: Hamiltonian::Poisson::Multigrid
Type: integer
Default: 4
Number of Gauss-Seidel smoothing steps after coarse-level
correction in the multigrid Poisson solver.
PoissonSolverMGPresmoothingSteps
Section: Hamiltonian::Poisson::Multigrid
Type: integer
Default: 1
Number of Gauss-Seidel smoothing steps before coarse-level
correction in the multigrid Poisson solver.
PoissonSolverMGRelaxationFactor
Section: Hamiltonian::Poisson::Multigrid
Type: float
Relaxation factor of the relaxation operator used for the
multigrid method. This is mainly for debugging,
since overrelaxation does not help in a multigrid scheme.
The default is 1.0, except 0.6666 for the gauss_jacobi method.
PoissonSolverMGRelaxationMethod
Section: Hamiltonian::Poisson::Multigrid
Type: integer
Method used to solve the linear system approximately in each grid for the
multigrid procedure that solves Poisson equation. Default is gauss_seidel,
unless curvilinear coordinates are used, in which case the default is gauss_jacobi.
Options:
PoissonSolverMGRestrictionMethod
Section: Hamiltonian::Poisson::Multigrid
Type: integer
Default: fullweight
Method used from fine-to-coarse grid transfer.
Options:
Interaction1D
Section: Hamiltonian::XC
Type: integer
Default: interaction_soft_coulomb
When running in 1D, one has to soften the Coulomb interaction. This softening
is not unique, and several possibilities exist in the literature.
Options:
Interaction1DScreening
Section: Hamiltonian::XC
Type: float
Default: 1.0
Defines the screening parameter, alpha, of the softened Coulomb interaction
when running in 1D. The default value is 1.0.
KSInversionLevel
Section: Hamiltonian::XC
Type: integer
Default: ks_inversion_adiabatic
At what level shall Octopus handle the KS inversion
Options:
MGGAimplementation
Section: Hamiltonian::XC
Type: integer
Default: mgga_gea
Decides how to implement the meta-GGAs (NOT WORKING).
Options:
OEPLevel
Section: Hamiltonian::XC
Type: integer
Default: oep_kli
At what level shall Octopus handle the optimized effective potential (OEP) equation.
Options:
OEPMixing
Section: Hamiltonian::XC
Type: float
Default: 1.0
The linear mixing factor used to solve the Sternheimer
equation in the full OEP procedure. The default is 1.0.
SICCorrection
Section: Hamiltonian::XC
Type: integer
Default: sic_none
This variable controls which form of self-interaction correction to use. Note that
this correction will be applied to the functional chosen by XCFunctional.
Options:
XCDensityCorrection
Section: Hamiltonian::XC
Type: integer
Default: none
This variable controls the long range correction of the XC
potential using the XC density representation
(http://arxiv.org/abs/1107.4339). By default, no correction
is applied.
Options:
XCDensityCorrectionCutoff
Section: Hamiltonian::XC
Type: float
Default: 0.0
The value of the cutoff applied to the XC density. The default value is 0.
XCDensityCorrectionMinimum
Section: Hamiltonian::XC
Type: logical
Default: true
When enabled, the default, the cutoff optimization will
return the first minimum of the q_xc function if it does
not find a value of -1 (See http://arxiv.org/abs/1107.4339
for details). This is required for atoms or small
molecules, but may cause numerical problems.
XCDensityCorrectionNormalize
Section: Hamiltonian::XC
Type: logical
Default: true
When enabled, the default, the correction will be
normalized to reproduce the exact boundary conditions of
the XC potential.
XCDensityCorrectionOptimize
Section: Hamiltonian::XC
Type: logical
Default: true
When enabled, the default, the density cutoff will be
optimized to replicate the boundary conditions of the exact
XC potential. If the variable is set to no, the value of
the cutoff must be given by the XCDensityCorrectionCutoff
variable.
XCFunctional
Section: Hamiltonian::XC
Type: integer
Defines the exchange and correlation functional to be used;
they should be specified as a sum of a correlation term and an
exchange term. Defaults:
1D: lda_x_1d + lda_c_1d_csc
2D: lda_x_2d + lda_c_2d_amgb
3D: lda_x + lda_c_pz_mod
Options:
XCKernel
Section: Hamiltonian::XC
Type: integer
Default: lda_x+lda_c_pz_mod
Defines the exchange-correlation kernel. Only LDA kernels are available currently.
Options:
XCTailCorrection
Section: Hamiltonian::XC
Type: logical
Default: no
(Experimental) This variable applies a correction to
the value of the XC functional in near-zero-density regions.
This zone might have numerical noise or it might
even be set to zero by libxc.
The correction is performed by forcing the "-1/r behaviour" of the XC potential
in the zones where the density is lower then XCTailCorrectionTol.
XCTailCorrectionCMDistance
Section: Hamiltonian::XC
Type: integer
(Experimental) This variable allows the application of the tail correction to the XC potential only where
the distance of the local point from the center of mass of the system is greater than
XCTailCorrectionCMDistance.
XCTailCorrectionDelay
Section: Hamiltonian::XC
Type: integer
(Experimental) This variable skips the application of the tail correction during the first calls of the
subroutine that build the exchange-correlation potential (XCTailCorrectionDelay = number of calls skipped):
this can avoid problems caused by initial guess wavefunctions.
XCTailCorrectionLinkFactor
Section: Hamiltonian::XC
Type: float
Default: 1
(Experimental) This variable forces a smooth transition between the region where the values of the XC functional
have been previously calculated and the region where the -1/r correction has been applied.
The region of the transition starts where the electronic total density reaches the value of
(XCTailCorrectionLinkFactor * XCTailCorrectionTol) and ends where the density reaches
the value of XCTailCorrectionTol.
XCTailCorrectionTol
Section: Hamiltonian::XC
Type: float
Default: 5e-12