M
Name MagneticConstrain
Section Hamiltonian
Type integer
Default no
This variable selects which magnetic constrain expression is added to the Hamiltonian.
Options:
- constrain_none:
No constrain is added to the Hamiltonian.
- constrain_dir:
We are adding a constrain for the direction of the magnetic moments only,
see PRB 91, 054420 (2015).
- constrain_full:
We are adding a constrain for the direction and norm of the magnetic moments only,
see PRB 91, 054420 (2015).
Name MagneticConstrainStrength
Section Hamiltonian
Type float
Default 0.01
This variable determines the value of the Lagrange multiplier used for the constrain term.
Name 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:
- none:
No correction.
- gipaw:
GIPAW correction: C Pickard and F Mauri, Phys. Rev. Lett. 91, 196401 (2003).
- icl:
ICL correction: S Ismail-Beigi, EK Chang, and SG Louie, Phys. Rev. Lett. 87, 087402 (2001).
Name MainAxis
Section Utilities::oct-center-geom
Type block
A vector of reals defining the axis to which the molecule
should be aligned. If not present, the default value will
be the x-axis. For example in 3D:
%MainAxis
1 | 0 | 0
%
Name MaxAngularMomentum
Section DFTBPlusInterface
Type block
Specifies the highest angular momentum for each atom type. All orbitals up
to that angular momentum will be included in the calculation.
Possible values for the angular momenta are s, p, d, f.
These are examples:
%MaxAngularMomentum
‘O’ | ‘p’
‘H’ | ’s’
%
Name 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.
If convergence criteria are set, the SCF loop will only stop once the criteria are fulfilled for two consecutive iterations.
Note that this variable is also used in the section Calculation Modes::Unoccupied States,
where it denotes the maximum number of calls of the eigensolver. In this context, the
default value is 50.
Name 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.
Name MaxwellABPMLPower
Section Maxwell::Boundaries
Type float
Default 3.5
Exponential of the polynomial profile for the non-physical conductivity of the PML.
Should be between 2 and 4
Name MaxwellABPMLReflectionError
Section Maxwell::Boundaries
Type float
Default 1.0e-16
Tolerated reflection error for the PML
Name MaxwellAbsorbingBoundaries
Section Maxwell
Type block
Type of absorbing boundaries used for Maxwell propagation in each direction.
Example:
%MaxwellAbsorbingBoundaries
cpml | cpml | cpml
%
Options:
- not_absorbing:
No absorbing boundaries.
- mask:
A mask equal to the wavefunctions mask is applied to the Maxwell states at the boundaries
- cpml:
Perfectly matched layer absorbing boundary
- mask_zero:
Absorbing boundary region is set to zero
Name MaxwellABWidth
Section Maxwell::Boundaries
Type float
Width of the region used to apply the absorbing boundaries. The default value is twice
the derivative order.
Name MaxwellBoundaryConditions
Section Maxwell
Type block
Defines boundary conditions for the electromagnetic field propagation.
Example:
%MaxwellBoundaryConditions
zero | mirror_pec | constant
%
Options:
- zero:
Boundaries are set to zero.
- constant:
Boundaries are set to a constant.
- mirror_pec:
Perfect electric conductor.
- mirror_pmc:
Perfect magnetic conductor.
- plane_waves:
Boundaries feed in plane waves.
- periodic:
Periodic boundary conditions (not yet implemented).
- medium:
Boundaries as linear medium (not yet implemented).
Name MaxwellCouplingMode
Section Hamiltonian
Type integer
Default none
This variable selects the level of light-matter coupling with electromagnetic fields from the Maxwell solver.
Each option defines a coupling Hamiltonian $ H_{int}$.
Options:
- none:
No coupling.
- length_gauge_dipole:
Dipole level in length gauge with transverse electric field E(t):
$ H_{int} = -r.E $
The option MaxwellDipoleField should be set to define if $E$ is calculated as an average at evaluated
at the center of mass (by default, dipole coupling with the average electric field will be used).
- multipolar_expansion:
The option MultipoleExpansionTerms selects the terms to be included (electric dipole, electric quadrupole
and/or magnetic dipole).
- velocity_gauge_dipole:
Coupling at dipole level in velocity gauge with transverse vector potential A(t).
$ H_{int} = 1/2m (2 A(t).p + A^2(t)) $
The option MaxwellDipoleField should be set.
- full_minimal_coupling:
Full vector potential A(r,t) coupled to the momentum.
$ H_{int} = 1/2m (2 A(r,t).p + A^2(r,t)) $
Name MaxwellDipoleField
Section Hamiltonian
Type integer
Default average
This variable selects the method to get the E field vector at the position of the system
if Maxwell-matter coupling at dipole level within length gauge is done.
Options:
- average:
Transverse E field is averaged in the volume occupied by the matter system.
- center_of_mass:
Tranverse E field is evaluated at the center of mass of the matter system (at a single point).
Name MaxwellFieldsCoordinate
Section Maxwell::Output
Type block
The Maxwell MaxwellFieldsCoordinate block allows to output Maxwell fields at particular
points in space. For each point a new line with three columns has to be added to the block,
where the columns denote the x, y, and z coordinate of the point.
%MaxwellFieldsCoordinate
-1.0 | 2.0 | 4.0
0.0 | 1.0 | -2.0
%
Name MaxwellFunctions
Section Maxwell
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 | kx | ky | kz | "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 MaxwellHamiltonianOperator
Section Maxwell
Type integer
Default faraday_ampere
With this variable the the Maxwell Hamiltonian operator can be selected
Options:
- faraday_ampere:
The propagation operation in vacuum with Spin 1 matrices without Gauss law condition.
- faraday_ampere_medium:
The propagation operation in medium with Spin 1 matrices without Gauss law condition
- simple:
A simpler implementation of the Hamiltonian, including PML. It does not use an extra
transformation to (potentially) 6-element vectors, but uses directly the Riemann-Silberstein
vector as a variable.
Name MaxwellIncidentWaves
Section Maxwell
Type block
The initial electromagnetic fields can be set by the user
with the MaxwellIncidentWaves block variable.
The electromagnetic fields have to fulfill the
Maxwells equations in vacuum.
For a Maxwell propagation, setting the electric field is sufficient,
the magnetic field (for plane waves) will be calculated from it as 1/(c.|k|) . (k x E).
Example:
%MaxwellIncidentWaves
plane_wave_parser | "field_type"| "k1x" | "k1y" | "k1z" | "E1x" | "E1z" | "E1x"
plane_wave_mx_function | "field_type"| "E4x" | "E4y" | "E4z" | mx_envelope_name | phase
bessel_function | "field_type"| A_0 | m | omega | helicity | $\theta_{k}$ | mx_envelope_name | lin_dir
%
Field type can be "electric_field" or "vector_potential". Note that in order to couple to an electronic system, the MaxwellCouplingMode variable needs to be set to a coupling type compatible with the requested field type ("electric_field" is compatible with length gauge, while "vector_potential" is compatible with velocity gauge and full minimal coupling). Otherwise, the field will not be calculated or applied to the electronic Hamiltonian.
Options:
- plane_wave_parser:
Parser input modus
- plane_wave_mx_function:
The incident wave envelope is defined by an mx_function
- bessel_function:
The incident source is a generalized Bessel beam, parametrized by its amplitude, opening angle, helicity, order and frequency.
This beam is a solution of Maxwell equations, and inherently circularly polarized and is parametrized by its amplitude,
opening angle, helicity, order and frequency.
Please keep in mind, if you set linear polarization lin_dir,
you will obtain a linearly polarized Bessel beam.
Name MaxwellOutput
Section Output
Type block
Default none
Specifies what to print. The output files are written at the end of the run into the output directory for the
Maxwell run.
Time-dependent simulations print only per iteration, including always the last. The frequency of output per iteration
is set by OutputInterval and the directory is set by OutputIterDir.
Each option must be in a separate row. Optionally individual output formats and output intervals can be defined
for each row or they can be read separately from OutputFormat and MaxwellOutputInterval variables
in the input file.
Example:
%MaxwellOutput
electric_field
magnetic_field
%
This block supports all the formats of the Output block.
See Output.
Options:
- electric_field:
Output of the electric field
- magnetic_field:
Output of the magnetic field
- trans_electric_field:
Output of the transversal electric field
- trans_magnetic_field:
Output of the transversal magnetic field
- long_electric_field:
Output of the longitudinal electric field
- long_magnetic_field:
Output of the longitudinal magnetic field
- div_electric_field:
Output of the divergence of the electric field
- div_magnetic_field:
Output of the divergence of the magnetic field
- poynting_vector:
Output of the Maxwell Poynting vector
- maxwell_energy_density:
Output of the electromagnetic density
- external_current:
Output of the external Maxwell current
- charge_density:
Output of the charge density calculated by the divergence of the electric field.
- orbital_angular_momentum:
Output of the orbital angular momentum
- vector_potential_mag:
Output of the vector potential from magnetic field
- magnetic_field_diff:
Output of the magnetic field difference
- total_current_mxll:
Output of the total current density
Name MaxwellOutputInterval
Section Output
Type integer
Default 50
The output requested by variable MaxwellOutput is written
to the directory MaxwellOutputIterDir
when the iteration number is a multiple of the MaxwellOutputInterval variable.
Subdirectories are named Y.X, where Y is td, scf, or unocc, and
X is the iteration number. To use the working directory, specify "."
(Output of restart files is instead controlled by MaxwellRestartWriteInterval.)
Must be >= 0. If it is 0, then no output is written.
This variable can also be defined inside the MaxwellOutput block.
See MaxwellOutput.
Name MaxwellOutputIterDir
Section Output
Type string
Default “output_iter”
The name of the directory where Octopus stores information
such as the density, forces, etc. requested by variable MaxwellOutput
in the format specified by OutputHow.
This information is written while iterating CalculationMode = maxwell
according to OutputInterval, and has nothing to do with the restart information.
Name MaxwellPlaneWavesInBox
Section Maxwell
Type logical
Default no
Analytic evaluation of the incoming waves inside the box,
not doing any numerical propagation of Maxwells equations.
Name MaxwellRestartWriteInterval
Section Execution::IO
Type integer
Default 50
Restart data is written when the iteration number is a multiple of the
MaxwellRestartWriteInterval variable. (Other output is controlled by MaxwellOutputInterval.)
Name MaxwellTDETRSApprox
Section Maxwell::TD Propagation
Type integer
Default no
Whether to perform approximations to the ETRS propagator.
Options:
- no:
No approximations.
- const_steps:
Use constant current density.
Name MaxwellTDOutput
Section Maxwell::Output
Type flag
Default maxwell_energy
Defines what should be output during the time-dependent
Maxwell simulation. Many of the options can increase the computational
cost of the simulation, so only use the ones that you need. In
most cases the default value is enough, as it is adapted to the
details of the TD run.
WARNING: the calculation of the longitudinal or transverse E and B fields
can be very expensive, so please consider using the MaxwellOutput block
to calculate and output these quantities at certain timesteps.
Options:
- maxwell_total_e_field:
Output of the total (longitudinal plus transverse) electric field at
the points specified in the MaxwellFieldsCoordinate block
- maxwell_total_b_field:
Output of the total (longitudinal plus transverse) magnetic field at
the points specified in the MaxwellFieldsCoordinate block
- maxwell_longitudinal_e_field:
Output of the longitudinal electric field at the points
specified in the MaxwellFieldsCoordinate block (can slow down the run)
- maxwell_longitudinal_b_field:
Output of the longitudinal magnetic field at the points
specified in the MaxwellFieldsCoordinate block (can slow down the run)
- maxwell_transverse_e_field:
Output of the transverse electric field at the points
specified in the MaxwellFieldsCoordinate block (can slow down the run)
- maxwell_transverse_b_field:
Output of the transverse magnetic field at the points
specified in the MaxwellFieldsCoordinate block (can slow down the run)
- maxwell_energy:
Output of the electromagnetic field energy into the folder td.general/maxwell.
WARNING: the transverse and longitudinal energies will be correct only if you request
the longitudinal and transverse E or B fields as output. Otherwise they will be set to
zero.
- e_field_surface_x:
Output of the E field sliced along the plane x=0 for each field component
- e_field_surface_y:
Output of the E field sliced along the plane y=0 for each field component
- e_field_surface_z:
Output of the E field sliced along the plane z=0 for each field component
- b_field_surface_x:
Output of the B field sliced along the plane x=0 for each field component
- b_field_surface_y:
Output of the B field sliced along the plane y=0 for each field component
- b_field_surface_z:
Output of the B field sliced along the plane z=0 for each field component
Name MaxwellTestQuadrupole
Section Maxwell
Type logical
Default no
Override Maxwell field with linear E field for testing.
Name MediumCurrentCoordinates
Section Maxwell::Output
Type block
This allows to output phasor current vectors at particular points in space.
%MediumCurrentCoordinates
-1.0 | 2.0 | 4.0
0.0 | 1.0 | -2.0
%
Name MediumDispersionType
Section Maxwell::Medium
Type integer
Default drude_medium
Dispersion model used for the medium (only Drude model available for the moment).
Options:
- drude_medium:
Drude type of dispersion.
Name MediumElectricSigma
Section Maxwell::Boundaries
Type float
Default 0.
Electric conductivity of the linear medium.
Name MediumEpsilonFactor
Section Maxwell::Boundaries
Type float
Default 1.0.
Linear medium electric susceptibility.
Name MediumMagneticSigma
Section Maxwell::Boundaries
Type float
Default 0.
Magnetic conductivity of the linear medium.
Name MediumMuFactor
Section Maxwell::Boundaries
Type float
Default 1.0
Linear medium magnetic susceptibility.
Name MediumPoleDamping
Section Maxwell::Medium
Type float
Default 0
Damping factor (inverse relaxation time) of the medium.
Name MediumPoleEnergy
Section Maxwell::Medium
Type float
Default 0
Energy of the pole.
Name MediumPoleStrength
Section Maxwell::Medium
Type float
Default 1.0
Strength of the pole (unitless).
Name MediumWidth
Section Maxwell::Boundaries
Type float
Default 0.0 a.u.
Width of the boundary region with medium
Name MemoryLimit
Section Execution::Optimization
Type integer
Default -1
If positive, Octopus will stop if more memory than MemoryLimit
is requested (in kb). Note that this variable only works when
ProfilingMode = prof_memory(_full).
Name MeshBlockDirection
Section Execution::Optimization
Type integer
Determines the direction in which the dimensions are chosen to compute
the blocked index for sorting the mesh points (see MeshBlockSize).
The default is increase_with_dimensions, corresponding to xyz ordering
in 3D.
Options:
- increase_with_dimension:
The fastest changing index is in the first dimension, i.e., in 3D this
corresponds to ordering in xyz directions.
- decrease_with_dimension:
The fastest changing index is in the last dimension, i.e., in 3D this
corresponds to ordering in zyx directions.
Name MeshBlockSize
Section Execution::Optimization
Type block
To improve memory-access locality when calculating derivatives,
Octopus arranges mesh points in blocks. This variable
controls the size of this blocks in the different
directions. The default is selected according to the value of
the StatesBlockSize variable. (This variable only affects the
performance of Octopus and not the results.)
Name MeshIndexType
Section Mesh
Type integer
Default idx_cubic
Determine index type. Must be the same for restarting a calculation.
Options:
- idx_cubic:
Cubic indices are used to map the spatial information to the grid points.
- idx_hilbert:
A Hilbert space-filling curve is used to map the spatial information to
the grid points.
Name MeshLocalBlockDirection
Section Execution::Optimization
Type integer
Determines the direction in which the dimensions are chosen to compute
the blocked index for sorting the mesh points (see MeshLocalBlockSize).
The default is increase_with_dimensions, corresponding to xyz ordering
in 3D.
Options:
- increase_with_dimension:
The fastest changing index is in the first dimension, i.e., in 3D this
corresponds to ordering in xyz directions.
- decrease_with_dimension:
The fastest changing index is in the last dimension, i.e., in 3D this
corresponds to ordering in zyx directions.
Name MeshLocalBlockSize
Section Execution::Optimization
Type block
To improve memory-access locality when calculating derivatives,
Octopus arranges mesh points in blocks. This variable
controls the size of this blocks in the different
directions. The default is selected according to the value of
the StatesBlockSize variable. (This variable only affects the
performance of Octopus and not the results.)
Name MeshLocalOrder
Section Execution::Optimization
Type integer
Default blocks
This variable controls how the grid points are mapped to a
linear array. This influences the performance of the code.
Options:
- order_blocks:
The grid is mapped using small parallelepipedic grids. The size
of the blocks is controlled by MeshBlockSize.
- order_cube:
The grid is mapped using a full cube, i.e. without blocking.
- order_global:
Use the ordering from the global mesh
Name MeshOrder
Section Execution::Optimization
Type integer
This variable controls how the grid points are mapped to a
linear array for global arrays. For runs that are parallel
in domains, the local mesh order may be different (see
MeshLocalOrder).
The default is blocks when serial in domains and cube when
parallel in domains with the local mesh order set to blocks.
Options:
- order_blocks:
The grid is mapped using small parallelepipedic grids. The size
of the blocks is controlled by MeshBlockSize.
- order_original:
The original order of the indices is used to map the grid.
- order_cube:
The grid is mapped using a full cube, i.e. without blocking.
Name MeshPartition
Section Execution::Parallelization
Type integer
When using METIS to perform the mesh partitioning, decides which
algorithm is used. By default, graph partitioning
is used for 8 or more partitions, and rcb for fewer.
Options:
- rcb:
Recursive coordinate bisection partitioning.
- graph:
Graph partitioning (called 'k-way' by METIS).
Name MeshPartitionPackage
Section Execution::Parallelization
Type integer
Decides which library to use to perform the mesh partition.
By default ParMETIS is used when available, otherwise METIS is used.
Options:
- metis:
METIS library.
- parmetis:
(Experimental) Use ParMETIS library to perform the mesh partition.
Only available if the code was compiled with ParMETIS support.
- part_hilbert:
Use the ordering along the Hilbert curve for partitioning.
Name MeshPartitionStencil
Section Execution::Parallelization
Type integer
Default stencil_star
To partition the mesh, it is necessary to calculate the connection
graph connecting the points. This variable selects which stencil
is used to do this.
Options:
- stencil_star:
An order-one star stencil.
- laplacian:
The stencil used for the Laplacian is used to calculate the
partition. This in principle should give a better partition, but
it is slower and requires more memory.
Name MeshPartitionVirtualSize
Section Execution::Parallelization
Type integer
Default mesh mpi_grp size
Gives the possibility to change the partition nodes.
Afterward, it crashes.
Name MeshUseTopology
Section Execution::Parallelization
Type logical
Default false
(experimental) If enabled, Octopus will use an MPI virtual
topology to map the processors. This can improve performance
for certain interconnection systems.
Name MillerIndicesBasis
Section Time-Dependent
Type block
When this block is given, the polarisation of the TDExternalFields is
understood to be defined in terms of Miller indices.
This block define the corresponding basis, by defining the reduced coordinates
of the X, Y, and Z high symmetry points, such that the code can do the corresponding
transformation.
For example, in an FCC crystal with the conventional primitive cell, the following input allows to define the polarization in terms message(1) = "The lasers break (at least) one of the symmetries used to reduce the k-points ."
%MillerIndicesBasis
0.0 | 0.5 | 0.5
0.5 | 0.0 | 0.5
0.5 | 0.5 | 0.0
%
Indeed, in this case, the reciprocal lattice vectors are (-1, 1, 1), (1, -1, 1), and (1, 1, -1) in units of 2*pi/a. This directly gives that the [100] direction correspond to the x direction, [111] gives the vector (1,1,1), etc.
Name 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.
This is not used in case of imaginary-time evolution.
Options:
- none:
No mixing is done. This is the default for independent
particles.
- potential:
The Kohn-Sham potential is mixed. This is the default for other cases.
- density:
Mix the density.
- states:
(Experimental) Mix the states. In this case, the mixing is always linear.
Name Mixing
Section SCF::Mixing
Type float
Default 0.3
The linear, Broyden and DIIS scheme depend on a "mixing parameter", set by this variable.
Must be 0 < Mixing <= 1.
Name MixingKerker
Section SCF::Mixing
Type logical
Default false
(Experimental) If set to yes, Octopus will use the Kerker preconditioner
for the mixing operator applied in the linear and Broyden mixing schemes.
When using preconditioning with the Broyden scheme, the user should increase the Mixing from its default
to between 0.5 and 0.8, for optimal results.
The implementation follows Yoshinori Shiihara et al., Modelling Simul. Mater. Sci. Eng. 16 (2008), 035004
Name MixingKerkerFactor
Section SCF::Mixing
Type float
Default 1.0
The screening factor, $q_0$ in the Kerker preconditioner in units of inverse length.
For small wave vectors, q, screening behaves like $\frac{Aq}{q_0}$, where A is the mixing coefficient.
An optimal value is determined empirically for a given system and mixing coeffient, however the default
is a reasonable choice in many cases.
Name MixingPreconditioner
Section SCF::Mixing
Type logical
Default false
(Experimental) If set to yes, Octopus will use a preconditioner
for the mixing operator.
This preconditioner is disabled for systems with dimension other than 3.
Name MixingResidual
Section SCF::Mixing
Type float
Default 0.05
In the DIIS mixing it is benefitial to include a bit of
residual into the mixing. This parameter controls this amount.
Name MixingRestart
Section SCF::Mixing
Type integer
Default 20
In the Broyden scheme, the mixing is restarted after
the number of iterations given by this variable.
Set this to zero to disable restarting the mixing.
Name MixingScheme
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:
- linear:
Simple linear mixing.
- broyden:
Broyden scheme [C. G Broyden, Math. Comp. 19, 577 (1965);
D. D. Johnson, Phys. Rev. B 38, 12807 (1988)].
The scheme is slightly adapted, see the comments in the code.
For complex functions (e.g. Sternheimer with EMEta > 0), we use the generalization
with a complex dot product.
- diis:
Direct inversion in the iterative subspace (diis)
scheme [P. Pulay, Chem. Phys. Lett., 73, 393
(1980)] as described in [G. Kresse, and J. Furthmueller,
Phys. Rev. B 54, 11169 (1996)].
Name MixInterval
Section SCF::Mixing
Type integer
Default 1
When this variable is set to a value different than 1 (the
default) a combined mixing scheme will be used, with MixInterval
- 1 steps of linear mixing followed by 1 step of the selected
mixing. For the moment this variable only works with DIIS mixing.
Name MixNumberSteps
Section SCF::Mixing
Type integer
Default 4
In the Broyden scheme, 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.
Name MomentumTransfer
Section Output
Type block
Momentum-transfer vector $\vec{q}$ to be used when calculating matrix elements
$\left< f \left| e^{i \vec{q} \cdot \vec{r}} \right| i \right>$.
This enables the calculation of the dynamical structure factor,
which is closely related to generalized oscillator strengths.
If the vector is not given, but TPA output is requested (Output = TPA),
only the oscillator strengths are written in the output file.
For example, to use $\vec{q}$ = (0.1, 0.2, 0.3), set
%MomentumTransfer
0.1 | 0.2 | 0.3
%
Name MoveIons
Section Time-Dependent::Propagation
Type logical
This variable controls whether atoms are moved during a time
propagation run. The default is yes when the ion velocity is
set explicitly or implicitly, otherwise is no.
Name MPIDebugHook
Section Execution::Debug
Type logical
Default no
When debugging the code in parallel it is usually difficult to find the origin
of race conditions that appear in MPI communications. This variable introduces
a facility to control separate MPI processes. If set to yes, all nodes will
start up, but will get trapped in an endless loop. In every cycle of the loop
each node is sleeping for one second and is then checking if a file with the
name node_hook.xxx (where xxx denotes the node number) exists. A given node can
only be released from the loop if the corresponding file is created. This allows
to selectively run, e.g., a compute node first followed by the master node. Or, by
reversing the file creation of the node hooks, to run the master first followed
by a compute node.
Name MultigridDerivativesOrder
Section Mesh::Derivatives
Type integer
Default 1
This variable gives the discretization order for the approximation of
the differential operators on the different levels of the multigrid.
For more details, see the variable DerivativesOrder.
For star-general stencils, the minimum is set to 2.
Name MultigridLevels
Section Mesh
Type integer
Default 4
Number of levels in the grid hierarchy used for multigrid. Positive
numbers indicate an absolute number of levels, negative
numbers are subtracted from the maximum number of levels possible.
Options:
- max_levels:
Calculate the optimal number of levels for the grid.
Name MultigridMaxCycles
Section Hamiltonian::Poisson::Multigrid
Type integer
Default 50
Maximum number of multigrid cycles that are performed if
convergence is not achieved.
Name MultigridPostsmoothingSteps
Section Hamiltonian::Poisson::Multigrid
Type integer
Default 4
Number of Gauss-Seidel smoothing steps after coarse-level
correction in the multigrid solver.
Name MultigridPresmoothingSteps
Section Hamiltonian::Poisson::Multigrid
Type integer
Default 1
Number of Gauss-Seidel smoothing steps before coarse-level
correction in the multigrid solver.
Name MultigridRelaxationFactor
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.
Name MultigridRelaxationMethod
Section Hamiltonian::Poisson::Multigrid
Type integer
Method used to solve the linear system approximately in each grid for the
multigrid procedure that solves a linear equation like the Poisson equation. Default is gauss_seidel,
unless curvilinear coordinates are used, in which case the default is gauss_jacobi.
Options:
- gauss_seidel:
Gauss-Seidel.
- gauss_jacobi:
Gauss-Jacobi.
Name MultigridRestrictionMethod
Section Hamiltonian::Poisson::Multigrid
Type integer
Default fullweight
Method used from fine-to-coarse grid transfer.
Options:
- injection:
Injection
- fullweight:
Fullweight restriction
Name MultipolarExpansionTerms
Section Hamiltonian
Type flag
Default electric_dipole + electric_quadrupole + magnetic_dipole
Terms to be included in the multipolar expansion.
For this type of coupling to make sense, the E field has to be calculated at the center of mass (not averaged).
Options:
- electric_dipole:
Adds electric dipole term in length gauge, uses transverse electric field E(t):
$ H_{int} = -e (r.E) $
- electric_quadrupole:
Adds electric quadrupole term:
$ H_{int} = \frac{1}{2} e (r . Q . r )] <\math>
where Q is the outer product of gradient and electric field: $ Q_{ij} = \partial_i E_j |_{r=r_0} $
- magnetic_dipole:
Adds magnetic dipole term:
$ H_{int} = - i (e \hbar /2m) \sum_i (\vec{B}(r_0).(\vec{r} x \nabla)) $