# Keywords¶

## Links to manual entries¶

## Summary of all keywords¶

`Constraints`

Type: Block Description: 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 Recurring: True Description: Fix the angle between three atoms. Three atom indices followed by an angle in degrees. `Atom`

Type: Integer Recurring: True Description: Fix the position of an atom. Just one integer referring to the index of the atom in the [System%Atoms] block. `Block`

Type: String Recurring: True Description: Name of the block to contstrain as specified in the atom tag within the System%Atoms block. `BlockAtoms`

Type: Integer List Recurring: True Description: List of atom indices for a block constraint, where the internal degrees of freedom are frozen. `Coordinate`

Type: String Recurring: True Description: Fix a particular coordinate of an atom. Atom index followed by (x|y|z). `Dihedral`

Type: String Recurring: True Description: Fix the dihedral angle between four atoms. Four atom indices followed by an angle in degrees. `Distance`

Type: String Recurring: True Description: Fix the distance between two atoms. Two atom indices followed by the distance in Angstrom.

`ElasticTensor`

Type: Block Description: Options for numerical evaluation of the elastic tensor. `MaxGradientForGeoOpt`

Type: Float Default value: 0.0001 Unit: Hartree/Angstrom Description: Maximum nuclear gradient for the relaxation of the internal degrees of freedom of strained systems. `Parallel`

Type: Block Description: 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 Description: Number of cores in each parallelly working group. `nGroups`

Type: Integer Description: Total number of processor groups. This is the number of tasks that will be executed in parallel. `nNodesPerGroup`

Type: Integer Description: 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 Default value: 0.001 Description: Step size (relative) of strain deformations used for computing the elastic tensor numerically.

`Engine`

Type: Block Description: The input for the computational engine. The header of the block determines the type of the engine. `EngineDebugging`

Type: Block Description: This block contains some options useful for debugging the computational engines. `ForceContinousPES`

Type: Bool Default value: False Description: 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 Default value: False Description: 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 Default value: False Description: 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 Default value: 0.0 Description: 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 Description: The path to the file from which to restart the engine. `GeometryOptimization`

Type: Block Description: Configures details of the geometry optimization and transition state searches. `CalcPropertiesOnlyIfConverged`

Type: Bool Default value: True Description: 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 Description: Configures details of the conjugate gradients geometry optimizer. `Step`

Type: Block Description: `MinRadius`

Type: Float Default value: 0.0 Description: `TrustRadius`

Type: Float Default value: 0.2 Description: Initial value of the trust radius.

`Convergence`

Type: Block Description: 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 Default value: 1e-05 Unit: Hartree Description: The criterion for changes in the energy. `Gradients`

Type: Float Default value: 0.001 Unit: Hartree/Angstrom Description: The criterion for changes in the gradients. `Step`

Type: Float Default value: 0.001 Unit: Angstrom Description: The maximum Cartesian step allowed for a converged geometry.

`CoordinateType`

Type: Multiple Choice Default value: Auto Options: [Auto, Delocalized, Cartesian] Description: 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 Description: 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 Default value: 5 Description: Number of steps after stopping before increasing the time step again. `alphaStart`

Type: Float Default value: 0.1 Description: Steering coefficient. `dtMax`

Type: Float Default value: 1.25 Unit: Femtoseconds Description: Maximum time step used for the integration. `dtStart`

Type: Float Default value: 0.25 Unit: Femtoseconds Description: Initial time step for the integration. `fAlpha`

Type: Float Default value: 0.99 Description: Reduction factor for the steering coefficient. `fDec`

Type: Float Default value: 0.5 Description: Reduction factor for reducing the time step in case of uphill movement. `fInc`

Type: Float Default value: 1.1 Description: Growth factor for the integration time step. `strainMass`

Type: Float Default value: 0.5 Description: 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 Description: Options for initial model Hessian when optimizing systems with either the Quasi-Newton or the SCMGO method. `File`

Type: String Description: 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 Default value: Auto Options: [Auto, UnitMatrix, Swart, FromFile] Description: Selects the type of the initial model Hessian, or load the Hessian from the results of a previous calulation.

`KeepIntermediateResults`

Type: Bool Default value: False Description: 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 Description: The maximum number of geometry iterations allowed to converge to the desired structure. `Method`

Type: Multiple Choice Default value: Auto Options: [Auto, Quasi-Newton, SCMGO, FIRE, ConjugateGradients] Description: 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 Default value: False Description: Whether to also optimize the lattice for periodic structures. This is currently only supported with the Quasi-Newton and SCMGO optimizers. `Pressure`

Type: Float Default value: 0.0 Description: 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 Default value: GPa Options: [a.u., Pascal, GPa, atm, bar, kbar] Description: The unit for pressure to be used for optimizations under pressure `Quasi-Newton`

Type: Block Description: Configures details of the Quasi-Newton geometry optimizer. `MaxGDIISVectors`

