**Volume**
*Section*: Utilities::
*Type*: block

Describes a volume in space defined through the addition and substraction of
spheres. The first field is always "+" (include points inside the volume) or "-"
(exclude points inside the volume)
*Options*:

**vol_sphere**:

`%Volume`

"+"/"-" | vol_sphere | center_x | center_y | center_z | radius

%**vol_slab**:

`%Volume`

"+"/"-" | vol_slab | thickness

%

**CasidaSpectrumBroadening**
*Section*: Utilities::oct-casida_spectrum
*Type*: float
*Default*: 0.005 Ha

Width of the Lorentzian used to broaden the excitations.

**CasidaSpectrumEnergyStep**
*Section*: Utilities::oct-casida_spectrum
*Type*: float
*Default*: 0.001 Ha

Sampling rate for the spectrum.

**CasidaSpectrumMaxEnergy**
*Section*: Utilities::oct-casida_spectrum
*Type*: float
*Default*: 1.0 Ha

The broadening is done for energies smaller than `CasidaSpectrumMaxEnergy`.

**CasidaSpectrumMinEnergy**
*Section*: Utilities::oct-casida_spectrum
*Type*: float
*Default*: 0.0

The broadening is done for energies greater than `CasidaSpectrumMinEnergy`.

**CasidaSpectrumRotationMatrix**
*Section*: Utilities::oct-casida_spectrum
*Type*: block
*Default*: identity

Supply a rotation matrix to apply to the transition dipoles in generating the spectrum. The rotated atomic structure
will also be output. Size of matrix must be `Dimensions`.

**AxisType**
*Section*: Utilities::oct-center-geom
*Type*: integer
*Default*: inertia

After the structure is centered, it is also aligned to a set of orthogonal axes.
This variable decides which set of axes to use. Only implemented for 3D, in which case
the default is `inertia`; otherwise `none` is default and the only legal value.
*Options*:

**none**: Do not rotate. Will still give output regarding center of mass and moment of inertia.**inertia**: The axis of inertia.**pseudo_inertia**: Pseudo-axis of inertia, calculated considering all species to have equal mass.**large_axis**: The larger axis of the molecule.

