# Keywords¶

## Summary of all keywords¶

Constraints
Type: Block The Constraints block allows geometry optimizations and potential energy surface scans with constraints. The constraints do not have to be satisfied at the start of the calculation.
Angle
Type: String True Fix the angle between three atoms. Three atom indices followed by an angle in degrees.
Atom
Type: Integer True Fix the position of an atom. Just one integer referring to the index of the atom in the [System%Atoms] block.
Block
Type: String True Name of the block to contstrain as specified in the atom tag within the System%Atoms block.
BlockAtoms
Type: Integer List True List of atom indices for a block constraint, where the internal degrees of freedom are frozen.
Coordinate
Type: String True Fix a particular coordinate of an atom. Atom index followed by (x|y|z).
Dihedral
Type: String True Fix the dihedral angle between four atoms. Four atom indices followed by an angle in degrees.
Distance
Type: String True Fix the distance between two atoms. Two atom indices followed by the distance in Angstrom.
ElasticTensor
Type: Block Options for numerical evaluation of the elastic tensor.
MaxGradientForGeoOpt
Type: Float 0.0001 Hartree/Angstrom Maximum nuclear gradient for the relaxation of the internal degrees of freedom of strained systems.
Parallel
Type: Block The evaluation of the elastic tensor via numerical differentiation is an embarrassingly parallel problem. Double parallelization allows to split the available processor cores into groups working through all the available tasks in parallel, resulting in a better parallel performance. The keys in this block determine how to split the available processor cores into parallelly working groups.
nCoresPerGroup
Type: Integer Number of cores in each parallelly working group.
nGroups
Type: Integer Total number of processor groups. This is the number of tasks that will be executed in parallel.
nNodesPerGroup
Type: Integer Number of nodes in each group. This option should only be used on homogeneous compute clusters, where all used compute nodes have the same number of processor cores.
StrainStepSize
Type: Float 0.001 Step size (relative) of strain deformations used for computing the elastic tensor numerically.
Engine
Type: Block The input for the computational engine. The header of the block determines the type of the engine.
EngineDebugging
Type: Block This block contains some options useful for debugging the computational engines.
ForceContinousPES
Type: Bool False If this option is set, the engine will always run in contiuous PES mode. For many engines this disables the use of symmetry, as this one always leads to a discontinuous PES around the symmetric points: Basically there is jump in the PES at the point where the symmetry detection starts classifying the system as symmetric. Normally the continuous PES mode of the engine (often disabling the symmetry) is only used when doing numerical derivatives, but this flag forces the engine to continously run in this mode.
IgnoreGradientsRequest
Type: Bool False If this option is set, the engine will not do analytical gradients if asked for it, so that gradients will have to be evaluated numerically by AMS.
IgnoreStressTensorRequest
Type: Bool False If this option is set, the engine will not calculate an analytical stress tensor if asked for it, so that the stress tensor will have to be evaluated numerically by AMS.
RandomFailureChance
Type: Float 0.0 Makes the engine randomly report failures, even though the results are actually fine. Useful for testing error handling on the application level.
EngineRestart
Type: String The path to the file from which to restart the engine.
GeometryOptimization
Type: Block Configures details of the geometry optimization and transition state searches.
CalcPropertiesOnlyIfConverged
Type: Bool True Compute the properties requested in the ‘Properties’ block, e.g. Frequencies or Phonons, only if the optimization (or transition state search) converged. If False, the properties will be computed even if the optimization did not converge.
ConjugateGradients
Type: Block Configures details of the conjugate gradients geometry optimizer.
Step
Type: Block
MinRadius
Type: Float 0.0
TrustRadius
Type: Float 0.2 Initial value of the trust radius.
Convergence
Type: Block Convergence is monitored for two items: the energy and the Cartesian gradients. Convergence criteria can be specified separately for each of these items.
Energy
Type: Float 1e-05 Hartree The criterion for changes in the energy.
Gradients
Type: Float 0.001 Hartree/Angstrom The criterion for changes in the gradients.
Step
Type: Float 0.001 Angstrom The maximum Cartesian step allowed for a converged geometry.
CoordinateType
Type: Multiple Choice Auto [Auto, Delocalized, Cartesian] Select the type of coordinates in which to perform the optimization. If ‘Auto’, delocalized coordinates will be used for molecular systems, while cartesian coordinates will be used for periodic systems. Optimization in delocalized coordinates [Delocalized] can only be used for geometry optimizations or transition state searches of molecular systems with the Quasi-Newton method. The experimental SCMGO optimizer supports [Delocalized] coordinates for both molecular and periodic systems.
FIRE
Type: Block This block configures the details of the FIRE optimizer. The keywords name correspond the the symbols used in the article describing the method, see PRL 97, 170201 (2006).
NMin
Type: Integer 5 Number of steps after stopping before increasing the time step again.
alphaStart
Type: Float 0.1 Steering coefficient.
dtMax
Type: Float 1.25 Femtoseconds Maximum time step used for the integration.
dtStart
Type: Float 0.25 Femtoseconds Initial time step for the integration.
fAlpha
Type: Float 0.99 Reduction factor for the steering coefficient.
fDec
Type: Float 0.5 Reduction factor for reducing the time step in case of uphill movement.
fInc
Type: Float 1.1 Growth factor for the integration time step.
strainMass
Type: Float 0.5 Ficticious relative mass of the lattice degrees of freedom. This controls the stiffness of the lattice degrees of freedom relative to the atomic degrees of freedom, with smaller values resulting in a more aggressive optimization of the lattice.
InitialHessian
Type: Block Options for initial model Hessian when optimizing systems with either the Quasi-Newton or the SCMGO method.
File
Type: String KF file containing the initial Hessian. This can be used to load a Hessian calculated in a previously with the [Properties%Hessian] keyword.
Type
Type: Multiple Choice Auto [Auto, UnitMatrix, Swart, FromFile] Selects the type of the initial model Hessian, or load the Hessian from the results of a previous calulation.
KeepIntermediateResults
Type: Bool False Whether the full engine result files of all intermediate steps are stored on disk. By default only the last step is kept, and only if the geometry optimization converged. This can easily lead to huge amounts of data being stored on disk, but it can sometimes be convenient to closely monitor a tricky optimization, e.g. excited state optimizations going through conical intersections, etc. ...
MaxIterations
Type: Integer The maximum number of geometry iterations allowed to converge to the desired structure.
Method
Type: Multiple Choice Auto [Auto, Quasi-Newton, SCMGO, FIRE, ConjugateGradients] Select the optimization algorithm employed for the geometry relaxation. Currently supported are: the Hessian-based Quasi-Newton-type BFGS algorithm, the experimental SCMGO optimizer, the fast inertial relaxation method (FIRE), and the conjugate gradients method. The default is to choose an appropriate method automatically based on the engine’s speed, the system size and the supported optimization options.
OptimizeLattice
Type: Bool False Whether to also optimize the lattice for periodic structures. This is currently only supported with the Quasi-Newton and SCMGO optimizers.
Pressure
Type: Float 0.0 Optimize the structure under pressure (this will only have an effect if you are optimizing the lattice vectors). Currently only working in combination with the Quasi-Newton optimizer. For phase transitions you may consider disabling or breaking the symmetry.
PressureUnit
Type: Multiple Choice GPa [a.u., Pascal, GPa, atm, bar, kbar] The unit for pressure to be used for optimizations under pressure
Quasi-Newton
Type: Block Configures details of the Quasi-Newton geometry optimizer.
MaxGDIISVectors
Type: Integer 0 Sets the maximum number of GDIIS vectors. Setting this to a number >0 enables the GDIIS method.
Step
Type: Block
TrustRadius
Type: Float 0.2 Initial value of the trust radius.
SCMGO
Type: Block Configures details SCMGO.
ContractPrimitives
Type: Bool True Form non-redundant linear combinations of primitive coordinates sharing the same central atom
NumericalBMatrix
Type: Bool False Calculation of the B-matrix, i.e. Jacobian of internal coordinates in terms of numerical differentiations
Step
Type: Block
TrustRadius
Type: Float 0.2 Initial value of the trust radius.
VariableTrustRadius
Type: Bool True Whether or not the trust radius can be updated during the optimization.
logSCMGO
Type: Bool False Verbose output of SCMGO internal data
testSCMGO
Type: Bool False Run SCMGO in test mode.
LoadEngine
Type: String The path to the file from which to load the engine configuration. Replaces the Engine block.
LoadSystem
Type: Block Block that controls reading the chemical system from a KF file instead of the [System] block.
File
Type: String The path of the KF file from which to load the system.
Section
Type: String Molecule The section on the KF file from which to load the system.
MolecularDynamics
Type: Block Configures molecular dynamics (with the velocity-Verlet algorithm) with and without thermostats. This block allows to specify the details of the molecular dynamics calculation.
Barostat
Type: Block This block allows to specify the use of a barostat during the simulation.
BulkModulus
Type: Float 2200000000.0 Pascal An estimate of the bulk modulus (inverse compressibility) of the system for the Berendsen barostat. This is only used to make Tau correspond to the true observed relaxation time constant. Values are commonly on the order of 10-100 GPa (1e10 to 1e11) for solids and 1 GPa (1e9) for liquids (2.2e9 for water). Use 1e9 to match the behavior of standalone ReaxFF.
Duration
Type: Integer List Specifies how many steps should a transition from a particular pressure to the next one in sequence take.
Equal
Type: Multiple Choice None [None, XYZ, XY, YZ, XZ] Enforce equal scaling of the selected set of dimensions. They will be barostatted as one dimension according to the average pressure over the components.
Pressure
Type: Float List Pascal Specifies the target pressure.
Scale
Type: Multiple Choice XYZ [XYZ, Shape, X, Y, Z, XY, YZ, XZ] Dimensions that should be scaled by the barostat to maintain pressure. Selecting Shape means that all three dimensions and also all the cell angles are allowed to change.
Tau
Type: Float Femtoseconds Specifies the time constant of the barostat.
Type
Type: Multiple Choice None [None, Berendsen, MTK] Selects the type of the barostat.
CalcPressure
Type: Bool False Calculate the pressure in periodic systems. This may be computationally expensive for some engines that require numerical differentiation. Some other engines can calculate the pressure for negligible additional cost and will always do so, even if this option is disabled.
Checkpoint
Type: Block Sets the frequency for storing the entire MD state necessary for restarting the calculation.
Frequency
Type: Integer 1000 Write the MD state and engine-specific data to the respective .rkf files once every N steps.
InitialVelocities
Type: Block Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
File
Type: String AMS RKF file containing the initial velocities.
Temperature
Type: Float Kelvin Sets the temperature for the Maxwell-Boltzmann distribution when the type of the initial velocities is set to random, in which case specifying this key is mandatory. ADFinput will use the thermostat temperature as default.
Type
Type: Multiple Choice Random [Zero, Random, FromFile, Input] Specifies the initial velocities to assign to the atoms. Three methods to assign velocities are available. Zero: All atom are at rest at the beginning of the calculation. Random: Initial atom velocities follow a Maxwell-Boltzmann distribution for the temperature given by the [MolecularDynamics%InitialVelocities%Temperature] keyword. FromFile: Load the velocities from a previous ams result file. Input: Atom’s velocities are set to the values specified in the [MolecularDynamics%InitialVelocities%Values] block, which can be accessed via the Expert AMS panel in ADFinput.
Values
Type: Non-standard block This block specifies the velocity of each atom when [MolecularDynamics%InitialVelocities%Type] is set to Input. Each row must contain three floating point values (corresponding to the x,y,z component of the velocity vector) and a number of rows equal to the number of atoms must be present, given in the same order as the [System%Atoms] block.
NSteps
Type: Integer 1000 The number of steps to be taken in the MD simulation.
Preserve
Type: Block Periodically remove numerical drift accumulated during the simulation to preserve different whole-system parameters.
AngularMomentum
Type: Bool True Remove overall angular momentum of the system. This option is ignored for 3D-periodic systems.
CenterOfMass
Type: Bool False Translate the system to keep its center of mass at the coordinate origin. This option is not very useful for 3D-periodic systems.
Momentum
Type: Bool True Remove overall (linear) momentum of the system.
Print
Type: Block This block controls the printing of additional information to stdout.
System
Type: Bool False Print the chemical system before and after the simulation.
Velocities
Type: Bool False Print the atomic velocities before and after the simulation.
Restart
Type: String The path to the ams.rkf file from which to restart the simulation.
Thermostat
Type: Block True This block allows to specify the use of a thermostat during the simulation. Depending on the selected thermostat type, different additional options may be needed to characterize the specific thermostat’ behavior.
BerendsenApply
Type: Multiple Choice Global [Local, Global] Select how to apply the scaling correction for the Berendsen thermostat: - per-atom-velocity (Local) - on the molecular system as a whole (Global).
ChainLength
Type: Integer 10 Number of individual thermostats forming the NHC thermostat
Duration
Type: Integer List Specifies how many steps should a transition from a particular temperature to the next one in sequence take.
FirstAtom
Type: Integer 1 Index of the first atom to be thermostatted
LastAtom
Type: Integer 0 Index of the last atom to be thermostatted. A value of zero means the last atom in the system.
Tau
Type: Float Femtoseconds The time constant of the thermostat.
Temperature
Type: Float List Kelvin The target temperature of the thermostat.
Type
Type: Multiple Choice None [None, Berendsen, NHC] Selects the type of the thermostat.
TimeStep
Type: Float 0.25 Femtoseconds The time difference per step.
Trajectory
Type: Block Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.
SamplingFreq
Type: Integer 100 Write the the molecular geometry (and possibly other properties) to the .rkf file once every N steps.
NumericalDifferentiation
Type: Block Define options for numerical differentiations, that is the numerical calculation of gradients, Hessian and the stress tensor for periodic systems.
NuclearStepSize
Type: Float 0.0001 Bohr Step size for numerical nuclear gradient calculation.
Parallel
Type: Block Numerical differentiation is an embarrassingly parallel problem. Double parallelization allows to split the available processor cores into groups working through all the available tasks in parallel, resulting in a better parallel performance. The keys in this block determine how to split the available processor cores into parallelly working groups.
nCoresPerGroup
Type: Integer Number of cores in each parallelly working group.
nGroups
Type: Integer Total number of processor groups. This is the number of tasks that will be executed in parallel.
nNodesPerGroup
Type: Integer Number of nodes in each group. This option should only be used on homogeneous compute clusters, where all used compute nodes have the same number of processor cores.
StrainStepSize
Type: Float 0.001 Step size (relative) for numerical stress tensor calculation.
NumericalPhonons
Type: Block Configures details of a numerical phonons calculation.
DoubleSided
Type: Bool True By default a two-sided (or quadratic) numerical differentiation of the nuclear gradients is used. Using a single-sided (or linear) numerical differentiation is computationally faster but much less accurate. Note: In older versions of the program only the single-sided option was available.
Interpolation
Type: Integer 100 Use interpolation to generate smooth phonon plots.
NDosEnergies
Type: Integer 1000 Nr. of energies used to calculate the phonon DOS used to integrate thermodynamic properties. For fast compute engines this may become time limiting and smaller values can be tried.
Parallel
Type: Block Computing the phonons via numerical differentiation is an embarrassingly parallel problem. Double parallelization allows to split the available processor cores into groups working through all the available tasks in parallel, resulting in a better parallel performance. The keys in this block determine how to split the available processor cores into parallelly working groups. Keep in mind that the displacements for a phonon calculation are done on a super-cell system, so that every task requires more memory than the central point calculated using the primitive cell.
nCoresPerGroup
Type: Integer Number of cores in each parallelly working group.
nGroups
Type: Integer Total number of processor groups. This is the number of tasks that will be executed in parallel.
nNodesPerGroup
Type: Integer Number of nodes in each group. This option should only be used on homogeneous compute clusters, where all used compute nodes have the same number of processor cores.
StepSize
Type: Float 0.04 Angstrom Step size to be taken to obtain the force constants (second derivative) from the analytical gradients numerically.
SuperCell
Type: Non-standard block Used for the phonon run. The super lattice is expressed in the lattice vectors. Most people will find a diagonal matrix easiest to understand.
UseSymmetry
Type: Bool True Whether or not to exploit the symmetry of the system in the phonon calculation.
PESScan
Type: Block Configures the details of the potential energy surface scanning task.
CalcPropertiesAtPESPoints
Type: Bool False Whether to perform an additional calculation with properties on all the sampled points of the PES. If this option is enabled AMS will produce a separate engine output file for every sampled PES point.
FillUnconvergedGaps
Type: Bool True After the initial pass over the PES, restart the unconverged points from converged neighbouring points.
ScanCoordinate
Type: Block True Specifies a coordinate along which the potential energy surface is scanned. If this block contains multiple entries, these coordinates will be varied and scanned together as if they were one.
Angle
Type: String True Scan the angle between three atoms. Three atom indices followed by two real numbers delimiting the transit range in degrees.
Coordinate
Type: String True Scan a particular coordinate of an atom. Atom index followed by (x|y|z) followed by two real numbers delimiting the transit range.
Dihedral
Type: String True Scan the dihedral angle between four atoms. Four atom indices followed by two real numbers delimiting the transit angle in degrees.
Distance
Type: String True Scan the distance between two atoms. Two atom indices followed by two real numbers delimiting the transit distance in Angstrom.
nPoints
Type: Integer 10 The number of points along the scanned coordinate. Must be greater or equal 2.
Print
Type: Block This block controls the printing of additional information to stdout.
Timers
Type: Multiple Choice None [None, Normal, Detail, TooMuchDetail] Printing timing details to see how much time is spend in which part of the code.
Properties
Type: Block Configures which AMS level properties to calculate for SinglePoint calculations or other important geometries (e.g. at the end of an optimization).
ElasticTensor
Type: Bool False Whether or not to calculate the elastic tensor.
Gradients
Type: Bool False Whether or not to calculate the gradients.
Hessian
Type: Bool False Whether or not to calculate the Hessian.
NormalModes
Type: Bool False Whether or not to calculate the normal modes of vibration (and of molecules the corresponding Ir intensities.)
Other
Type: Bool True Other (engine specific) properties. Details are configured in the engine block.
Phonons
Type: Bool False Whether or not to calculate the phonons for periodic systems.
SelectedAtomsForHessian
Type: Integer List Compute the Hessian matrix elements only for the atoms defined in this list (index). If not specified, the Hessian will be computed for all atoms.
StressTensor
Type: Bool False Whether or not to calculate the stress tensor.
Symmetry
Type: Block Specifying details about the details of symmetry detection and usage.
Tolerance
Type: Float 1e-07 Tolerance used to detect symmetry in the system.
System
Type: Block Specification of the chemical system.
AtomMasses
Type: Non-standard block User defined atomic masses.
Atoms
Type: Non-standard block The atom types and coordinates. Unit can be specified in the header. Default unit is Angstrom.
BondOrders
Type: Non-standard block Defined bond orders. May by used by MM engines.
Charge
Type: Float 0.0 The system’s total charge in atomic units (only for non-periodic systems).
FractionalCoords
Type: Bool False Whether the atomic coordinates in the Atoms block are given in fractional coordinates of the lattice vectors. Requires the presence of the Lattice block.
GeometryFile
Type: String Read geometry from an file instead of Atoms and Lattice and blocks. Supported formats: .xyz
Lattice
Type: Non-standard block Up to three lattice vectors. Unit can be specified in the header. Default unit is Angstrom.
LatticeStrain
Type: Float List Deform the input system by the specified strain. The strain elements are in Voigt notation, so one should specify 6 numbers for 3D periodic system (order: xx,yy,zz,yz,xz,xy), 3 numbers for 2D periodic systems (order: xx,yy,xy) or 1 number for 1D periodic systems.
RandomizeCoordinates
Type: Float 0.0 Angstrom Apply a random noise to the atomic coordinates. This can be useful if you want to deviate from an ideal symmetric geometry.
RandomizeStrain
Type: Float 0.0 Apply a random strain to the system. This can be useful if you want to deviate from an ideal symmetric geometry, for example if you look for a phase change due to high pressure.
SuperCell
Type: Integer List Create a supercell of the input system (only possible for periodic systems). The integer numbers represent the diagonal elements of the supercell transformation; you should specify as many numbers as lattice vectors (i.e. 1 number for 1D, 2 numbers for 2D and 3 numbers for 3D periodic systems).
Task
Type: Multiple Choice [SinglePoint, GeometryOptimization, TransitionStateSearch, PESScan, MolecularDynamics] This key is used to specify the computational task to perform.
TransitionStateSearch
Type: Block Configures some details of the transition state search.
ModeToFollow
Type: Integer 1 In case of Transition State Search, here you can specify the index of the normal mode to follow (1 is the mode with the lowest frequency).
UseSymmetry
Type: Bool True Whether to use the system’s symmetry at the application level.