DegeneracyThreshold
Section: States
Type: float
Default: 1e-5
States with energy \(E_i\) and \(E_j\) will be considered degenerate
if \( \left| E_i - E_j \right| < \)DegeneracyThreshold.
ExcessCharge
Section: States
Type: float
Default: 0.0
The net charge of the system. A negative value means that we are adding
electrons, while a positive value means we are taking electrons
from the system.
ExtraStates
Section: States
Type: integer
Default: 0
The number of states is in principle calculated considering the minimum
numbers of states necessary to hold the electrons present in the system.
The number of electrons is
in turn calculated considering the nature of the species supplied in the
Species block, and the value of the ExcessCharge variable.
However, one may command Octopus to use more states, which is necessary if one wants to
use fractional occupational numbers, either fixed from the beginning through
the Occupations block or by prescribing
an electronic temperature with Smearing, or in order to calculate
excited states (including with CalculationMode = unocc).
ExtraStatesToConverge
Section: States
Type: integer
Default: 0
Only for unocc calculations.
Specifies the number of extra states that will be considered for reaching the convergence.
Together with ExtraStates, one can have some more states which will not be
considered for the convergence criteria, thus making the convergence of the
unocc calculation faster.
By default, all extra states need to be converged.
InitialSpins
Section: States
Type: block
The spin character of the initial random guesses for the spinors can
be fixed by making use of this block. Note that this will not "fix" the
the spins during the calculation (this cannot be done in spinors mode, in
being able to change the spins is why the spinors mode exists in the first
place).
This block is meaningless and ignored if the run is not in spinors mode
(SpinComponents = spinors).
The structure of the block is very simple: each column contains the desired
\(\left< S_x \right>, \left< S_y \right>, \left< S_z \right> \) for each spinor.
If the calculation is for a periodic system
and there is more than one k-point, the spins of all the k-points are
the same.
For example, if we have two spinors, and we want one in the \(S_x\) "down" state,
and another one in the \(S_x\) "up" state:
%InitialSpins
0.5 | 0.0 | 0.0
-0.5 | 0.0 | 0.0
%
WARNING: if the calculation is for a system described by pseudopotentials (as
opposed to user-defined potentials or model systems), this option is
meaningless since the random spinors are overwritten by the atomic orbitals.
This constraint must be fulfilled:
\( \left< S_x \right>^2 + \left< S_y \right>^2 + \left< S_z \right>^2 = \frac{1}{4} \)
MaxwellPlaneWavesInBox
Section: States
Type: logical
Default: no
Analytic evaluation of the incoming waves inside the box,
not doing any numerical propagation of Maxwells equations.
Occupations
Section: States
Type: block
The occupation numbers of the orbitals can be fixed through the use of this
variable. For example:
%Occupations
2 | 2 | 2 | 2 | 2
%
would fix the occupations of the five states to 2. There can be
at most as many columns as states in the calculation. If there are fewer columns
than states, then the code will assume that the user is indicating the occupations
of the uppermost states where all lower states have full occupation (i.e. 2 for spin-unpolarized
calculations, 1 otherwise) and all higher states have zero occupation. The first column
will be taken to refer to the lowest state such that the occupations would be consistent
with the correct total charge. For example, if there are 8 electrons and 10 states (from
ExtraStates = 6), then an abbreviated specification
%Occupations
1 | 0 | 1
%
would be equivalent to a full specification
%Occupations
2 | 2 | 2 | 1 | 0 | 1 | 0 | 0 | 0 | 0
%
This is an example of use for constrained density-functional theory,
crudely emulating a HOMO->LUMO+1 optical excitation.
The number of rows should be equal
to the number of k-points times the number of spins. For example, for a finite system
with SpinComponents == spin_polarized,
this block should contain two lines, one for each spin channel.
All rows must have the same number of columns.
The Occupations block is useful for the ground state of highly symmetric
small systems (like an open-shell atom), to fix the occupation numbers
of degenerate states in order to help octopus to converge. This is to
be used in conjuction with ExtraStates. For example, to calculate the
carbon atom, one would do:
ExtraStates = 2
%Occupations
2 | 2/3 | 2/3 | 2/3
%
If you want the calculation to be spin-polarized (which makes more sense), you could do:
ExtraStates = 2
%Occupations
2/3 | 2/3 | 2/3
0 | 0 | 0
%
Note that in this case the first state is absent, the code will calculate four states
(two because there are four electrons, plus two because ExtraStates = 2), and since
it finds only three columns, it will occupy the first state with one electron for each
of the spin options.
If the sum of occupations is not equal to the total charge set by ExcessCharge,
an error message is printed.
If FromScratch = no and RestartFixedOccupations = yes,
this block will be ignored.
OnlyUserDefinedInitialStates
Section: States
Type: logical
Default: no
If true, then only user-defined states from the block UserDefinedStates
will be used as initial states for a time-propagation. No attempt is made
to load ground-state orbitals from a previous ground-state run.
RestartFixedOccupations
Section: States
Type: logical
Default: no
Setting this variable will make the restart proceed as
if the occupations from the previous calculation had been set via the Occupations block,
i.e. fixed. Otherwise, occupations will be determined by smearing.
RestartReorderOccs
Section: States
Type: logical
Default: no
Consider doing a ground-state calculation, and then restarting with new occupations set
with the Occupations block, in an attempt to populate the orbitals of the original
calculation. However, the eigenvalues may reorder as the density changes, in which case the
occupations will now be referring to different orbitals. Setting this variable to yes will
try to solve this issue when the restart data is being read, by reordering the occupations
according to the order of the expectation values of the restart wavefunctions.
Smearing
Section: States
Type: float
Default: 0.1 eV
If Occupations is not set, Smearing is the
smearing width used in the SmearingFunction to distribute the electrons
among the existing states.
SmearingFunction
Section: States
Type: integer
Default: semiconducting
This is the function used to smear the electronic occupations.
It is ignored if the Occupations block is set.
Options:
SmearingMPOrder
Section: States
Type: integer
Default: 1
Sets the order of the Methfessel-Paxton smearing function.
SpinComponents
Section: States
Type: integer
Default: unpolarized
The calculations may be done in three different ways: spin-restricted (TD)DFT (i.e., doubly
occupied "closed shells"), spin-unrestricted or "spin-polarized" (TD)DFT (i.e. we have two
electronic systems, one with spin up and one with spin down), or making use of two-component
spinors.
Options:
StatesRandomization
Section: States
Type: integer
Default: par_independent
The randomization of states can be done in two ways:
i) a parallelisation independent way (default), where the random states are identical,
irrespectively of the number of tasks and
ii) a parallelisation dependent way, which can prevent linear dependency
to occur for large systems.
Options:
SymmetrizeDensity
Section: States
Type: logical
Default: no
When enabled the density is symmetrized. Currently, this can
only be done for periodic systems. (Experimental.)
TotalStates
Section: States
Type: integer
Default: 0
This variable sets the total number of states that Octopus will
use. This is normally not necessary since by default Octopus
sets the number of states to the minimum necessary to hold the
electrons present in the system. (This default behavior is
obtained by setting TotalStates to 0).
If you want to add some unoccupied states, probably it is more convenient to use the variable
ExtraStates.
TransformStates
Section: States
Type: block
Default: no
Before starting the td calculation, the initial states (that are
read from the restart/gs directory, which should have been
generated in a previous ground-state calculation) can be "transformed"
among themselves. The block TransformStates gives the transformation matrix
to be used. The number of rows and columns of the matrix should equal the number
of the states present in the time-dependent calculation (the independent
spin and k-point subspaces are all transformed equally); the number of
columns should be equal to the number of states present in the
restart/gs directory. This number may be different: for example,
one could have run previously in unocc mode in order to obtain unoccupied
Kohn-Sham states, and therefore restart/gs will contain more states.
These states can be used in the transformation.
Note that the code will not check the orthonormality of the new states!
Each line provides the coefficients of the new states, in terms of
the old ones. The coefficients are complex, but the imaginary part will be
ignored for real wavefunctions.
Note: This variable cannot be used when parallel in states.
UserDefinedStates
Section: States
Type: block
Instead of using the ground state as initial state for
time-propagations it might be interesting in some cases
to specify alternate states. Like with user-defined
potentials, this block allows you to specify formulas for
the orbitals at t=0.
Example:
%UserDefinedStates
1 | 1 | 1 | formula | "exp(-r^2)*exp(-i*0.2*x)" | normalize_yes
%
The first column specifies the component of the spinor,
the second column the number of the state and the third
contains k-point and spin quantum numbers. Column four
indicates that column five should be interpreted as a formula
for the corresponding orbital.
Alternatively, if column four states file the state will
be read from the file given in column five.
%UserDefinedStates
1 | 1 | 1 | file | "/path/to/file" | normalize_no
%
Octopus reads first the ground-state orbitals from
the restart/gs directory. Only the states that are
specified in the above block will be overwritten with
the given analytic expression for the orbital.
The sixth (optional) column indicates whether Octopus should renormalize
the orbital. The default (no sixth column given) is to renormalize.
Options:
DensitytoCalc
Section: States::ModelMB
Type: block
Choice of which particle density (event. matrices) will be calculated and output, in the
modelmb particles scheme.
%DensitytoCalc
"proton" | 1 | 10
"electron" | 2 | 15
%
would ask octopus to calculate the density matrix corresponding to the 1st
particle (whose coordinates correspond to dimensions 1 to ndim_modelmb),
which is an proton, then that corresponding to the 2nd particle
(electron with dimensions ndim_modelmb+1 to 2*ndim_modelmb), printing
10 natural orbitals for the first and 15 for the second.
%DensitytoCalc
"proton" | 1 | -1
"electron" | 2 | -1
%
would ask octopus to print out just the densities for particles 1 and 2
without any density matrix output.
DescribeParticlesModelmb
Section: States::ModelMB
Type: block
Characterization of different modelmb particles in space%dim dimensional space.
%DescribeParticlesModelmb
"proton" | 1 | 1800. | 1. | fermion
"proton" | 1 | 1800. | 1. | fermion
"electron" | 2 | 1. | 1. | fermion
%
would tell Octopus that there are presently 3 particles, called proton, proton,
and electron, with types 1, 1, and 2, and corresponding masses and charges.
All particles should be fermions, and this can be later enforced on the spatial
part of the wavefunctions.
The label and charge are presently only for informational purposes and
are not checked or used in Octopus. The interaction has to take the
actual charge into account.
Options:
NDimModelmb
Section: States::ModelMB
Type: integer
Default: 1
Number of dimensions for modelmb space.
Full Ndim = NDimModelmb*NParticleModelmb
NParticleModelmb
Section: States::ModelMB
Type: integer
Default: 0
Number of particles in modelmb space.
Full Ndim = NDimModelmb*NParticleModelmb
NTypeParticleModelmb
Section: States::ModelMB
Type: integer
Default: 1
Number of different types of particles in modelmb space.