Type: Integer Default value: 0 Description: Sets the maximum number of GDIIS vectors. Setting this to a number >0 enables the GDIIS method. `Step`

Type: Block Description: `TrustRadius`

Type: Float Default value: 0.2 Description: Initial value of the trust radius.

`SCMGO`

Type: Block Description: Configures details SCMGO. `ContractPrimitives`

Type: Bool Default value: True Description: Form non-redundant linear combinations of primitive coordinates sharing the same central atom `NumericalBMatrix`

Type: Bool Default value: False Description: Calculation of the B-matrix, i.e. Jacobian of internal coordinates in terms of numerical differentiations `Step`

Type: Block Description: `TrustRadius`

Type: Float Default value: 0.2 Description: Initial value of the trust radius. `VariableTrustRadius`

Type: Bool Default value: True Description: Whether or not the trust radius can be updated during the optimization.

`logSCMGO`

Type: Bool Default value: False Description: Verbose output of SCMGO internal data `testSCMGO`

Type: Bool Default value: False Description: Run SCMGO in test mode.

`LoadEngine`

Type: String Description: The path to the file from which to load the engine configuration. Replaces the Engine block. `LoadSystem`

Type: Block Description: Block that controls reading the chemical system from a KF file instead of the [System] block. `File`

Type: String Description: The path of the KF file from which to load the system. `Section`

Type: String Default value: Molecule Description: The section on the KF file from which to load the system.

`MolecularDynamics`

Type: Block Description: 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 Description: This block allows to specify the use of a barostat during the simulation. `BulkModulus`

Type: Float Default value: 2200000000.0 Unit: Pascal Description: 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 Description: Specifies how many steps should a transition from a particular pressure to the next one in sequence take. `Equal`

Type: Multiple Choice Default value: None Options: [None, XYZ, XY, YZ, XZ] Description: 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 Unit: Pascal Description: Specifies the target pressure. `Scale`

Type: Multiple Choice Default value: XYZ Options: [XYZ, Shape, X, Y, Z, XY, YZ, XZ] Description: 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 Unit: Femtoseconds Description: Specifies the time constant of the barostat. `Type`

Type: Multiple Choice Default value: None Options: [None, Berendsen, MTK] Description: Selects the type of the barostat.

`CalcPressure`

Type: Bool Default value: False Description: 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 Description: Sets the frequency for storing the entire MD state necessary for restarting the calculation. `Frequency`

Type: Integer Default value: 1000 Description: Write the MD state and engine-specific data to the respective .rkf files once every N steps.

`InitialVelocities`

Type: Block Description: Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file. `File`

Type: String Description: AMS RKF file containing the initial velocities. `Temperature`

Type: Float Unit: Kelvin Description: 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 Default value: Random Options: [Zero, Random, FromFile, Input] Description: 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 Description: 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 Default value: 1000 Description: The number of steps to be taken in the MD simulation. `Preserve`

Type: Block Description: Periodically remove numerical drift accumulated during the simulation to preserve different whole-system parameters. `AngularMomentum`

Type: Bool Default value: True Description: Remove overall angular momentum of the system. This option is ignored for 3D-periodic systems. `CenterOfMass`

Type: Bool Default value: False Description: 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 Default value: True Description: Remove overall (linear) momentum of the system.

`Print`

Type: Block Description: This block controls the printing of additional information to stdout. `System`

Type: Bool Default value: False Description: Print the chemical system before and after the simulation. `Velocities`

Type: Bool Default value: False Description: Print the atomic velocities before and after the simulation.

`Restart`

Type: String Description: The path to the ams.rkf file from which to restart the simulation. `Thermostat`

Type: Block Recurring: True Description: 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 Default value: Global Options: [Local, Global] Description: 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 Default value: 10 Description: Number of individual thermostats forming the NHC thermostat `Duration`

Type: Integer List Description: Specifies how many steps should a transition from a particular temperature to the next one in sequence take. `FirstAtom`

Type: Integer Default value: 1 Description: Index of the first atom to be thermostatted `LastAtom`

Type: Integer Default value: 0 Description: Index of the last atom to be thermostatted. A value of zero means the last atom in the system. `Tau`

Type: Float Unit: Femtoseconds Description: The time constant of the thermostat. `Temperature`

Type: Float List Unit: Kelvin Description: The target temperature of the thermostat. `Type`

Type: Multiple Choice Default value: None Options: [None, Berendsen, NHC] Description: Selects the type of the thermostat.

`TimeStep`

Type: Float Default value: 0.25 Unit: Femtoseconds Description: The time difference per step. `Trajectory`

Type: Block Description: Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file. `SamplingFreq`

Type: Integer Default value: 100 Description: Write the the molecular geometry (and possibly other properties) to the .rkf file once every N steps.

`NumericalDifferentiation`

