Coordinates
Name Coordinates
Section System::Coordinates
Type block
If XYZCoordinates, PDBCoordinates, and XSFCoordinates were not 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.
Name PDBClassical
Section System::Coordinates
Type string
If this variable is present, the program tries to read the atomic coordinates for classical atoms.
from the file specified by its value. The same as PDBCoordinates, except that the
classical charge colum must be present. The interaction from the
classical atoms is specified by ClassicalPotential, for QM/MM calculations.
Not available in periodic systems.
Name 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)
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:
- columns 13-16: The species; in fact Octopus only cares about the first letter - CA and CB will both refer to carbon - so elements whose chemical symbol has more than one letter cannot be represented in this way. So, if you want to run mercury (Hg), please use one of the other methods to input the coordinates.
- columns 18-21: The residue. Ignored.
- columns 31-54: The Cartesian coordinates. The Fortran format is (3f8.3).
- columns 61-65: Classical charge of the atom. Required if reading classical atoms, ignored otherwise. The Fortran format is (f6.2).
Name 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.
Name XSFCoordinates
Section System::Coordinates
Type string
Another option besides PDB and XYZ coordinates formats is XSF, as defined
by the XCrySDen visualization program. Specify the filename with this variable.
The lattice vectors will also be read from this file and the value of
PeriodicDimensions needs to be compatible with the first line
(CRYSTAL, SLAB, POLYMER, or MOLECULE).
The file should not contain ATOMS, CONVVEC, or PRIMCOORD.
NOTE: The coordinates are treated in the units specified by Units and/or UnitsInput.
Name XSFCoordinatesAnimStep
Section System::Coordinates
Type integer
Default 1
If an animated file is given with XSFCoordinates, this variable selects which animation step
will be used. The PRIMVEC block must be written for each step.
Name 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.
If you want to specify the unit of the XYZ file, you can use the variable UnitsXYZFiles.