**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
%`

**ConductivityFromForces**
*Section*: Utilities::oct-conductivity_spectrum
*Type*: logical
*Default*: no

(Experimental) If enabled, Octopus will attempt to calculate the conductivity from the forces instead of the current.

**ConductivitySpectrumTimeStepFactor**
*Section*: Utilities::oct-conductivity_spectrum
*Type*: integer
*Default*: 1

In the calculation of the conductivity, it is not necessary
to read the velocity at every time step. This variable controls
the integer factor between the simulation time step and the
time step used to calculate the conductivity.

**ConvertEnd**
*Section*: Utilities::oct-convert
*Type*: integer
*Default*: 1

The last number of the filename or folder.

**ConvertEnergyMax**
*Section*: Utilities::oct-convert
*Type*: float
*Default*: w_max

Maximum energy to output from Fourier transform.

**ConvertEnergyMin**
*Section*: Utilities::oct-convert
*Type*: float
*Default*: 0.0

Minimum energy to output from Fourier transform.

**ConvertEnergyStep**
*Section*: Utilities::oct-convert
*Type*: float
*Default*: \(2 \pi / T\), where \(T\) is the total propagation time

Energy step to output from Fourier transform.
Sampling rate for the Fourier transform. If you supply a number equal or smaller than zero, then
the sampling rate will be \(2 \pi / T\), where \(T\) is the total propagation time.

**ConvertFTMethod**
*Section*: Utilities::oct-convert
*Type*: integer
*Default*: FAST_FOURIER

Describes the method used to perform the Fourier Transform
*Options*:

**fast_fourier**: Uses Fast Fourier Transform as implemented in the external library.**standard_fourier**: Uses polinomial approach to the computation of discrete Fourier Transform. It uses the same variable described in how to obtain spectrum from a time-propagation calculation.

**ConvertFilename**
*Section*: Utilities::oct-convert
*Type*: string
*Default*: "density"

Input filename. The original filename which is going to be converted in the format
specified in `OutputFormat`. It is going to convert various files, it should
only contain the beginning of the name. For instance, in the case of the restart
files, it should be one space ' '.

**ConvertFolder**
*Section*: Utilities::oct-convert
*Type*: string

The folder name where the input files are. The default is
`td.` if `ConvertIterateFolder = true`, otherwise `restart`.

**ConvertHow**
*Section*: Utilities::oct-convert
*Type*: integer
*Default*: convert_format

Select how the mesh function will be converted.
*Options*:

**format**: The format of the mesh function will be convert from the binary file.obf. The format of the output function is set by OutputHow variable.**fourier_transform**: A fourier transform of the mesh function will be computed. It requieres that ConvertStart and ConvertEnd have to be set.**operation**: Convert utility will generate a new mesh function constructed by linear combination of scalar function of different mesh functions,

**ConvertIterateFolder**
*Section*: Utilities::oct-convert
*Type*: logical
*Default*: true

This variable decides if a folder is going to be iterated or the
filename is going to be iterated.

**ConvertOutputFilename**
*Section*: Utilities::oct-convert
*Type*: string
*Default*: "density"

Output filename. The name of the file in which the converted mesh function will be
written in the format specified in `OutputFormat`.

**ConvertOutputFolder**
*Section*: Utilities::oct-convert
*Type*: string

The folder name where the output files will be write. The default is
`convert`.

**ConvertReadSize**
*Section*: Utilities::oct-convert
*Type*: integer
*Default*: mesh%np

How many points are read at once. For the parallel run this has not been
yet tested, so it should be one. For the serial run, a number
of 100-1000 will speed-up the execution time by this factor.

**ConvertScalarOperation**
*Section*: Utilities::oct-convert
*Type*: block

This variable is used to generate a new mesh function as a linear combination
different mesh function having the same mesh. Each row defines an operation for
for a single mesh function.
The format of the block is the following:

'variable name' | 'folder' | 'file' | 'operation'

**ConvertStart**
*Section*: Utilities::oct-convert
*Type*: integer

The starting number of the filename or folder.
Default is 0 if `ConvertIterateFolder = true`, otherwise 1.

**ConvertStep**
*Section*: Utilities::oct-convert
*Type*: integer
*Default*: 1

The padding between the filenames or folder.

**ConvertSubtract**
*Section*: Utilities::oct-convert
*Type*: logical
*Default*: false

Decides if a reference file is going to be subtracted.

**ConvertSubtractFilename**
*Section*: Utilities::oct-convert
*Type*: string
*Default*: density

Input filename. The file which is going to subtracted to rest of the files.

**ConvertSubtractFolder**
*Section*: Utilities::oct-convert
*Type*: string
*Default*: .

The folder name which is going to be subtracted.

**LDBaderThreshold**
*Section*: Utilities::oct-local_multipoles
*Type*: float
*Default*: 0.01

This variable sets the threshold for the basins calculations. Recommended values:
0.01 -> intramolecular volumes; 0.2 -> intermolecular volumes

**LDEnd**
*Section*: Utilities::oct-local_multipoles
*Type*: integer
*Default*: 0

The last number of the filename or folder.

**LDExtraWrite**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: false

Writes additional information to files, when computing local multipoles. For
example, it writes coordinates of each local domain.

**LDFilename**
*Section*: Utilities::oct-local_multipoles
*Type*: string
*Default*: 'density'

Input filename. The original filename for the density which is going to be
fragmented into domains.

**LDFolder**
*Section*: Utilities::oct-local_multipoles
*Type*: string

The folder name where the density used as input file is.

**LDIonicDipole**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: yes

Describes if the ionic dipole has to be take into account
when computing the multipoles.

**LDIterateFolder**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: false

This variable decides if a folder is going to be iterated.

**LDMultipoleLmax**
*Section*: Utilities::oct-local_multipoles
*Type*: integer
*Default*: 1

Maximum electric multipole of the density output to the file `local.multipoles/<>domain%<>.multipoles`
during a time-dependent simulation. Must be non-negative.

**LDOutput**
*Section*: Utilities::oct-local_multipoles
*Type*: flag
*Default*: multipoles

Defines what should be output during the local domains
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.
*Options*:

**energy**: If set,`octopus`outputs the different components of the energy of the local domains to the folder`ld.general/energy`.**multipoles**: Outputs the (electric) multipole moments of the density to the file`ld.general/multipoles`. This is required to,*e.g.*, calculate optical absorption spectra of finite systems. The maximum value of \(l\) can be set with the variable`LDMultipoleLmax`.**density**: If set,`octopus`outputs the densities corresponding to the local domains to the folder`ld.general/densities`. The output format is set by the`LDOutputFormat`input variable.**local_v**: If set,`octopus`outputs the different components of the potential to the folder`ld.general/potential`. The output format is set by the`LDOutputFormat`input variable.

**LDOutputFormat**
*Section*: Utilities::oct-local_multipoles
*Type*: flag
*Default*: none

Describes the format of the output files (see `LDOutput`).
It can take the same values as `OutputFormat` flag.

**LDOverWrite**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: true

Controls whether to over-write existing files.

**LDRadiiFile**
*Section*: Utilities::oct-local_multipoles
*Type*: string
*Default*: 'default'

Full path for the radii file. If set, def_rsize will be reset to the new values.
This file should have the same format as share/PP/default.

**LDRestart**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: false

Restart information will be read from `LDRestartFolder`.

**LDRestartFolder**
*Section*: Utilities::oct-local_multipoles
*Type*: string
*Default*: "ld.general"

The folder name where the density used as input file is.

**LDStart**
*Section*: Utilities::oct-local_multipoles
*Type*: integer
*Default*: 0

The starting number of the filename or folder.

**LDStep**
*Section*: Utilities::oct-local_multipoles
*Type*: integer
*Default*: 1

The padding between the filenames or folder.

**LDUpdate**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: false

Controls if the calculation of the local domains is desired at each iteration.

**LDUseAtomicRadii**
*Section*: Utilities::oct-local_multipoles
*Type*: logical
*Default*: false

If set, atomic radii will be used to assign lone pairs to ion.

**LocalDomains**
*Section*: Utilities::oct-local_multipoles
*Type*: block

The LocalDomains are by definition part of the global grid. The domains are defined by
selecting a type shape. The domain box will be constructed using the given parameters.
A local domain could be construct by addition of several box centered on the ions.
The grid points inside this box will belong to the local domain.

The format of this block is the following:

` 'Label' | Shape | %< | Shape dependencies >% `

The first field is the label of the domain.
Label = string with the name of the new local domain.
The second is the shape type of the box used to define the domain.
Shape = SPHERE, CYLINDER, PARALLELEPIPED, MINIMUM, BADER.
Some types may need some parameters given in the remaining fields of the row.
(the valid options are detailed below).

`%LocalDomains
case(SPHERE): | rsize | %
case(CYLINDER): | rsize | xsize | %`

rsize: Radius in input length units

xsize: the length of the cylinder in the x-direction

origin coordinates: in input length units separated by |, where the box is centered.

lsize: half of the length of the parallelepiped in each direction.

center_list: string containing the list of atoms in xyz file for each domain in the form "2,16-23"

**PhotoelectronSpectrumOutput**
*Section*: Utilities::oct-photoelectron_spectrum
*Type*: flag
*Default*: none

Specifies what to output extracting the photoelectron cross-section informations.
When we use polar coordinates the zenith axis is set by vec (default is the first
laser field polarization vector), theta is the inclination angle measured from
vec (from 0 to \pi), and phi is the azimuthal angle on a plane perpendicular to
vec (from 0 to 2\pi).
Example: `energy_tot + velocity_map`
*Options*:

**energy_tot**: Output the energy-resolved photoelectron spectrum: E.**energy_angle**: Output the energy and angle resolved spectrum: (theta, E) The result is integrated over phi.**velocity_map_cut**: Velocity map on a plane orthogonal to pvec: (px, py). The allowed cutting planes (pvec) can only be parallel to the x,y,z=0 planes. Space is oriented so that the z-axis is along vec. Supports the -I option.**energy_xy**: Angle and energy-resolved spectrum on the inclination plane: (Ex, Ey). The result is integrated over ph;**energy_th_ph**: Ionization probability integrated on spherical cuts: (theta, phi).**velocity_map**: Full momentum-resolved ionization probability: (px, py, pz). The output format can be controlled with OutputHow and can be vtk or ncdf.**arpes**: Full ARPES for semi-periodic systems (vtk).**arpes_cut**: ARPES cut on a plane following a zero-weight path in reciprocal space.

**PhotoelectronSpectrumResolveStates**
*Section*: Utilities::oct-photoelectron_spectrum
*Type*: block

If yes calculate the photoelectron spectrum resolved in each K.S. state.
Optionally a range of states can be given as two slot block where the
first slot is the lower state index and the second is the highest one.
For example to calculate the spectra from state i to state j:

`%PhotoelectronSpectrumResolveStates
i | j
%`

**PropagationSpectrumDampFactor**
*Section*: Utilities::oct-propagation_spectrum
*Type*: float
*Default*: -1.0

If `PropagationSpectrumDampMode = exponential, gaussian`, the damping parameter of the exponential
is fixed through this variable.
Default value ensure that the damping function adquires a 0.0001 value at the end of the propagation time.

**PropagationSpectrumDampMode**
*Section*: Utilities::oct-propagation_spectrum
*Type*: integer

Decides which damping/filtering is to be applied in order to
calculate spectra by calculating a Fourier transform. The
default is polynomial damping, except when `SpectrumMethod = compressed_sensing`.
In that case the default is none.
*Options*:

**none**: No filtering at all.**exponential**: Exponential filtering, corresponding to a Lorentzian-shaped spectrum.**polynomial**: Third-order polynomial damping.**gaussian**: Gaussian damping.

**PropagationSpectrumEndTime**
*Section*: Utilities::oct-propagation_spectrum
*Type*: float
*Default*: -1.0 au

Processing is done for the given function in a time-window that ends at the
value of this variable. If set to a negative value, the maximum value from
the corresponding multipole file will used.

**PropagationSpectrumEnergyStep**
*Section*: Utilities::oct-propagation_spectrum
*Type*: float
*Default*: 0.01 eV

Sampling rate for the spectrum. If you supply a number equal or smaller than zero, then
the sampling rate will be \(2 \pi / T\), where \(T\) is the total propagation time.

**PropagationSpectrumMaxEnergy**
*Section*: Utilities::oct-propagation_spectrum
*Type*: float
*Default*: 20 eV

The Fourier transform is calculated for energies smaller than this value.

**PropagationSpectrumSigmaDiagonalization**
*Section*: Utilities::oct-propagation_spectrum
*Type*: logical
*Default*: .false.

If `PropagationSpectrumSigmaDiagonalization = yes`, the polarizability tensor is diagonalizied.
This variable is only used if the cross_section_tensor is computed.

**PropagationSpectrumStartTime**
*Section*: Utilities::oct-propagation_spectrum
*Type*: float
*Default*: 0.0

Processing is done for the given function in a time-window that starts at the
value of this variable.

**PropagationSpectrumSymmetrizeSigma**
*Section*: Utilities::oct-propagation_spectrum
*Type*: logical
*Default*: .false.

The polarizablity tensor has to be real and symmetric. Due to numerical accuracy,
that is not extricly conserved when computing it from different time-propations.
If `PropagationSpectrumSymmetrizeSigma = yes`, the polarizability tensor is
symmetrized before its diagonalizied.
This variable is only used if the cross_section_tensor is computed.

**PropagationSpectrumTransform**
*Section*: Utilities::oct-propagation_spectrum
*Type*: integer
*Default*: sine

Decides which transform to perform, if `SpectrumMethod = fourier`.
*Options*:

**laplace**: Real exponential transform: \(\int dt e^{-wt} f(t)\). Produces the real part of the polarizability at imaginary frequencies,*e.g.*for Van der Waals \(C_6\) coefficients. This is the only allowed choice for complex scaling.**sine**: Sine transform: \(\int dt \sin(wt) f(t)\). Produces the imaginary part of the polarizability.**cosine**: Cosine transform: \(\int dt \cos(wt) f(t)\). Produces the real part of the polarizability.

**PropagationSpectrumType**
*Section*: Utilities::oct-propagation_spectrum
*Type*: integer
*Default*: AbsorptionSpectrum

Type of spectrum to calculate.
*Options*:

**AbsorptionSpectrum**: Photoabsorption spectrum.**EnergyLossSpectrum**: Dynamic structure factor (also known as energy-loss function or spectrum).**DipolePower**: Power spectrum of the dipole moment.**RotatoryStrength**: Rotatory strength spectrum.

**SpectrumMethod**
*Section*: Utilities::oct-propagation_spectrum
*Type*: integer
*Default*: fourier

Decides which method is used to obtain the spectrum.
*Options*:

**fourier**: The standard Fourier transform. Further specified by`PropagationSpectrumTransform`.**compressed_sensing**: (Experimental) Uses the compressed sensing technique.

**SpectrumSignalNoise**
*Section*: Utilities::oct-propagation_spectrum
*Type*: float
*Default*: 0.0

For compressed sensing, the signal to process, the
time-dependent dipole in this case, is assumed to have some
noise that is given by this dimensionless quantity.

**TransientAbsorptionReference**
*Section*: Utilities::oct-propagation_spectrum
*Type*: string
*Default*: "."

In case of delayed kick, the calculation of the transient absorption requires
to substract a reference calculation, containing the gauge-field without the kick
This reference must be computed using GaugeFieldPropagate=yes and to have
TDOutput = gauge_field.
This variables defined the directory in which the reference gauge_field field is,
relative to the current folder

**TestHamiltonianApply**
*Section*: Utilities::oct-test
*Type*: integer
*Default*: term_all

Decides which part of the Hamiltonian is applied.
*Options*:

**term_all**: Apply the full Hamiltonian.**term_kinetic**: Apply only the kinetic operator**term_local_potential**: Apply only the local potential.**term_non_local_potential**: Apply only the non_local potential.

**TestMaxBlockSize**
*Section*: Utilities::oct-test
*Type*: integer
*Default*: 128

Some tests can work with multiple blocksizes, in this case of
range of blocksizes will be tested. This variable sets the lower
bound of that range.

Currently this variable is only used by the derivatives test.

**TestMinBlockSize**
*Section*: Utilities::oct-test
*Type*: integer
*Default*: 1

Some tests can work with multiple blocksizes, in this case of
range of blocksizes will be tested. This variable sets the lower
bound of that range.

Currently this variable is only used by the derivatives test.

**TestMode**
*Section*: Utilities::oct-test
*Type*: integer
*Default*: hartree

Decides what kind of test should be performed.
*Options*:

**hartree**: Tests the Poisson solvers used to calculate the Hartree potential.**derivatives**: Tests and benchmarks the implementation of the finite-difference operators, used to calculate derivatives.**orthogonalization**: Tests the implementation of the orthogonalization routines.**interpolation**: Test the interpolation routines.**ion_interaction**: Tests the ion-ion interaction routines.**projector**: Tests the code that applies the nonlocal part of the pseudopotentials in case of spin-orbit coupling**dft_u**: Tests the DFT+U part of the code for projections on the basis.**hamiltonian_apply**: Tests the application of the Hamiltonian, or a part of it

**TestRepetitions**
*Section*: Utilities::oct-test
*Type*: integer
*Default*: 1

This variable controls the behavior of oct-test for performance
benchmarking purposes. It sets the number of times the
computational kernel of a test will be executed, in order to
provide more accurate timings.

Currently this variable is used by the `hartree_test`,
`derivatives`, and `projector` tests.

**TestType**
*Section*: Utilities::oct-test
*Type*: integer
*Default*: all

Decides on what type of values the test should be performed.
*Options*:

**real**: Test for double-precision real functions.**complex**: Test for double-precision complex functions.**all**: Tests for double-precision real and complex functions.**real_single**: Test for single-precision real functions. (Only implemented for derivatives.)**complex_single**: Test for single-precision complex functions. (Only implemented for derivatives.)

**VibrationalSpectrumTime**
*Section*: Utilities::oct-vibrational_spectrum
*Type*: integer

This variable controls the maximum time for the calculation of
the velocity autocorrelation function. The default is the total
propagation time.

**VibrationalSpectrumTimeStepFactor**
*Section*: Utilities::oct-vibrational_spectrum
*Type*: integer
*Default*: 10

In the calculation of the vibrational spectrum, it is not necessary
to read the velocity at every time step. This variable controls
the integer factor between the simulation time step and the
time step used to calculate the vibrational spectrum.

**AnimationMultiFiles**
*Section*: Utilities::oct-xyz-anim
*Type*: logical
*Default*: false

If true, each iteration written will be in a separate file.

**AnimationSampling**
*Section*: Utilities::oct-xyz-anim
*Type*: integer
*Default*: 100

Sampling rate of the animation. The animation will be constructed using
the iteration numbers that are multiples of `AnimationSampling .
`