ComplexBoundaries
Section: System
Type: logical
Default: no
(Experimental) If enabled the system will have complex
boundaries defined by an electrostatic potential. Must be
used with the SETE poisson solver.
Dimensions
Section: System
Type: integer
Default: 3
Octopus can run in 1, 2 or 3 dimensions, depending on the value of this
variable. Note that not all input variables may be available in all cases.
PeriodicDimensions
Section: System
Type: integer
Define how many directions are to be considered periodic. It has to be a number
between zero and Dimensions.
(WARNING: For systems that are periodic in 1D and 2D, interaction between ions is assumed to be periodic in 3D.
This affects the calculation of total energy and forces.)
Options:
Coordinates
Section: System::Coordinates
Type: block
If neither XYZCoordinates nor PDBCoordinates was found, Octopus
tries to read the coordinates for the atoms from the block Coordinates. The
format is quite straightforward:
%Coordinates
'C' | -0.56415 | 0.0 | 0.0 | no
'O' | 0.56415 | 0.0 | 0.0 | no
%
The first line defines a carbon atom at coordinates (-0.56415, 0.0, 0.0),
that is not allowed to move during dynamical simulations. The second line has
a similar meaning. This block obviously defines a carbon monoxide molecule, if the
input units are eV_Angstrom. The number of coordinates for each species
must be equal to the dimension of your space (generally 3).
Note that in this way it is possible to fix some of the atoms (this
is not possible when specifying the coordinates through a PDBCoordinates or
XYZCoordinates file). The last column is optional, and the default is yes.
It is always possible to fix all atoms using the MoveIons directive.
PDBCoordinates
Section: System::Coordinates
Type: string
If this variable is present, the program tries to read the atomic coordinates
from the file specified by its value. The PDB (Protein Data Bank,
http://www.rcsb.org/pdb/) format is quite complicated, and it goes
well beyond the scope of this manual. You can find a comprehensive
description here.
From the plethora of instructions defined in the PDB standard, Octopus
only reads two, ATOM and HETATOM. From these fields, it reads:
ReducedCoordinates
Section: System::Coordinates
Type: block
This block gives the atomic coordinates relative to the real
space unit cell. The format is the same as the
Coordinates block.
Note that in Octopus the origin of coordinates is in the center
of the cell, so the coordinates inside the cell are in the
range [-0.5, 0.5).
This block cannot be used with the minimum box shape.
XYZCoordinates
Section: System::Coordinates
Type: string
If PDBCoordinates is not present, the program reads the atomic coordinates from
the XYZ file specified by the variable XYZCoordinates -- in case this variable
is present. The XYZ format is very simple: The first line of the file has an integer
indicating the number of atoms. The second can contain comments that are simply ignored by
Octopus. Then there follows one line per atom, containing the chemical species and
the Cartesian coordinates of the atom.
NOTE: The coordinates are treated in the units specified by Units and/or UnitsInput.
IonicInteraction
Section: System::Species
Type: block
This block defines the type of classical interaction between
ions. Each line represents the interaction between two types of
species. The first two columns contain the element symbols, the
next column is the type of interaction as defined below. The
next columns are the parameters for the interaction (if
any). Pairs not specified interact through Coulomb`s law.
Note: In most cases there is no need to specify this block,
since Coulomb interaction will be used by default.
Options:
Species
Section: System::Species
Type: block
A species is by definition either an "ion" (nucleus + core electrons) described
through a pseudopotential, or a user-defined model potential.
Note that some common pseudopotentials are distributed with the code in the
directory OCTOPUS-HOME/share/PP/. To use these pseudopotentials you are
not required to define them explicitly in the Species block, as defaults
are provided by the program (you can override these defaults in any case).
Additional pseudopotentials can be downloaded from the
octopus homepage.
The format of this block is the following: The first field is
the name of the species. The second is the atomic mass (in atomic mass
units). The third defines the type of species (the valid options
are detailed below). The fourth is the atomic number (or valence charge for non-atomic species).
Some types may need some parameters given in the remaining fields of the row.
In 3D, e.g.
%Species
'O' | 15.9994 | spec_ps_psf | 8 | 1 | 1
'H' | 1.0079 | spec_ps_hgh | 1 | 0 | 0
'jlm' | 23.2 | spec_jelli | 8 | 5.0
'rho' | 17.0 | spec_charge_density | 6 | "exp(-r/a)"
'pnt' | 32.3 | spec_point | 2.0
'udf' | 0.0 | spec_user_defined | 8 | "1/2*r^2"
'H_all' | 1.0079 | spec_full_delta | 1
'H_all' | 1.0079 | spec_full_gaussian | 1
%
Additionally, all the pseudopotential types (PSF, HGH, FHI, UPF) can take two extra
fields: default spacing, and default radius (used for minimum simulation box if the
radius is not specified).
Options:
SpeciesProjectorSphereThreshold
Section: System::Species
Type: float
Default: 0.001
The pseudopotentials may be composed of a local part, and a linear combination of nonlocal
operators. These nonlocal projectors have "projector" form, |v><v| (or, more generally
speaking, |u><v|). These projectors are localized in real space -- that is, the function v
has a finite support around the nucleus. This region where the projectors are localized should
be small or else the computation time required to operate with them will be very large.
In practice, this localization is fixed by requiring the definition of the projectors to be
contained in a sphere of a certain radius. This radius is computed by making sure that the
absolute value of the projector functions, at points outside the localization sphere, is
below a certain threshold. This threshold is set by SpeciesProjectorSphereThreshold.
SpeciesTimeDependent
Section: System::Species
Type: logical
Default: no
When this variable is set, the potential defined in the block Species is calculated
and applied to the Hamiltonian at each time step. You must have at least one spec_user_defined
type of species to use this.
RandomVelocityTemp
Section: System::Velocities
Type: float
If this variable is present, Octopus will assign random
velocities to the atoms following a Boltzmann distribution with
temperature given by RandomVelocityTemp (in degrees Kelvin).
Velocities
Section: System::Velocities
Type: block
If XYZVelocities is not present, octopus will try to fetch the initial
atomic velocities from this block. If this block is not present, octopus
will reset the initial velocities to zero. The format of this block can be
illustrated by this example:
%Velocities
'C' | -1.7 | 0.0 | 0.0
'O' | 1.7 | 0.0 | 0.0
%
It describes one carbon and one oxygen moving at the relative
velocity of 3.4 velocity units.
Note: It is important for the velocities to maintain the ordering
in which the species were defined in the coordinates specifications.
XYZVelocities
Section: System::Velocities
Type: string
Octopus will try to read the starting velocities of the atoms from the XYZ file
specified by the variable XYZVelocities.
Note that you do not need to specify initial velocities if you are not going
to perform ion dynamics; if you are going to allow the ions to move but the velocities
are not specified, they are considered to be null.