M
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 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.
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 Time-Dependent::Absorbing 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 Time-Dependent::Absorbing Boundaries
Type float
Default 1.0e-16
Tolerated reflection error for the PML
Name MaxwellAbsorbingBoundaries
Section Time-Dependent::Propagation
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 Time-Dependent::Absorbing Boundaries
Type float
Width of the region used to apply the absorbing boundaries. The default value is twice
the derivative order.
Name MaxwellBoundaryConditions
Section Time-Dependent::Propagation
Type block
Defines boundary conditions for the electromagnetic field propagation.
Example:
%MaxwellBoundaryConditions
zero | mirror_pec | consant
%
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 MaxwellFieldsCoordinate
Section Maxwell::Coordinates
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 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 MaxwellHamiltonianOperator
Section Hamiltonian
Type integer
Default faraday_ampere
With this variable the the Maxwell Hamiltonian operator can be selected
Options:
- faraday_ampere_old:
old version
- 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
- faraday_ampere_gauss:
The propagation operation is done by 4x4 matrices also with Gauss laws constraint.
- faraday_ampere_gauss_medium:
The propagation operation is done by 4x4 matrices also with Gauss laws constraint in medium
Name MaxwellIncidentWaves
Section MaxwellStates
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.
Example:
%MaxwellIncidentWaves
plane_wave_parser | "k1x" | "k1y" | "k1z" | "E1x" | "E1z" | "E1x"
plane_wave_parser | "k2x" | "k2y" | "k2z" | "E2x" | "E2y" | "E2z"
plane_wave_gauss | "k3x" | "k3y" | "k3z" | "E3x" | "E3y" | "E3z" | "width" | "shift"
plane_wave_mx_function | "E4x" | "E4y" | "E4z" | mx_envelope_name
%
Description about MaxwellIncidentWaves follows
Options:
- plane_wave_parser:
Parser input modus
- plane_wave_mx_function:
The incident wave envelope is defined by an mx_function
Name MaxwellMediumCalculation
Section Hamiltonian
Type integer
Default RS
For linear media the calculation of the Maxwell Operator acting on the RS state can be done
directly using the Riemann-Silberstein representation or by calculating the curl of the
electric and magnetic fields.
Options:
- RS:
Medium calculation directly via Hamiltonian
- EM:
Medium calculation via curl of electric field and magnetic field
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
- maxwell_vector_potential:
Output of the vector potential
- poynting_vector:
Output of the Maxwell Poynting vector
- maxwell_energy_density:
Output of the electromagnetic density
- maxwell_current:
Output of the Maxwell current i.e. matter current plus external current.
- external_current:
Output of the external Maxwell current
- electric_dipole_potential:
Output of the electric dipole potential
- electric_quadrupole_potential:
Output of the electric quadrupole potential
- charge_density:
Output of the charge density calculated by the divergence of the electric field.
- charge_density_diff:
Output of the charge density difference, one calculated via matter calculation, the other
one calculated with Div(E) = rho/epsilon.
- maxwell_pol_density:
Output of the polarization density on the Maxwell grid.
- medium_variables_electric:
Output of the electric displacement field, the polarization density and the electric susceptibility.
- medium_variables_magnetic:
Output of the H-magnetic field, the magnetization and the magnetic susceptibility.
- test_output:
Output of a test function for debugging
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 States
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 Time-Dependent::Propagation
Type integer
Default no
Whether to perform aproximations to the ETRS propagator.
Options:
- no:
No approximations.
- const_steps:
Use constant current density.
Name MaxwellTDIntervalSteps
Section Time-Dependent::Propagation
Type integer
This variable determines how many intervall steps the Maxwell field propagation
does until it reaches the matter time step. In case that MaxwellTDIntervalSteps is
equal to one, the Maxwell time step is equal to the matter one. The default value is 1.
Name MaxwellTDOperatorMethod
Section Time-Dependent::Propagation
Type integer
Default op_fd
The Maxwell Operator e.g. the curl operation can be obtained by
two different methods, the finid-difference or the fast fourier
transform.
Options:
- op_fd:
Maxwell operator calculated by finite differnce method
- op_fft:
Maxwell operator calculated by fast fourier transform
Name MaxwellTDOutput
Section Time-Dependent::TD 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.
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
- maxwell_longitudinal_b_field:
Output of the longitudinal magnetic field at the points
specified in the MaxwellFieldsCoordinate block
- maxwell_transverse_e_field:
Output of the transverse electric field at the points
specified in the MaxwellFieldsCoordinate block
- maxwell_transverse_b_field:
Output of the transverse magnetic field at the points
specified in the MaxwellFieldsCoordinate block
- maxwell_energy:
Output of the electromagnetic field energy into the folder td.general/maxwell.
- mean_poynting:
Output of the mean Poynting vector
- 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 MaxwellTDSCFThreshold
Section Time-Dependent::Propagation
Type float
Default 1.0e-6
Since the Maxwell-KS propagator is non-linear, each propagation step
should be performed self-consistently. In practice, for most
purposes this is not necessary, except perhaps in the first
iterations. This variable holds the number of propagation steps
for which the propagation is done self-consistently.
This variable controls the accuracy threshold for the self consistency.
Name MediumElectricSigma
Section Time-Dependent::Absorbing Boundaries
Type float
Default 0.
Electric conductivity of the linear medium.
Name MediumEpsilonFactor
Section Time-Dependent::Absorbing Boundaries
Type float
Default 1.0.
Linear medium electric susceptibility.
Name MediumMagneticSigma
Section Time-Dependent::Absorbing Boundaries
Type float
Default 0.
Magnetic conductivity of the linear medium.
Name MediumMuFactor
Section Time-Dependent::Absorbing Boundaries
Type float
Default 1.0
Linear medium magnetic susceptibility.
Name MediumWidth
Section Time-Dependent::Absorbing 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 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 MeshOrder
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:
- blocks:
The grid is mapped using small parallelepipedic grids. The size
of the blocks is controlled by MeshBlockSize.
- hilbert:
(experimental) A Hilbert space-filling curve is used to map the
grid.
- hilbert_2d:
(experimental) A Hilbert space-filling curve is used to map the
grid in two of the dimensions.
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 libary to perform the mesh partition.
Only available if the code was compiled with ParMETIS support.
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 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:
- 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 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 and Bowler_Gillan schemes, 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. Hurthmueller,
Phys. Rev. B 54, 11169 (1996)].
- bowler_gillan:
The Guaranteed-reduction modification of the Pulay scheme by
Bowler and Gillan [D. R. Bowler and M. J. Gillan,
Chem. Phys. Lett. 325, 473 (2000)].
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 and Bowler_Gillan 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.
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.
Name MultigridLevels
Section Mesh
Type integer
Default max_levels
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.