Type: Block Description: Define options for numerical differentiations, that is the numerical calculation of gradients, Hessian and the stress tensor for periodic systems. `NuclearStepSize`

Type: Float Default value: 0.0001 Unit: Bohr Description: Step size for numerical nuclear gradient calculation. `Parallel`

Type: Block Description: 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 Description: Number of cores in each parallelly working group. `nGroups`

Type: Integer Description: Total number of processor groups. This is the number of tasks that will be executed in parallel. `nNodesPerGroup`

Type: Integer Description: 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 Default value: 0.001 Description: Step size (relative) for numerical stress tensor calculation.

`NumericalPhonons`

Type: Block Description: Configures details of a numerical phonons calculation. `DoubleSided`

Type: Bool Default value: True Description: 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 Default value: 100 Description: Use interpolation to generate smooth phonon plots. `NDosEnergies`

Type: Integer Default value: 1000 Description: 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 Description: 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 Description: Number of cores in each parallelly working group. `nGroups`

Type: Integer Description: Total number of processor groups. This is the number of tasks that will be executed in parallel. `nNodesPerGroup`

Type: Integer Description: 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 Default value: 0.04 Unit: Angstrom Description: Step size to be taken to obtain the force constants (second derivative) from the analytical gradients numerically. `SuperCell`

Type: Non-standard block Description: 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 Default value: True Description: Whether or not to exploit the symmetry of the system in the phonon calculation.

`PESScan`

Type: Block Description: Configures the details of the potential energy surface scanning task. `CalcPropertiesAtPESPoints`

Type: Bool Default value: False Description: 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 Default value: True Description: After the initial pass over the PES, restart the unconverged points from converged neighbouring points. `ScanCoordinate`

Type: Block Recurring: True Description: 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 Recurring: True Description: Scan the angle between three atoms. Three atom indices followed by two real numbers delimiting the transit range in degrees. `Coordinate`

Type: String Recurring: True Description: 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 Recurring: True Description: Scan the dihedral angle between four atoms. Four atom indices followed by two real numbers delimiting the transit angle in degrees. `Distance`

Type: String Recurring: True Description: Scan the distance between two atoms. Two atom indices followed by two real numbers delimiting the transit distance in Angstrom. `nPoints`

Type: Integer Default value: 10 Description: The number of points along the scanned coordinate. Must be greater or equal 2.

`Print`

Type: Block Description: This block controls the printing of additional information to stdout. `Timers`

Type: Multiple Choice Default value: None Options: [None, Normal, Detail, TooMuchDetail] Description: Printing timing details to see how much time is spend in which part of the code.

`Properties`

Type: Block Description: 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 Default value: False Description: Whether or not to calculate the elastic tensor. `Gradients`

Type: Bool Default value: False Description: Whether or not to calculate the gradients. `Hessian`

Type: Bool Default value: False Description: Whether or not to calculate the Hessian. `NormalModes`

Type: Bool Default value: False Description: Whether or not to calculate the normal modes of vibration (and of molecules the corresponding Ir intensities.) `Other`

Type: Bool Default value: True Description: Other (engine specific) properties. Details are configured in the engine block. `Phonons`

Type: Bool Default value: False Description: Whether or not to calculate the phonons for periodic systems. `SelectedAtomsForHessian`

Type: Integer List Description: 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 Default value: False Description: Whether or not to calculate the stress tensor.

`Symmetry`

Type: Block Description: Specifying details about the details of symmetry detection and usage. `Tolerance`

Type: Float Default value: 1e-07 Description: Tolerance used to detect symmetry in the system.

`System`

Type: Block Description: Specification of the chemical system. `AtomMasses`

Type: Non-standard block Description: User defined atomic masses. `Atoms`

Type: Non-standard block Description: The atom types and coordinates. Unit can be specified in the header. Default unit is Angstrom. `BondOrders`

Type: Non-standard block Description: Defined bond orders. May by used by MM engines. `Charge`

Type: Float Default value: 0.0 Description: The system’s total charge in atomic units (only for non-periodic systems). `FractionalCoords`

Type: Bool Default value: False Description: 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 Description: Read geometry from an file instead of Atoms and Lattice and blocks. Supported formats: .xyz `Lattice`

Type: Non-standard block Description: Up to three lattice vectors. Unit can be specified in the header. Default unit is Angstrom. `LatticeStrain`

Type: Float List Description: 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 Default value: 0.0 Unit: Angstrom Description: 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 Default value: 0.0 Description: 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 Description: 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 Options: [SinglePoint, GeometryOptimization, TransitionStateSearch, PESScan, MolecularDynamics] Description: This key is used to specify the computational task to perform. `TransitionStateSearch`

Type: Block Description: Configures some details of the transition state search. `ModeToFollow`

Type: Integer Default value: 1 Description: 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 Default value: True Description: Whether to use the system’s symmetry at the application level.