Keywords
********


Links to manual entries
=======================

**ams:**

* BondOrders

* Constraints

* ElasticTensor

* Engine

* EngineAddons

* EngineDebugging

* EngineRestart

* ExitCondition

* GCMC

* GeometryOptimization

* IRC

* LoadEngine

* LoadSystem

* MolecularDynamics

* Molecules

* NEB

* NormalModes

* NumericalDifferentiation

* NumericalPhonons

* PESExploration

* PESPointCharacter

* PESScan

* Print

* Properties

* Raman

* Replay

* Restraints

* Symmetry

* System

* System > ElectrostaticEmbedding

* System > Modify

* Task

* Thermo

* TransitionStateSearch

* UseSymmetry

* VibrationalAnalysis > NormalModes > ModeSelect

**ams_interactive:**

* Stop

* StopProperties

**amsbatch:**

* SystemsFromConformers

* SystemsFromSMILES

* SystemsFromTrajectory

**analysis:**

* AutoCorrelation

* AverageBinPlot

* Histogram

* Histogram > Axes > Axis > Atoms

* Histogram > Axes > Axis > VecElements

* MeanSquareDisplacement

* RadialDistribution

* Task

* TrajectoryInfo

**conformers:**

* Equivalence

* Expander

* Filter

* Generator

* GeometryOptimization

* InputConformersSet

* InputMaxConfs

* InputMaxEnergy

* Output

* RNGSeed

* Task

**forcefield:**

* ReuseTypeInfo

**pipe:**

* WorkerCommand


Summary of all keywords
=======================


ams
---

"BondOrders"
   Type:
      Block

   Description:
      Configures details regarding the calculation/guessing of bond
      orders. To request the calculation of bond orders, use the
      'Properties%BondOrders' key.

   "Method"
      Type:
         Multiple Choice

      Default value:
         EngineWithGuessFallback

      Options:
         [Engine, Guess, EngineWithGuessFallback]

      Description:
         How to compute the bond orders when they are requested via
         the 'Properties%BondOrders' key.

         'Engine': let the engine compute the bond orders. The
         specific method used to compute the bond orders depends on
         the engine selected, and it may be configurable in the
         engine's input. Note: the calculation may stop if the engine
         cannot compute bond orders.

         'Guess': Use a bond guessing algorithm based on the system's
         geometry. This is the same algorithm that is used by the
         Graphical User Interface to guess bonds.

         'EngineWithGuessFallback': let the engine compute the bond
         orders (same as in 'Engine' option) but if the engine did not
         produce any bond orders, use the bond guessing algorithm as a
         fallback option.

"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.

   "All"
      Type:
         String

      Recurring:
         True

      Description:
         Fix multiple distances using one the following formats:

         All [bondOrder] bonds at1 at2 [to distance]

         All triangles at1 at2 at3

         The first option constrains all bonds between atoms at1 at2
         to a certain length, while the second - bonds at1-at2 and
         at2-at3 as well as the angle between them.

         The [bondOrder] can be a number or a string such as single,
         double, triple or aromatic. If it's omitted then any bond
         between specified atoms will be constrained. Atom names are
         case-sensitive and they must be as they are in the Atoms
         block, or an asterisk '*' denoting any atom. If the distance
         is omitted then the bond length from the initial geometry is
         used.

         Important: only the bonds present in the system at the start
         of the simulation can be constrained, which means that the
         bonds may need to be specified in the System block.

         Valid examples:

         All single bonds C C to 1.4

         All bonds O H to 0.98

         All bonds O H

         All bonds H *

         All triangles H * H

   "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.

   "AtomList"
      Type:
         Integer List

      Recurring:
         True

      Description:
         Fix positions of the specified atoms. A list of integers
         referring to indices of atoms in the [System%Atoms] block.

   "Block"
      Type:
         String

      Recurring:
         True

      Description:
         Name of the region to constrain as a rigid block. Regions are
         specified in 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).

   "DifDist"
      Type:
         String

      Recurring:
         True

      Description:
         Four atom indices i j k l followed by the distance in
         Angstrom. This will constrain the difference R(ij)-R(kl) at
         the given value.

   "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.

   "EqualStrain"
      Type:
         String

      Description:
         Exclusively for lattice optimizations:

         Accepts a set of strain components [xx, xy, xz, yy, yz, zz]
         which are to be kept equal.

         The applied strain will be determined by the average of the
         corresponding stress tensors components.

         In AMSinput just check the corresponding check buttons.

   "FixedRegion"
      Type:
         String

      Recurring:
         True

      Description:
         Fix positions of all atoms in a region.

   "FreezeStrain"
      Type:
         String

      Description:
         Exclusively for lattice optimizations:

         Freezes any lattice deformation corresponding to a particular
         component of the strain tensor.

         Accepts a set of strain components [xx, xy, xz, yy, yz, zz]
         to be frozen.

         In AMSinput just check the corresponding check buttons.

   "SumDist"
      Type:
         String

      Recurring:
         True

      Description:
         Four atom indices i j k l followed by the distance in
         Angstrom. This will constrain the sum R(ij)+R(kl) at the
         given value.

"ElasticTensor"
   Type:
      Block

   Description:
      Options for numerical evaluation of the elastic tensor.

   "ConvergenceQuality"
      Type:
         Multiple Choice

      Default value:
         Good

      Options:
         [Normal, Good, VeryGood]

      GUI name:
         Convergence

      Description:
         The tightness of the convergence of the geometry
         optimizations for each strain deformation. This should not be
         set higher than the overall convergence quality of the
         preceding geometry optimization configured by the
         "GeometryOptimization%Convergence%Quality" keyword.

   "Parallel"
      Type:
         Block

      Description:
         Options for double parallelization, which 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 groups working in
         parallel.

      "nCoresPerGroup"
         Type:
            Integer

         GUI name:
            Cores per group

         Description:
            Number of cores in each working group.

      "nGroups"
         Type:
            Integer

         GUI name:
            Number of groups

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

      "nNodesPerGroup"
         Type:
            Integer

         GUI name:
            Nodes per group

         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.

"EngineAddons"
   Type:
      Block

   Description:
      This block configures all the engine add-ons.

   "AtomEnergies"
      Type:
         Non-standard block

      Description:
         Add an element-dependent energy per atom. On each line, give
         the chemical element followed by the energy (in atomic
         units).

   "D3Dispersion"
      Type:
         Block

      Description:
         This block configures the add-on that adds the Grimme D3
         dispersion correction to the engine's energy, gradients, and
         stress tensor.

      "Damping"
         Type:
            Multiple Choice

         Default value:
            BJ

         Options:
            [BJ, Zero]

         Description:
            Type of damping: BJ (Becke-Johnson) or Zero. BJ is
            recommended for most applications.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            D3 dispersion

         Description:
            Enables the D3 dispersion correction addon.

      "Functional"
         Type:
            String

         Default value:
            PBE

         Description:
            Use the D3 parameterization by Grimme for a given xc-
            functional. Accepts the same values as the --func command
            line option of the official dftd3 program. Note: the
            naming convention is different from elsewhere in the AMS
            suite. For example, BLYP should be called b-lyp.

      "a1"
         Type:
            Float

         Description:
            The a1 parameter. Only used if Damping is set to BJ. If
            set, it overwrites the a1 value for the chosen functional.

      "a2"
         Type:
            Float

         Description:
            The a2 parameter. Only used if Damping is set to BJ. If
            set, it overwrites the a2 value for the chosen functional.

      "s6"
         Type:
            Float

         Description:
            The s6 parameter, global scaling parameter. If set, it
            overwrites the s6 value for the chosen functional.

      "s8"
         Type:
            Float

         Description:
            The s8 parameter. If set, it overwrites the s8 value for
            the chosen functional.

      "sr6"
         Type:
            Float

         Description:
            The sr6 parameter. Only used if Damping is set to Zero. If
            set, it overwrites the sr6 value for the chosen
            functional.

   "D4Dispersion"
      Type:
         Block

      Description:
         This block configures the addon that adds the Grimme D4(EEQ)
         dispersion correction to the engine's energy, gradients,
         stress tensor and Hessian.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            D4 dispersion

         Description:
            Enables the D4 dispersion correction addon.

      "Functional"
         Type:
            Multiple Choice

         Default value:
            PBE

         Options:
            [HF, BLYP, BPBE, BP86, BPW, LB94, MPWLYP, MPWPW91, OLYP,
            OPBE, PBE, RPBE, REVPBE, PW86PBE, RPW86PBE, PW91, PW91P86,
            XLYP, B97, TPSS, REVTPSS, SCAN, B1LYP, B3LYP, BHLYP,
            B1P86, B3P86, B1PW91, B3PW91, O3LYP, REVPBE0, REVPBE38,
            PBE0, PWP1, PW1PW, MPW1PW91, MPW1LYP, PW6B95, TPSSH,
            TPSS0, X3LYP, M06L, M06, OMEGAB97, OMEGAB97X, CAM-B3LYP,
            LC-BLYP, LH07TSVWN, LH07SSVWN, LH12CTSSIRPW92,
            LH12CTSSIFPW92, LH14TCALPBE, B2PLYP, B2GPPLYP, MPW2PLYP,
            PWPB95, DSDBLYP, DSDPBE, DSDPBEB95, DSDPBEP86, DSDSVWN,
            DODBLYP, DODPBE, DODPBEB95, DODPBEP86, DODSVWN, PBE02,
            PBE0DH, DFTB(3ob), DFTB(mio), DFTB(pbc), DFTB(matsci),
            DFTB(ob2), B1B95, MPWB1K, REVTPSSH, GLYP, REVPBE0DH,
            REVTPSS0, REVDSDPBEP86, REVDSDPBEPBE, REVDSDBLYP,
            REVDODPBEP86, B97M, OMEGAB97M, R2SCAN]

         Description:
            Use the D4 parameterization by Grimme for a given xc-
            functional.

      "Verbosity"
         Type:
            Multiple Choice

         Default value:
            Silent

         Options:
            [Silent, Normal, Verbose, VeryVerbose]

         Description:
            Controls the verbosity of the dftd4 code. Equivalent to
            the --silent and --verbose command line switches of the
            official dftd4 program.

      "a1"
         Type:
            Float

         Description:
            The a1 parameter, see D4 article. The physically
            reasonable range for a1 is [0.0,1.0]. If set, it
            overwrites the a1 value for the chosen functional.

      "a2"
         Type:
            Float

         Description:
            The a2 parameter, see D4 article. The physically
            reasonable range for a2 is [0.0,7.0]. If set, it
            overwrites the a2 value for the chosen functional.

      "s6"
         Type:
            Float

         Description:
            The s6 parameter, see D4 article. The physically
            reasonable range for s6 is [0.0,1.0]. If set, it
            overwrites the s6 value for the chosen functional.

      "s8"
         Type:
            Float

         Description:
            The s8 parameter, see D4 article. The physically
            reasonable range for s8 is [0.0,3.0]. If set, it
            overwrites the s8 value for the chosen functional.

      "s9"
         Type:
            Float

         Description:
            The s9 parameter, see D4 article. If set, it overwrites
            the s9 value for the chosen functional.

   "ExternalEngine"
      Type:
         Block

      Description:
         External engine as an addon

      "Execute"
         Type:
            String

         GUI name:
            Execute

         Description:
            execute command

   "ExternalStress"
      Type:
         Block

      Description:
         This block configures the addon that adds external stress
         term to the engine's energy and stress tensor.

      "StressTensorVoigt"
         Type:
            Float List

         Unit:
            Hartree/Bohr^3

         GUI name:
            External stress tensor

         Description:
            The elements of the external stress tensor in Voigt
            notation. 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.

      "UpdateReferenceCell"
         Type:
            Bool

         Default value:
            No

         Description:
            Whether ot not the reference cell should be updated every
            time the system changes (see documentation).

   "PipeEngine"
      Type:
         Block

      Description:
         Pipe engine as an addon

      "WorkerCommand"
         Type:
            String

         GUI name:
            Worker command

         Description:
            pipe worker command

   "Pressure"
      Type:
         Float

      Default value:
         0.0

      Unit:
         GPa

      Description:
         Add a hydrostatic pressure term to the engine's energy and
         stress tensor. Can only be used for 3D periodic boundary
         conditions.

   "Repulsion"
      Type:
         Block

      Description:
         This block configures an addon that adds a repulsive Weeks-
         Chandler-Andersen potential to all atom pairs.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Repulsion

         Description:
            Enables the repulsive Weeks-Chandler-Andersen potential
            addon.

            When enabled, all atom pairs will experience repulsion E =
            4*epsilon*( (sigma/r)^12 - (sigma/r)^6 + 1/4 ) at the
            distances shorter than about 1.12*sigma.

      "Epsilon"
         Type:
            Float

         Default value:
            0.01

         Unit:
            Hartree

         Description:
            The epsilon parameter in the potential equation. It is
            equal to the amount of energy added at r=sigma.

      "HydrogenSigmaScale"
         Type:
            Float

         Default value:
            0.75

         Unit:
            Angstrom

         Description:
            The sigma parameter for a pair of atoms where one of them
            is hydrogen is scaled with the given factor. For H-H
            interactions the sigma is scaled with this value squared.

      "Sigma"
         Type:
            Float

         Default value:
            0.55

         Unit:
            Angstrom

         Description:
            The sigma parameter in the potential equation. The
            potential is exactly zero at the distances larger than
            about 1.12*sigma

      "SkinLength"
         Type:
            Float

         Default value:
            2.0

         Unit:
            Angstrom

         Description:
            Technical parameter specifying skin length for the
            neighbor list generation. A larger value increases the
            neighbor list cutoff (and cost) but reduces the frequency
            it needs to be re-created.

   "WallPotential"
      Type:
         Block

      Description:
         This block configures the addon that adds a spherical wall
         potential to the engine's energy and gradients.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         Description:
            Enables the wall potential addon. When enabled, a
            spherical wall of radius [Radius] around the origin will
            be added. The force due to the potential will decay
            exponentially inside the wall, will be close to
            [Prefactor*Gradient] outside and exactly half of that at
            the wall.

      "Gradient"
         Type:
            Float

         Default value:
            10.0

         Unit:
            1/Angstrom

         Description:
            The radial gradient outside the sphere.

      "Prefactor"
         Type:
            Float

         Default value:
            0.01

         Unit:
            Hartree

         Description:
            The multiplier for the overall strength of the potential.

      "Radius"
         Type:
            Float

         Default value:
            30.0

         Unit:
            Angstrom

         Value Range:
            value > 0

         Description:
            The radius of the sphere, wherein the potential is close
            to zero.

"EngineDebugging"
   Type:
      Block

   Description:
      This block contains some options useful for debugging the
      computational engines.

   "AlwaysClaimSuccess"
      Type:
         Bool

      Default value:
         No

      Description:
         If an engine fails, pretend that it worked. This can be
         useful when you know that an SCF might fail.

   "CheckInAndOutput"
      Type:
         Bool

      Default value:
         No

      Description:
         Enables some additional checks on the input and output of an
         engine, e.g. for NaN values.

   "ForceContinousPES"
      Type:
         Bool

      Default value:
         No

      Description:
         If this option is set, the engine will always run in
         continuous 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 continuously run in this mode.

   "IgnoreGradientsRequest"
      Type:
         Bool

      Default value:
         No

      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.

   "IgnorePreviousResults"
      Type:
         Bool

      Default value:
         No

      Description:
         If this option is set, the engine will not receive
         information from previous calculations. Typically this
         information is used to restart the self consistent procedure
         of the engine.

   "IgnoreStressTensorRequest"
      Type:
         Bool

      Default value:
         No

      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.

   "NeverQuiet"
      Type:
         Bool

      Default value:
         No

      Description:
         Makes the engine ignore the request to work quietly.

   "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.

   "RandomNoiseInEnergy"
      Type:
         Float

      Default value:
         0.0

      Unit:
         Hartree

      Description:
         Adds a random noise to the energy returned by the engine. The
         random contribution is drawn from [-r,r] where r is the value
         of this keyword.

   "RandomNoiseInGradients"
      Type:
         Float

      Default value:
         0.0

      Unit:
         Hartree/Angstrom

      Description:
         Adds a random noise to the gradients returned by the engine.
         A random number in the range [-r,r] (where r is the value of
         this keyword) is drawn and added separately to each component
         of the gradient.

   "RandomStopChance"
      Type:
         Float

      Default value:
         0.0

      Description:
         Makes the engine randomly stop. Can be used to simulate
         crashes.

"EngineRestart"
   Type:
      String

   Description:
      The path to the file from which to restart the engine.

      Should be a proper engine result file (like adf.rkf, band.rkf
      etc), or the name of the results directory containing it.

"ExitCondition"
   Type:
      Block

   Recurring:
      True

   Description:
      If any of the specified exitconditions are met, the AMS driver
      will exit cleanly.

   "AtomsTooClose"
      Type:
         Block

      Description:
         If any pair of atoms is closer than the specified minimum
         value, the program will exit cleanly.

      "MinimumDistance"
         Type:
            Float

         Default value:
            0.7

         Unit:
            Angstrom

         Description:
            Two atoms closer than this threshold value are considered
            too close.

      "PairCalculation"
         Type:
            Multiple Choice

         Default value:
            NeighborList

         Options:
            [NeighborList, DistanceMatrix]

         Description:
            Two atoms closer than this threshold value are considered
            too close.

   "EngineEnergyUncertainty"
      Type:
         Block

      Description:
         If the engine reports an uncertainty that is too high, the
         program will exit cleanly.

      "MaxUncertainty"
         Type:
            Float

         Default value:
            0.001

         Unit:
            Hartree

         Description:
            Threshold for Engine Energy Uncertainty divided by
            Normalization (by default the number of atoms)

      "Normalization"
         Type:
            Float

         Value Range:
            value >= 0.0

         Description:
            Divide the reported Engine Energy Uncertainty by this
            normalization. Will divide by the number of atoms if
            unset.

   "EngineGradientsUncertainty"
      Type:
         Block

      Description:
         If the engine reports an uncertainty in the magnitude of the
         nuclear gradient of any atom that is too high, the program
         will exit cleanly.

      "MaxUncertainty"
         Type:
            Float

         Default value:
            0.01580221

         Unit:
            Hartree/Angstrom

         Description:
            Threshold for Engine Gradients Uncertainty.

   "Type"
      Type:
         Multiple Choice

      Default value:
         AtomsTooClose

      Options:
         [AtomsTooClose, EngineEnergyUncertainty,
         EngineGradientsUncertainty]

      Description:
         The type of exitcondition specified

"FallbackSolveAfterEngineFailure"
   Type:
      Bool

   Default value:
      Yes

   Description:
      If the engine fails to Solve, try to re-run the Solve without
      restarting the engine from the previous results. This generally
      decreases the engine failure rate. Only relevant certain tasks,
      such as GeometryOptimization, MolecularDynamics, Replay, IRC.

"GCMC"
   Type:
      Block

   Description:
      This block controls the Grand Canonical Monte Carlo (GCMC) task.

      By default, molecules are added at random positions in the
      simulation box. The initial position is controlled by

   "AccessibleVolume"
      Type:
         Float

      Default value:
         0.0

      Description:
         Volume available to GCMC, in cubic Angstroms.
         AccessibleVolume should be specified for "Accessible" and
         "FreeAccessible" [VolumeOption].

   "Box"
      Type:
         Block

      Description:
         Boundaries of the insertion space, i.e. coordinates of the
         origin of an inserted molecule (coordinates of an atom of the
         inserted system may fall outside the box).

         For a periodic dimension it is given as a fraction of the
         simulation box (the full 0 to 1 range by default). For a non-
         periodic dimension it represents absolute Cartesian
         coordinates in Angstrom (the system's bounding box extended
         by the MaxDistance value by default).

      "Amax"
         Type:
            Float

         Description:
            Coordinate of the upper bound along the first axis.

      "Amin"
         Type:
            Float

         Description:
            Coordinate of the lower bound along the first axis.

      "Bmax"
         Type:
            Float

         Description:
            Coordinate of the upper bound along the second axis.

      "Bmin"
         Type:
            Float

         Description:
            Coordinate of the lower bound along the second axis.

      "Cmax"
         Type:
            Float

         Description:
            Coordinate of the upper bound along the third axis.

      "Cmin"
         Type:
            Float

         Description:
            Coordinate of the lower bound along the third axis.

   "Ensemble"
      Type:
         Multiple Choice

      Default value:
         Mu-VT

      Options:
         [Mu-VT, Mu-PT]

      Description:
         Select the MC ensemble: Mu-VT for fixed volume or Mu-PT for
         variable volume. When the Mu-PT ensemble is selected the
         [Pressure] and [VolumeChangeMax] should also be specified.

   "Iterations"
      Type:
         Integer

      GUI name:
         Number of GCMC iterations

      Description:
         Number of GCMC moves.

   "MapAtomsToOriginalCell"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Keeps the atom (mostly) in the original cell by mapping them
         back before the geometry optimizations.

   "MaxDistance"
      Type:
         Float

      Default value:
         3.0

      Unit:
         Angstrom

      GUI name:
         Add molecules within

      Description:
         The max distance to other atoms of the system when adding the
         molecule.

   "MinDistance"
      Type:
         Float

      Default value:
         0.3

      Unit:
         Angstrom

      GUI name:
         Add molecules not closer than

      Description:
         Keep the minimal distance to other atoms of the system when
         adding the molecule.

   "Molecule"
      Type:
         Block

      Recurring:
         True

      GUI name:
         Molecules

      Description:
         This block defines the molecule (or atom) that can be
         inserted/moved/deleted with the MC method. The coordinates
         should form a reasonable structure. The MC code uses these
         coordinates during the insertion step by giving them a random
         rotation, followed by a random translation to generate a
         random position of the molecule inside the box. Currently,
         there is no check to make sure all atoms of the molecule stay
         inside the simulation box. The program does check that the
         MaxDistance/MinDistance conditions are satisfied.

      "ChemicalPotential"
         Type:
            Float

         Unit:
            Hartree

         Description:
            Chemical potential of the molecule (or atom) reservoir.

            It is used when calculating the Boltzmann accept/reject
            criteria after a MC move is executed. This value can be
            derived from first principles using statistical mechanics,
            or equivalently, it can be determined from thermochemical
            tables available in literature sources.

            For example, the proper chemical potential for a GCMC
            simulation in which single oxygen atoms are exchanged with
            a reservoir of O2 gas, should equal 1/2 the chemical
            potential of O2 at the temperature and pressure of the
            reservoir:

            cmpot = Mu_O(T,P) = 1/2*Mu_O2(T,P) = 1/2 *
            [Mu_ref(T,P_ref) + kT*Log(P/Pref) - E_diss]

            where the reference chemical potential [Mu_ref(T,P_ref)]
            is the experimentally determined chemical potential of O2
            at T and Pref; kT*Log(P/Pref) is the pressure correction
            to the free energy, and E_diss is the dissociation energy
            of the O2 molecule.

      "NoAddRemove"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Fix molecule

         Description:
            Set to True to tell the GCMC code to keep the number of
            molecules/atoms of this type fixed.

            It will thus disable Insert/Delete moves on this type,
            meaning it can only do a displacement move, or volume
            change move (for an NPT ensemble).

      "SystemName"
         Type:
            String

         GUI name:
            Molecule

         Description:
            String ID of a named [System] to be inserted. The lattice
            specified with this System, if any, is ignored and the
            main system's lattice is used instead.

   "NonAccessibleVolume"
      Type:
         Float

      Default value:
         0.0

      GUI name:
         Non-accessible volume

      Description:
         Volume not available to GCMC, in cubic Angstroms.
         NonAccessibleVolume may be specified for the "Free"
         [VolumeOption] to reduce the accessible volume.

   "NumAttempts"
      Type:
         Integer

      Default value:
         1000

      GUI name:
         Max tries

      Description:
         Try inserting/moving the selected molecule up to the
         specified number of times or until all constraints are
         satisfied. If all attempts fail a message will be printed and
         the simulation will stop. If the MaxDistance-MinDistance
         interval is small this number may have to be large.

   "Pressure"
      Type:
         Float

      Default value:
         0.0

      Unit:
         Pascal

      Description:
         Pressure used to calculate the energy correction in the Mu-PT
         ensemble. Set it to zero for incompressible solid systems
         unless at very high pressures.

   "Removables"
      Type:
         Non-standard block

      Description:
         The Removables can be used to specify a list of molecules
         that can be removed or moved during this GCMC calculation.
         Molecules are specified one per line in the format following
         format:

         MoleculeName atom1 atom2 ...

         The MoleculeName must match a name specified in one of the
         [Molecule] blocks. The atom indices refer to the whole input
         System and the number of atoms must match that in the
         specified Molecule. A suitable Removables block is written to
         the standard output after each accepted MC move. If you do so
         then you should also replace the initial atomic coordinates
         with the ones found in the same file. If a [Restart] key is
         present then the Removables block is ignored.

   "Restart"
      Type:
         String

      Description:
         Name of an RKF restart file. Upon restart, the information
         about the GCMC input parameters, the initial system (atomic
         coordinates, lattice, charge, etc.) and the MC molecules
         (both already inserted and to be inserted) are read from the
         restart file. The global GCMC input parameters and the MC
         Molecules can be modified from input. Any parameter not
         specified in the input will use its value from the restart
         file (i.e. not the default value). Molecules found in the
         restart file do not have to be present as named Systems in
         the input, however if there is a System present that matches
         the name of a molecule from restart then the System's
         geometry will replace that found in the restart file. It is
         also possible to specify new Molecules in the input, which
         will be added to the pool of the MC molecules from restart.

   "SwapAtoms"
      Type:
         Block

      Description:
         Experimental: Occasionally swap the coordinates of a random
         pair of atoms from two regions.

      "Probability"
         Type:
            Float

         Default value:
            0.0

         Description:
            Probability of performing a swap move instead of any other
            GCMC move in a single GCMC iteration.

      "Regions"
         Type:
            String

         Description:
            Names of two regions to swap between (separated by a
            space).

   "Temperature"
      Type:
         Float

      Default value:
         300.0

      Unit:
         Kelvin

      Description:
         Temperature of the simulation. Increase the temperature to
         improve the chance of accepting steps that result in a higher
         energy.

   "UseGCPreFactor"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Use GC prefactor

      Description:
         Use the GC pre-exponential factor for probability.

   "VolumeChangeMax"
      Type:
         Float

      Default value:
         0.05

      Description:
         Fractional value by which logarithm of the volume is allowed
         to change at each step. The new volume is then calculated as
         Vnew = exp(random(-1:1)*VolumeChangeMax)*Vold

   "VolumeOption"
      Type:
         Multiple Choice

      Default value:
         Free

      Options:
         [Free, Total, Accessible, FreeAccessible]

      GUI name:
         Volume method

      Description:
         Specifies the method to calculate the volume used to
         calculate the GC pre-exponential factor and the energy
         correction in the Mu-PT ensemble:

         Free: V = totalVolume - occupiedVolume - NonAccessibleVolume;

         Total: V = totalVolume;

         Accessible: V = AccessibleVolume;

         FreeAccessible: V = AccessibleVolume - occupiedVolume.

         The AccessibleVolume and NonAccessibleVolume are specified in
         the input, the occupiedVolume is calculated as a sum of
         atomic volumes.

"GeometryOptimization"
   Type:
      Block

   Description:
      Configures details of the geometry optimization and transition
      state searches.

   "CalcPropertiesOnlyIfConverged"
      Type:
         Bool

      Default value:
         Yes

      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.

   "Convergence"
      Type:
         Block

      Description:
         Convergence is monitored for up to 4 quantities: the energy
         change, the Cartesian gradients, the Cartesian step size, and
         for lattice optimizations the stress energy per atom.
         Convergence criteria can be specified separately for each of
         these items.

      "Energy"
         Type:
            Float

         Default value:
            1e-05

         Unit:
            Hartree

         Value Range:
            value > 0

         GUI name:
            Energy convergence

         Description:
            The criterion for changes in the energy. The energy is
            considered converged when the change in energy is smaller
            than this threshold times the number of atoms.

      "Gradients"
         Type:
            Float

         Default value:
            0.001

         Unit:
            Hartree/Angstrom

         Value Range:
            value > 0

         GUI name:
            Gradient convergence

         Description:
            Threshold for nuclear gradients.

      "Quality"
         Type:
            Multiple Choice

         Default value:
            Custom

         Options:
            [VeryBasic, Basic, Normal, Good, VeryGood, Custom]

         GUI name:
            Convergence

         Description:
            A quick way to change convergence thresholds: 'Good' will
            reduce all thresholds by an order of magnitude from their
            default value. 'VeryGood' will tighten them by two orders
            of magnitude. 'Basic' and 'VeryBasic' will increase the
            thresholds by one or two orders of magnitude respectively.

      "Step"
         Type:
            Float

         Default value:
            0.01

         Unit:
            Angstrom

         Value Range:
            value > 0

         GUI name:
            Step convergence

         Description:
            The maximum Cartesian step allowed for a converged
            geometry.

      "StressEnergyPerAtom"
         Type:
            Float

         Default value:
            0.0005

         Unit:
            Hartree

         Value Range:
            value > 0

         Description:
            Threshold used when optimizing the lattice vectors. The
            stress is considered 'converged' when the maximum value of
            stress_tensor * cell_volume / number_of_atoms is smaller
            than this threshold (for 2D and 1D systems, the
            cell_volume is replaced by the cell_area and cell_length
            respectively).

   "CoordinateType"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, Delocalized, Cartesian]

      GUI name:
         Optimization space

      Description:
         Select the type of coordinates in which to perform the
         optimization. 'Auto' automatically selects the most
         appropriate CoordinateType for a given Method.

         If 'Auto' is selected, Delocalized coordinates will be used
         for the Quasi-Newton method, while Cartesian coordinates will
         be used for all other methods.

   "Dimer"
      Type:
         Block

      Description:
         Options for the Dimer method for transition state search.

      "AngleThreshold"
         Type:
            Float

         Default value:
            1.0

         Unit:
            Degree

         Description:
            The rotation is considered converged when the the rotation
            angle falls below the specified threshold.

      "DimerDelta"
         Type:
            Float

         Default value:
            0.01

         Unit:
            Angstrom

         Description:
            Euclidian distance between the midpoint and the endpoint.

      "ExtrapolateForces"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Set to false to call engine to calculate forces at the
            extrapolated rotation angle instead of extrapolating them.

      "LBFGSMaxVectors"
         Type:
            Integer

         Default value:
            10

         Description:
            Max number of vectors for the L-BFGS algorithm to save.

      "MaxRotationIterations"
         Type:
            Integer

         Default value:
            10

         Description:
            Maximum number of rotation iterations for a single
            translation step.

      "Region"
         Type:
            String

         Default value:
            *

         Description:
            Include only atoms of the specified region(s) in the
            rotations, which allows searching for a transition state
            involving selected atoms only.

      "RotationTrustRadius"
         Type:
            Float

         Default value:
            0.1

         Unit:
            Angstrom

         Description:
            L-BFGS trust radius during rotation iterations.

      "TranslationTrustRadius"
         Type:
            Float

         Default value:
            0.1

         Unit:
            Angstrom

         Description:
            L-BFGS trust radius during translation iterations.

   "EngineAutomations"
      Type:
         Block

      Description:
         The optimizer can change some settings of the engine, based
         for instance on the error.

         The idea is to allow the engine to be a bit quicker at the
         start, and more accurate towards the end.

         Automations are always engine specific.

      "Enabled"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Whether or not automations are enabled at all.

      "Gradient"
         Type:
            Block

         Recurring:
            True

         Description:
            A gradient-based automation.

         "FinalValue"
            Type:
               Float

            Description:
               This value will be used whenever the gradient is less
               than GradientLow

         "HighGradient"
            Type:
               Float

            Default value:
               1.0

            Unit:
               Hartree/Angstrom

            Description:
               Defines a large gradient. When the actual gradient is
               between GradientHigh and GradientLow a linear
               interpolation scheme is used for kT (on a log scale).

         "InitialValue"
            Type:
               Float

            Description:
               This value will be used at the first geometry, and
               whenever the gradient is higher than GradientHigh

         "LowGradient"
            Type:
               Float

            Default value:
               1.0

            Unit:
               Hartree/Angstrom

            Description:
               Defines a small gradient, see GradientHigh

         "UseLogInterpolation"
            Type:
               Bool

            Default value:
               Yes

            Description:
               Whether to use interpolation on a log (y) scale or not

         "Variable"
            Type:
               String

            Default value:
            Description:
               variable to be tweaked for the engine.

      "Iteration"
         Type:
            Block

         Recurring:
            True

         Description:
            Geometry step based automation.

         "FinalValue"
            Type:
               Float

            Description:
         "FirstIteration"
            Type:
               Integer

            Default value:
               1

            Description:
               When the actual gradient is between the first and last
               iteration, a linear interpolation is used.

         "InitialValue"
            Type:
               Float

            Description:
               This value will be used when the iteration number is
               smaller or equal to FirstIteration

         "LastIteration"
            Type:
               Integer

            Default value:
               10

            Description:
               Where the automation should reach the FinalValue

         "UseLogInterpolation"
            Type:
               Bool

            Default value:
               Yes

            Description:
               Whether to use interpolation on a log (y) scale or not

         "Variable"
            Type:
               String

            Default value:
            Description:
               variable to be tweaked for the engine.

   "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).

      "AllowOverallRotation"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Whether or not the system is allowed to freely rotate
            during the optimization. This is relevant when optimizing
            structures in the presence of external fields.

      "AllowOverallTranslation"
         Type:
            Bool

         Default value:
            No

         Description:
            Whether or not the system is allowed to translate during
            the optimization. This is relevant when optimizing
            structures in the presence of external fields.

      "MapAtomsToUnitCell"
         Type:
            Bool

         Default value:
            No

         Description:
            Map the atoms to the central cell at each geometry step.

      "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.0

         Unit:
            Femtoseconds

         Description:
            Maximum time step used for the integration. For ReaxFF and
            APPLE&P, this value is reduced by 50%.

      "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:
            Fictitious 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.

   "HessianFree"
      Type:
         Block

      Description:
         Configures details of the Hessian-free (conjugate gradients
         or L-BFGS) geometry optimizer.

      "Step"
         Type:
            Block

         Description:
         "MaxCartesianStep"
            Type:
               Float

            Default value:
               0.1

            Unit:
               Angstrom

            Description:
               Limit on a single Cartesian component of the step.

         "MinRadius"
            Type:
               Float

            Default value:
               0.0

            Unit:
               Angstrom

            Description:
               Minimum value for the trust radius.

         "TrialStep"
            Type:
               Float

            Default value:
               0.0005

            Unit:
               Angstrom

            Description:
               Length of the finite-difference step when determining
               curvature. Should be smaller than the step convergence
               criterion.

         "TrustRadius"
            Type:
               Float

            Default value:
               0.2

            Unit:
               Angstrom

            Description:
               Initial value of the trust radius.

   "InitialHessian"
      Type:
         Block

      Description:
         Options for initial model Hessian when optimizing systems
         with the Quasi-Newton method.

      "File"
         Type:
            String

         GUI name:
            Initial Hessian from

         Description:
            KF file containing the initial Hessian (or the results
            dir. containing it). 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, Calculate,
            CalculateWithFastEngine]

         GUI name:
            Initial Hessian

         Description:
            Select the type of initial Hessian. Auto: let the program
            pick an initial model Hessian. UnitMatrix: simplest
            initial model Hessian, just a unit matrix in the
            optimization coordinates. Swart: model Hessian from M.
            Swart. FromFile: load the Hessian from the results of a
            previous calculation (see InitialHessian%File). Calculate:
            compute the initial Hessian (this may be computationally
            expensive and it is mostly recommended for
            TransitionStateSearch calculations).
            CalculateWithFastEngine: compute the initial Hessian with
            a faster engine.

   "KeepIntermediateResults"
      Type:
         Bool

      Default value:
         No

      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

      Value Range:
         value >= 0

      GUI name:
         Maximum number of iterations

      Description:
         The maximum number of geometry iterations allowed to converge
         to the desired structure.

   "MaxRestarts"
      Type:
         Integer

      Default value:
         0

      Description:
         If a geometry optimization of a system with no symmetry
         operators (or with explicitly disabled symmetry: "UseSymmetry
         False") and enabled PES point characterization converges to a
         transition state (or higher order saddle point), it can be
         restarted automatically after a small displacement along the
         imaginary vibrational mode. In case the restarted
         optimization again does not find a minimum, this can happen
         multiple times in succession. This keyword sets the maximum
         number of restarts. The default value is 0, so the automatic
         restarting is disabled by default.

   "Method"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, Quasi-Newton, FIRE, L-BFGS, ConjugateGradients, Dimer]

      GUI name:
         Optimization method

      Description:
         Select the optimization algorithm employed for the geometry
         relaxation. Currently supported are:

         the Hessian-based Quasi-Newton-type BFGS algorithm,

         the fast inertial relaxation method (FIRE),

         the limited-memory BFGS method,

         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:
         No

      Description:
         Whether to also optimize the lattice for periodic structures.
         This is currently supported with the Quasi-Newton, FIRE, and
         L-BFGS optimizers.

   "PretendConverged"
      Type:
         Bool

      Default value:
         No

      Description:
         Normally a non-converged geometry optimization is considered
         an error. If this keyword is set to True, the optimizer will
         only produce a warning and still claim that the optimization
         is converged. (This is mostly useful for scripting
         applications, where one might want to consider non-converged
         optimizations still successful jobs.)

   "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

            Description:
               Initial value of the trust radius.

         "VaryTrustRadius"
            Type:
               Bool

            Description:
               Whether to allow the trust radius to change during
               optimization. By default True during energy
               minimization and False during transition state search.

      "UpdateTSVectorEveryStep"
         Type:
            Bool

         Default value:
            Yes

         GUI name:
            Update TSRC vector every step

         Description:
            Whether to update the TS reaction coordinate at each step
            with the current eigenvector.

   "RestartDisplacement"
      Type:
         Float

      Default value:
         0.05

      Unit:
         Angstrom

      Description:
         If a geometry optimization of a system with no symmetry
         operators (or with explicitly disabled symmetry: "UseSymmetry
         False") and enabled PES point characterization converges to a
         transition state (or higher order saddle point), it can be
         restarted automatically after a small displacement along the
         imaginary vibrational mode. This keywords sets the size of
         the displacement for the furthest moving atom.

"IRC"
   Type:
      Block

   Description:
      Configures details of the Intrinsic Reaction Coordinate
      optimization.

   "Convergence"
      Type:
         Block

      Description:
         Convergence at each given point is monitored for two items:
         the Cartesian gradient and the calculated step size.
         Convergence criteria can be specified separately for each of
         these items. The same criteria are used both in the inner IRC
         loop and when performing energy minimization at the path
         ends.

      "Gradients"
         Type:
            Float

         Default value:
            0.001

         Unit:
            Hartree/Angstrom

         GUI name:
            Gradient convergence

         Description:
            Convergence criterion for the max component of the
            residual energy gradient.

      "Step"
         Type:
            Float

         Default value:
            0.001

         Unit:
            Angstrom

         GUI name:
            Step convergence

         Description:
            Convergence criterion for the max component of the step in
            the optimization coordinates.

   "CoordinateType"
      Type:
         Multiple Choice

      Default value:
         Cartesian

      Options:
         [Cartesian, Delocalized]

      GUI name:
         Coordinates used for optimization

      Description:
         Select the type of coordinates in which to perform the
         optimization. Note that the Delocalized option should be
         considered experimental.

   "Direction"
      Type:
         Multiple Choice

      Default value:
         Both

      Options:
         [Both, Forward, Backward]

      Description:
         Select direction of the IRC path. The difference between the
         Forward and the Backward directions is determined by the sign
         of the largest component of the vibrational normal mode
         corresponding to the reaction coordinate at the transition
         state geometry. The Forward path correspond to the positive
         sign of the component. If Both is selected then first the
         Forward path is computed followed by the Backward one.

   "InitialHessian"
      Type:
         Block

      Description:
         Options for initial Hessian at the transition state. The
         first eigenvalue of the initial Hessian defines direction of
         the first forward or backward step. This block is ignored
         when restarting from a previous IRC calculation because the
         initial Hessian found in the restart file is used.

      "File"
         Type:
            String

         GUI name:
            File

         Description:
            If 'Type' is set to 'FromFile' then in this key you should
            specify the RKF file containing the initial Hessian (or
            the ams results dir. containing it). This can be used to
            load a Hessian calculated previously with the
            'Properties%Hessian' keyword. If you want to also use this
            file for the initial geometry then also specify it in a
            'LoadSystem' block.

      "Type"
         Type:
            Multiple Choice

         Default value:
            Calculate

         Options:
            [Calculate, FromFile]

         GUI name:
            Initial Hessian

         Description:
            Calculate the exact Hessian for the input geometry or load
            it from the results of a previous calculation.

   "KeepConvergedResults"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Keep the binary RKF result file for every converged IRC
         point. These files may contain more information than the main
         ams.rkf result file.

   "MaxIRCSteps"
      Type:
         Integer

      GUI name:
         Maximum IRC steps

      Description:
         Soft limit on the number of IRC points to compute in each
         direction. After the specified number of IRC steps the
         program will switch to energy minimization and complete the
         path. This option should be used when you are interested only
         in the reaction path area near the transition state. Note
         that even if the soft limit has been hit and the calculation
         has completed, the IRC can still be restarted with a
         'RedoBackward' or 'RedoForward' option.

   "MaxIterations"
      Type:
         Integer

      Default value:
         300

      GUI name:
         Maximum iterations

      Description:
         The maximum number of geometry iterations allowed to converge
         the inner IRC loop. If optimization does not converge within
         the specified number of steps, the calculation is aborted.

   "MaxPoints"
      Type:
         Integer

      Default value:
         100

      GUI name:
         Maximum points

      Description:
         Hard limit on the number of IRC points to compute in each
         direction. After the specified number of IRC steps the
         program will stop with the current direction and switch to
         the next one. If both 'MaxPoints' and 'MaxIRCSteps' are set
         to the same value then 'MaxPoints' takes precedence,
         therefore this option should be used to set a limit on the
         number of IRC steps if you intend to use the results later
         for a restart.

   "MinEnergyProfile"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Minimum energy profile

      Description:
         Calculate minimum energy profile (i.e. no mass-weighting)
         instead of the IRC.

   "MinPathLength"
      Type:
         Float

      Default value:
         0.1

      Unit:
         Angstrom

      Description:
         Minimum length of the path required before switching to
         energy minimization. Use this to overcome a small kink or a
         shoulder on the path.

   "Restart"
      Type:
         Block

      Description:
         Restart options. Upon restart, the information about the IRC
         input parameters and the initial system (atomic coordinates,
         lattice, charge, etc.) is read from the restart file. The IRC
         input parameters can be modified from input. Except for
         'MaxPoints' and 'Direction' all parameters not specified in
         the input will use their values from the restart file. The
         'MaxPoints' and 'Direction' will be reset to their respective
         default values if not specified in the input. By default, the
         IRC calculation will continue from the point where it left
         off. However, the 'RedoForward' and/or 'RedoBackward' option
         can be used to enforce recalculation of a part of the
         reaction path, for example, using a different 'Step' value.

      "File"
         Type:
            String

         GUI name:
            Restart

         Description:
            Name of an RKF restart file generated by a previous IRC
            calculation. Do not use this key to provide an RKF file
            generated by a TransitionStateSearch or a SinglePoint
            calculation, use the 'LoadSystem' block instead.

      "RedoBackward"
         Type:
            Integer

         Default value:
            0

         Description:
            IRC step number to start recalculating the backward path
            from. By default, if the backward path has not been
            completed then start after the last completed step. If the
            backward path has been completed and the 'RedoBackward' is
            omitted then no point on the backward path will be
            recomputed.

      "RedoForward"
         Type:
            Integer

         Default value:
            0

         Description:
            IRC step number to start recalculating the forward path
            from. By default, if the forward path has not been
            completed then start after the last completed step. If the
            forward path has been completed and the 'RedoForward' is
            omitted then no point on the forward path will be
            recomputed.

   "Step"
      Type:
         Float

      Default value:
         0.2

      GUI name:
         Step size

      Description:
         IRC step size in mass-weighted coordinates, sqrt(amu)*bohr.
         One may have to increase this value when heavy atoms are
         involved in the reaction, or decrease it if the reactant or
         products are very close to the transition state.

"LoadEngine"
   Type:
      String

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

"LoadSystem"
   Type:
      Block

   Recurring:
      True

   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. It may
         also be the results directory containing it.

   "Section"
      Type:
         String

      Default value:
         Molecule

      Description:
         The section on the KF file from which to load the system.

"Log"
   Type:
      Non-standard block

   Description:
      Configures the debugging loggers. Syntax: 'Level LoggerName'.
      Possible Levels: All, Debug, Info, Warning, Error, Fatal.

"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.

   "AddMolecules"
      Type:
         Block

      Recurring:
         True

      GUI name:
         Add molecules

      Description:
         This block controls adding molecules to the system (a.k.a.
         the Molecule Gun). Multiple occurrences of this block are
         possible.

         By default, molecules are added at random positions in the
         simulation box with velocity matching the current system
         temperature. The initial position can be modified using one
         of the following keywords: Coords, CoordsBox,
         FractionalCoords, FractionalCoordsBox. The Coords and
         FractionalCoords keys can optionally be accompanied by
         CoordsSigma or FractionalCoordsSigma, respectively.

      "AtomTemperature"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Kelvin

         Description:
            Add random velocity corresponding to the specified
            temperature to individual atoms of the molecule. This only
            affects rotational and internal degrees of freedom, not
            the net translational velocity of the inserted molecule as
            set by the other options.

      "ContactDistance"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Angstrom

         Description:
            Translate the bullet along the velocity vector until it
            comes within ContactDistance of any other atom.

      "Coords"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Place molecules at or around the specified Cartesian
            coordinates.

            This setting takes precedence over other ways to specify
            initial coordinates of the molecule: [CoordsBox],
            [FractionalCoords], and [FractionalCoordsBox].

      "CoordsBox"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Place molecules at random locations inside the specified
            box in Cartesian coordinates.

            Coordinates of the box corners are specified as: Xmin,
            Xmax, Ymin, Ymax, Zmin, Zmax.

            This setting is ignored if Coords is used.

            In AMSinput, if this field is not empty it will be used
            instead of the default Coords.

      "CoordsSigma"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Sigma values (one per Cartesian axis) for a Gauss
            distribution of the initial coordinates. Can only be used
            together with Coords.

      "DeviationAngle"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Degree

         Description:
            Randomly tilt the shooting direction up to this angle away
            from the VelocityDirection vector.

      "Energy"
         Type:
            Float

         Unit:
            Hartree

         Description:
            Initial kinetic energy of the molecule in the shooting
            direction.

      "EnergySigma"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Hartree

         Description:
            Sigma value for the Gauss distribution of the initial
            kinetic energy around the specified value. Should only be
            used together with Energy.

      "FractionalCoords"
         Type:
            Float List

         Description:
            Place molecules at or around the specified fractional
            coordinates in the main system's lattice. For non-periodic
            dimensions a Cartesian value in Angstrom is expected. This
            setting is ignored if [Coords] or [CoordsBox] is used.

      "FractionalCoordsBox"
         Type:
            Float List

         Description:
            Place molecules at random locations inside the box
            specified as fractional coordinates in the main system's
            lattice.

            Coordinates of the box corners are specified as: Xmin,
            Xmax, Ymin, Ymax, Zmin, Zmax.

            For non-periodic dimensions the Cartesian value in
            Angstrom is expected.

            This setting is ignored if [Coords], [CoordsBox], or
            [FractionalCoords] is used.

      "FractionalCoordsSigma"
         Type:
            Float List

         Description:
            Sigma values (one per axis) for a Gauss distribution of
            the initial coordinates. For non-periodic dimensions the
            Cartesian value in Angstrom is expected. Can only be used
            together with FractionalCoords.

      "Frequency"
         Type:
            Integer

         Default value:
            0

         Description:
            A molecule is added every [Frequency] steps after the
            StartStep.

            There is never a molecule added at step 0.

      "MinDistance"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Angstrom

         Description:
            Keep the minimal distance to other atoms of the system
            when adding the molecule.

      "MoleFraction"
         Type:
            Float

         Description:
            Defines a mixture to be deposited using one AddMolecules
            block per component.

            AMS will randomly alternate between any guns that have
            MoleFraction set. These need to all have the same settings
            for StartStep, StopStep and Frequency. Any additional
            AddMolecules blocks without MoleFraction will remain
            completely independent.

      "NumAttempts"
         Type:
            Integer

         Default value:
            10

         Description:
            Try adding the molecule up to the specified number of
            times or until the MinDistance constraint is satisfied. If
            all attempts fail a message will be printed and the
            simulation will continue normally.

      "Rotate"
         Type:
            Bool

         Default value:
            No

         Description:
            Rotate the molecule randomly before adding it to the
            system.

      "StartStep"
         Type:
            Integer

         Default value:
            0

         Description:
            Step number when the first molecule should be added. After
            that, molecules are added every Frequency steps.

            For example, ff StartStep=99 and Frequency=100 then a
            molecule will be added at steps 99, 199, 299, etc...

            No molecule will be added at step 0, so if StartStep=0 the
            first molecule is added at the step number equal to
            [Frequency].

      "StopStep"
         Type:
            Integer

         Description:
            Do not add this molecule after the specified step.

      "System"
         Type:
            String

         Description:
            String ID of the [System] that will be added with this
            'gun'.

            The lattice specified with this System is ignored and the
            main system's lattice is used instead.

            AMSinput adds the system at the coordinates of the System
            (thus setting Coords to the center of the System).

      "Temperature"
         Type:
            Float

         Unit:
            Kelvin

         Description:
            Initial energy of the molecule in the shooting direction
            will correspond to the given temperature.

      "TemperatureSigma"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Kelvin

         Description:
            Sigma value for the Gauss distribution of the initial
            temperature the specified value. Should only be used
            together with Temperature.

      "Velocity"
         Type:
            Float

         Unit:
            Angstrom/fs

         Description:
            Initial velocity of the molecule in the shooting
            direction.

      "VelocityDirection"
         Type:
            Float List

         Description:
            Velocity direction vector for aimed shooting. It will be
            random if not specified.

            In AMSinput add one or two atoms (which may be dummies).

            One atom: use vector from center of the system to add to
            that atom.

            Two atoms: use vector from the first to the second atom.

      "VelocitySigma"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Angstrom/fs

         Description:
            Sigma value for the Gauss distribution of the initial
            velocity around the specified value. Should only be used
            together with Velocity.

   "ApplyForce"
      Type:
         Block

      Recurring:
         True

      Description:
         The ApplyForce keyword can be used to apply an arbitrary
         constant force to a certain (subgroups of) atoms in the
         system

      "Force"
         Type:
            Float List

         Default value:
            [0.0, 0.0, 0.0]

         Unit:
            Hartree/Bohr

         Description:
            Defines the constant force vector

      "PerAtom"
         Type:
            Bool

         Default value:
            No

         Description:
            If enabled, the Force vector is applied separately to
            every atom in the selected Region, so that the total net
            force on the Region equals the value of Force times the
            number of atoms in Region. This was the behavior of
            ApplyForce in AMS2022. By default, with PerAtom disabled,
            the Force vector defines the total net force on the
            Region, so the force applied to each atom equals the value
            of Force divided by the number of atoms in Region.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Apply the constant force to all atoms in this region.

   "ApplyVelocity"
      Type:
         Block

      Recurring:
         True

      Description:
         The ApplyVelocity keyword can be used to move an arbitrary
         group of atoms in the system with a constant net velocity

      "Components"
         Type:
            Multiple Choice

         Default value:
            XY

         Options:
            [X, Y, Z, XY, YZ, XZ, XYZ]

         Description:
            Select which components of the Velocity vector are used to
            set the corresponding components of the net velocity of
            the specified set of atoms. Any other components of
            Velocity are ignored and the motion of the selected atoms
            in those directions is unaffected by ApplyVelocity.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Applies the defined velocity to all atoms in this region.

      "Velocity"
         Type:
            Float List

         Default value:
            [0.0, 0.0, 0.0]

         Unit:
            Angstrom/fs

         Recurring:
            False

         Description:
            The constant velocity that will be applied to the
            specified atoms.

   "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.

      "ConstantVolume"
         Type:
            Bool

         Default value:
            No

         Description:
            Keep the volume constant while allowing the box shape to
            change.

            This is currently supported only by the MTK barostat.

      "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.

            You can specify multiple pressures (separated by spaces).
            In that case the Duration field specifies how many steps
            to use for the transition from one p to the next p (using
            a linear ramp).

      "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

         GUI name:
            Damping constant

         Description:
            Specifies the time constant of the barostat.

      "Type"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [None, Berendsen, MTK]

         GUI name:
            Barostat

         Description:
            Selects the type of the barostat.

   "BinLog"
      Type:
         Block

      Description:
         This block controls writing the BinLog section in ams.rkf,
         which contains the selected MD state scalars and tensors from
         every MD step. No per-atom data is written. If you need the
         per-atom data then you can set the sampling frequency to 1
         and get the required data from the MDHistory section. The
         tensors are written per component, that is, the pressure
         tensor is written as six variables: PressureTensor_xx,
         PressureTensor_yy, etc.. To reduce the file size, all data is
         written in blocks.

      "BiasEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the CVHD bias energy at every time step.

      "BoostFactor"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the CVHD boost factor at every time step.

      "ConservedEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the conserved energy value at every time step.

      "Density"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the density at every time step.

      "DipoleMoment"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Dipole moment binlog

         Description:
            Write the dipole moment at every time step. Each component
            of the tensor is written in its own variable.

      "Hypertime"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the CVHD hypertime at every time step.

      "KineticEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the kinetic energy value at every time step.

      "MaxBiasEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the max CVHD bias energy at every time step.

      "MaxBoostFactor"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the max CVHD boost factor at every time step.

      "PotentialEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the potential energy value at every time step.

      "Pressure"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the pressure at every time step.

      "PressureTensor"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Pressure tensor binlog

         Description:
            Write the pressure tensor in Voigt notation at every time
            step. Each component of the tensor is written in its own
            variable.

      "Step"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the step index during the simulation at every time
            step.

      "Temperature"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the temperature at every time step.

      "Time"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Time (fs) binlog

         Description:
            Write the simulation time (fs) at every time step.

      "TotalEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the total energy value at every time step.

      "Volume"
         Type:
            Bool

         Default value:
            No

         Description:
            Write the simulation cell volume, area or length,
            depending on the system periodicity, at every time step.

   "BondBoost"
      Type:
         Block

      Recurring:
         True

      Description:
         Forced reaction (bond boost) definitions. Multiple BondBoost
         blocks may be specified, which will be treated independently.

      "Chain"
         Type:
            Block

         Description:
            Specifications of a chain of atoms. When a chain is
            detected the distance restraints will be activated. No
            other chain of this type will be detected while any
            restraints for this chain is active.

         "AtomNames"
            Type:
               String

            Description:
               Atom names specifying the chain. An atom name can
               optionally be followed by '@' and a region name, in
               this case only atoms of this type from the given region
               will be matched. A leading '@' followed by a number
               indicates that this position in the chain must be
               occupied by the atom found earlier at the specified
               position in the chain. For example "O H N C @1"
               indicates that the last atom in the chain of the five
               atoms must be the first oxygen, thus defining a
               4-membered ring. This is the only way to define a ring
               because implicit rings will not be detected. For
               example, "O H N C O" does not include rings.

         "MaxDistances"
            Type:
               Float List

            Unit:
               Angstrom

            Description:
               Maximum distances for each pair of atoms in the chain.
               The number of distances must be one less than the
               number of AtomNames.

         "MinDistances"
            Type:
               Float List

            Unit:
               Angstrom

            Description:
               Minimum distances for each pair of atoms in the chain.
               The number of distances must be one less than the
               number of AtomNames.

      "DistanceRestraint"
         Type:
            String

         Recurring:
            True

         Description:
            Specify two atom indices followed by the target distance
            in Angstrom, the first parameter and, optionally, the
            profile type and the second parameter.

            For periodic systems, restraints follow the minimum image
            convention.

            Each atom index indicates a position of the corresponding
            atom in the AtomNames key. Currently recognized restraint
            profile types: Harmonic (default), Hyperbolic, Erf,
            GaussianWell. The profile name can optionally be prefixed
            by "OneSided-", thus making this particular restraint one-
            sided. A one-sided restraint will only push or pull the
            distance towards its target value depending on the sign of
            the difference between the initial and the target
            distance. For example, if the initial distance is larger
            than the target one then the restraint will only push the
            value down. This is especially useful with moving
            restraints because then the restraint will effectively
            disappear as soon as the system crosses a barrier along
            the reaction path. By default, the restraints are two-
            sided, which means they will try to keep the distance
            between the two specified atoms near the (possibly moving)
            target value. For moving restraints, this means that after
            crossing a reaction barrier the system will slide slowly
            towards products held back by the restraints.

            The first parameter is the force constant for the
            Harmonic, Hyperbolic, and Erf profiles, or well depth for
            GaussianWell. The second parameter is the asymptotic force
            value F(Inf) for Hyperbolic and Erf profiles, or the
            factor before x^2 in the exponent for GaussianWell.

            Note: the GaussianWell restraint should be used with the
            Moving flag.

      "Moving"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Move restraint

         Description:
            Move the restraints created with this BondBoost. The
            restraint value will start at the current coordinate's
            value and will move towards the optimum during the
            restraint's lifetime. The increment is calculated from the
            initial deviation and the [NSteps] parameter.

            This feature should be used with the GaussianWell
            restraint types.

      "NSteps"
         Type:
            Integer

         GUI name:
            Boost lifetime

         Description:
            Number of steps the restraints will remain active until
            removed. Atoms participating in one reaction are not
            available for the given number of steps.

      "NumInstances"
         Type:
            Integer

         Default value:
            1

         GUI name:
            Number of instances

         Description:
            Number of reactions of this type taking place
            simultaneously.

      "Units"
         Type:
            Multiple Choice

         Default value:
            Default

         Options:
            [Default, MD]

         GUI name:
            Restr. parameter units

         Description:
            Change energy, force and force constant units in the
            DistanceRestraint key from the default (atomic units) to
            those often used in the MD community (based on kcal/mol
            and Angstrom). Units for the optimum distances are not
            affected.

   "CRESTMTD"
      Type:
         Block

      GUI name:
         CREST_MTD

      Description:
         Input for CREST metadynamics simulation.

      "AddEnergy"
         Type:
            Bool

         Default value:
            No

         Description:
            Add the bias energy to the potential energy (to match the
            gradients)

      "GaussianScaling"
         Type:
            Block

         Description:
            Options for gradual introduction of the Gaussians

         "ScaleGaussians"
            Type:
               Bool

            Default value:
               Yes

            Description:
               Introduce the Gaussians gradually, using a scaling
               function

         "ScalingSlope"
            Type:
               Float

            Default value:
               0.03

            Description:
               Slope of the scaling function for the Gaussians with
               respect to time

      "Height"
         Type:
            Float

         Unit:
            Hartree

         Description:
            The height of the Gaussians added

      "NGaussiansMax"
         Type:
            Integer

         Description:
            Maximum number of Gaussians stored

      "NSteps"
         Type:
            Integer

         Description:
            Interval of Gaussian placement

      "Region"
         Type:
            String

         Default value:
            *

         Description:
            Restrict the range of atoms for RMSD calculation to the
            specified region.

      "RestartFile"
         Type:
            String

         Description:
            Filename for file from which to read data on Gaussians
            placed previously.

      "Width"
         Type:
            Float

         Unit:
            Bohr

         Description:
            The width of the Gaussians added in terms of the RMSD

   "CVHD"
      Type:
         Block

      Recurring:
         True

      GUI name:
         CVHD

      Description:
         Input for the Collective Variable-driven HyperDynamics
         (CVHD).

      "Bias"
         Type:
            Block

         Description:
            The bias is built from a series of Gaussian peaks
            deposited on the collective variable axis every
            [Frequency] steps during MD. Each peak is characterized by
            its (possibly damped) height and the RMS width (standard
            deviation).

         "DampingTemp"
            Type:
               Float

            Default value:
               0.0

            Unit:
               Kelvin

            GUI name:
               Bias damping T

            Description:
               During well-tempered hyperdynamics the height of the
               added bias is scaled down with an exp(-E/kT) factor
               [PhysRevLett 100, 020603 (2008)], where E is the
               current value of the bias at the given CV value and T
               is the damping temperature DampingTemp. If DampingTemp
               is zero then no damping is applied.

         "Delta"
            Type:
               Float

            Description:
               Standard deviation parameter of the Gaussian bias peak.

         "Height"
            Type:
               Float

            Unit:
               Hartree

            Description:
               Height of the Gaussian bias peak.

      "ColVarBB"
         Type:
            Block

         Recurring:
            True

         GUI name:
            Collective Variable

         Description:
            Description of a bond-breaking collective variable (CV) as
            described in [Bal & Neyts, JCTC, 11 (2015)]. A collective
            variable may consist of multiple ColVar blocks.

         "at1"
            Type:
               Block

            Description:
               Specifies the first bonded atom in the collective
               variable.

            "region"
               Type:
                  String

               Default value:
                  *

               Description:
                  Restrict the selection of bonded atoms to a specific
                  region. If this is not set, atoms anywhere in the
                  system will be selected.

            "symbol"
               Type:
                  String

               Description:
                  Atom type name of the first atom of the bond. The
                  name must be as it appears in the System block. That
                  is, if the atom name contains an extension (e.g C.1)
                  then the full name including the extension must be
                  used here.

         "at2"
            Type:
               Block

            Description:
               Specifies the second bonded atom in the collective
               variable.

            "region"
               Type:
                  String

               Default value:
                  *

               Description:
                  Restrict the selection of bonded atoms to a specific
                  region. If this is not set, atoms anywhere in the
                  system will be selected.

            "symbol"
               Type:
                  String

               Description:
                  Atom type name of the second atom of the bond. The
                  value is allowed to be the same as [at1], in which
                  case bonds between atoms of the same type will be
                  included.

         "cutoff"
            Type:
               Float

            Default value:
               0.3

            GUI name:
               Bond order cutoff

            Description:
               Bond order cutoff. Bonds with BO below this value are
               ignored when creating the initial bond list for the CV.
               The bond list does not change during lifetime of the
               variable even if some bond orders drop below the
               cutoff.

         "p"
            Type:
               Integer

            Default value:
               6

            GUI name:
               Exponent p

            Description:
               Exponent value p used to calculate the p-norm for this
               CV.

         "rmax"
            Type:
               Float

            Unit:
               Angstrom

            GUI name:
               R max

            Description:
               Max bond distance parameter Rmax used for calculating
               the CV. It should be close to the transition-state
               distance for the corresponding bond.

         "rmin"
            Type:
               Float

            Unit:
               Angstrom

            GUI name:
               R min

            Description:
               Min bond distance parameter Rmin used for calculating
               the CV. It should be close to equilibrium distance for
               the corresponding bond.

      "ColVarBM"
         Type:
            Block

         Recurring:
            True

         GUI name:
            Collective Variable

         Description:
            Description of a bond-making collective variable (CV). A
            collective variable may consist of multiple ColVar blocks.

         "at1"
            Type:
               Block

            Description:
               Specifies selection criteria for the first atom of a
               pair in the collective variable.

            "region"
               Type:
                  String

               Default value:
                  *

               Description:
                  Restrict the selection to a specific region. If this
                  is not set, atoms anywhere in the system will be
                  selected.

            "symbol"
               Type:
                  String

               Description:
                  Atom type name of the first atom of the pair. The
                  name must be as it appears in the System block. That
                  is, if the atom name contains an extension (e.g C.1)
                  then the full name including the extension must be
                  used here.

         "at2"
            Type:
               Block

            Description:
               Specifies selection criteria for the second atom of a
               pair in the collective variable.

            "region"
               Type:
                  String

               Default value:
                  *

               Description:
                  Restrict the selection to a specific region. If this
                  is not set, atoms anywhere in the system will be
                  selected.

            "symbol"
               Type:
                  String

               Description:
                  Atom type name of the second atom of the pair. The
                  value is allowed to be the same as [at1], in which
                  case pairs of atoms of the same type will be
                  included.

         "cutoff"
            Type:
               Float

            Default value:
               0.3

            GUI name:
               Bond order cutoff

            Description:
               Bond order cutoff. Bonds with BO above this value are
               ignored when creating the initial atom-pair list for
               the CV. The list does not change during lifetime of the
               variable even if some bond orders rise above the
               cutoff.

         "p"
            Type:
               Integer

            Default value:
               6

            GUI name:
               Exponent p

            Description:
               Exponent value p used to calculate the p-norm for this
               CV.

         "rmax"
            Type:
               Float

            Unit:
               Angstrom

            GUI name:
               R max

            Description:
               Max bond distance parameter Rmax used for calculating
               the CV. It should be much larger than the corresponding
               Rmin.

         "rmin"
            Type:
               Float

            Unit:
               Angstrom

            GUI name:
               R min

            Description:
               Min bond distance parameter Rmin used for calculating
               the CV. It should be close to the transition-state
               distance for the corresponding bond.

      "Frequency"
         Type:
            Integer

         Description:
            Frequency of adding a new bias peak, in steps.

            New bias is deposited every [Frequency] steps after
            [StartStep] if the following conditions are satisfied:

            the current CV value is less than 0.9 (to avoid creating
            barriers at the transition state),

            the step number is greater than or equal to [StartStep],
            and

            the step number is less than or equal to [StopStep].

      "MaxEvents"
         Type:
            Integer

         Default value:
            0

         Description:
            Max number of events to allow during dynamics. When this
            number is reached no new bias will be added for this input
            block.

      "StartStep"
         Type:
            Integer

         Description:
            If this key is specified, the first bias will be deposited
            at this step. Otherwise, the first bias peak is added at
            the step number equal to the Frequency parameter. The bias
            is never deposited at step 0.

      "StopStep"
         Type:
            Integer

         Description:
            No bias will be deposited after the specified step. The
            already deposited bias will continue to be applied until
            the reaction event occurs. After that no new CVHD will be
            started. By default, the CVHD runs for the whole duration
            of the MD calculation.

      "WaitSteps"
         Type:
            Integer

         Description:
            If the CV value becomes equal to 1 and remains at this
            value for this many steps then the reaction event is
            considered having taken place. After this, the collective
            variable will be reset and the bias will be removed.

   "CalcPressure"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Calculate pressure

      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.

   "CheckTemperature"
      Type:
         Block

      Description:
         Check at every time step if the temperature has exceeded a
         threshold. If it has, it is assumed the system exploded, and
         the simulation will stop.

      "Enabled"
         Type:
            Bool

         Default value:
            Yes

         Description:
            If enabled, the simulation will stop if the temperature
            becomes too large.

      "MaxTemperature"
         Type:
            Float

         Default value:
            1e+20

         Description:
            Maximum temperature the system can have. If larger, the
            simulation will stop.

   "Checkpoint"
      Type:
         Block

      Description:
         Sets the frequency for storing the entire MD state necessary
         for restarting the calculation.

      "Frequency"
         Type:
            Integer

         Default value:
            1000

         GUI name:
            Checkpoint frequency

         Description:
            Write the MD state to the Molecule and MDResults sections
            on ams.rkf once every N steps. Setting this to zero
            disables checkpointing during the simulation, but one
            checkpoint at the very end of the simulation will always
            be written.

            NOTE: This no longer controls the frequency of writing
            MDStep*.rkf files, set Trajectory%EngineResultsFreq
            instead.

      "WriteProperties"
         Type:
            Bool

         Default value:
            No

         Description:
            Honor top-level Properties input block when writing engine
            results files.

            DEPRECATED: This input option will be removed in AMS2026
            and will be considered always enabled. If you rely on it
            being disabled, please contact SCM support.

   "CopyRestartTrajectory"
      Type:
         Bool

      Default value:
         No

      Description:
         If the keyword Restart is present, the content of the
         restartfile is copied to the ams.rkf file.

   "CosineShear"
      Type:
         Block

      Description:
         Apply an external acceleration to all atoms of a fluid using
         a periodic (cosine) function along a selected coordinate
         axis. This induces a periodic shear flow profile which can be
         used to determine the viscosity.

      "Acceleration"
         Type:
            Float

         Default value:
            5e-06

         Unit:
            Angstrom/fs^2

         Description:
            Amplitude of the applied cosine shear acceleration
            profile. The default value should be a rough first guess
            for water and it needs to be adjusted by experimentation
            for other systems.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Enable cosine shear

         Description:
            Apply a cosine shear acceleration profile for a NEMD
            calculation of viscosity.

      "FlowDirection"
         Type:
            Float List

         Default value:
            [1.0, 0.0, 0.0]

         Description:
            The direction in which to apply the shear acceleration, in
            Cartesian coordinates. The magnitude of this vector is
            ignored (AMS will normalize it internally). FlowDirection
            has to be perpendicular to ProfileAxis.

      "ProfileAxis"
         Type:
            Multiple Choice

         Default value:
            Z

         Options:
            [X, Y, Z]

         Description:
            The Cartesian coordinate axis along which the cosine wave
            runs

   "Deformation"
      Type:
         Block

      Recurring:
         True

      Description:
         Deform the periodic lattice of the system during the
         simulation.

      "LatticeVelocity"
         Type:
            Non-standard block

         Description:
            Velocity of individual lattice vector components in
            Angstrom/fs. The format is identical to the System%Lattice
            block. For Type Sine and Cosine, this defines the maximum
            velocity (at the inflection point).

      "LengthRate"
         Type:
            Float List

         Default value:
            [0.0, 0.0, 0.0]

         Description:
            Relative rate of change of each lattice vector per step.

      "LengthVelocity"
         Type:
            Float List

         Default value:
            [0.0, 0.0, 0.0]

         Unit:
            Angstrom/fs

         Description:
            Change the length of each lattice vector with this
            velocity. With Type=Exponential, LengthVelocity is divided
            by the current lattice vector lengths on StartStep to
            determine a LengthRate, which is then applied on all
            subsequent steps. For Type Sine and Cosine, this defines
            the maximum velocity (at the inflection point).

      "Period"
         Type:
            Float

         Unit:
            Femtoseconds

         Description:
            Period of oscillation for Type Sine and Cosine.

      "ScaleAtoms"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Scale the atomic positions together with the lattice
            vectors. Disable this to deform only the lattice, keeping
            the coordinates of atoms unchanged.

      "StartStep"
         Type:
            Integer

         Default value:
            1

         Description:
            First step at which the deformation will be applied.

      "StopStep"
         Type:
            Integer

         Default value:
            0

         Description:
            Last step at which the deformation will be applied. If
            unset or zero, nSteps will be used instead.

      "StrainRate"
         Type:
            Non-standard block

         Description:
            Strain rate matrix to be applied on every step. The format
            is identical to the System%Lattice block.

      "TargetDensity"
         Type:
            Float

         Unit:
            g/cm3

         Description:
            Target density of the system to be achieved by StopStep by
            isotropically rescaling the lattice.

            This can only be used for 3D-periodic systems. Note that
            the selected Type determines how the lengths of the
            lattice vectors will evolve (linearly or as a
            sine/cosine), the evolution of the volume or density is
            thus necessarily non-linear.

      "TargetLattice"
         Type:
            Non-standard block

         Description:
            Target lattice vectors to be achieved by StopStep. The
            format is identical to the System%Lattice block.

      "TargetLength"
         Type:
            Float List

         Default value:
            [0.0, 0.0, 0.0]

         Unit:
            Angstrom

         Description:
            Target lengths of each lattice vector to be achieved by
            StopStep. The number of values should equal the
            periodicity of the system. If a value is zero, the
            corresponding lattice vector will not be modified.

      "Type"
         Type:
            Multiple Choice

         Default value:
            Linear

         Options:
            [Linear, Exponential, Sine, Cosine]

         Description:
            Function defining the time dependence of the deformed
            lattice parameters.

            Linear increments the lattice parameters by the same
            absolute amount every timestep. Exponential multiplies the
            lattice parameters by the same factor every timestep. Only
            StrainRate, LengthRate, and LengthVelocity are supported
            for Type=Exponential. Sine deforms the system from the
            starting lattice to TargetLattice/TargetLength and then by
            the same amount to the opposite direction, while Cosine
            deforms the system from the starting lattice to the target
            and back.

   "Gravity"
      Type:
         Block

      Description:
         Apply a constant acceleration in -z.

      "Acceleration"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Angstrom/fs^2

         Description:
            Magnitude of the applied acceleration.

   "HeatExchange"
      Type:
         Block

      Recurring:
         True

      GUI name:
         Heat exchange

      Description:
         Input for the heat-exchange non-equilibrium MD (T-NEMD).

      "HeatingRate"
         Type:
            Float

         Unit:
            Hartree/fs

         Description:
            Rate at which the energy is added to the Source and
            removed from the Sink. A heating rate of 1 Hartree/fs
            equals to about 0.00436 Watt of power being transferred
            through the system.

      "Method"
         Type:
            Multiple Choice

         Default value:
            Simple

         Options:
            [Simple, HEX, eHEX]

         Description:
            Heat exchange method used.

            Simple: kinetic energy of the atoms of the source and sink
            regions is modified irrespective of that of the center of
            mass (CoM) of the region (recommended for solids).

            HEX: kinetic energy of the atoms of these regions is
            modified keeping that of the corresponding CoM constant.

            eHEX: an enhanced version of HEX that conserves the total
            energy better (recommended for gases and liquids).

      "Sink"
         Type:
            Block

         Description:
            Defines the heat sink region (where the heat will be
            removed).

         "AtomList"
            Type:
               Integer List

            GUI name:
               Sink region

            Description:
               The atoms that are part of the sink.

               This key is ignored if the [Box] block or [Region] key
               is present.

         "Box"
            Type:
               Block

            Description:
               Part of the simulation box (in fractional cell
               coordinates) defining the heat sink. If this block is
               specified, then by default, the whole box in each of
               the three dimensions is used, which usually does not
               make much sense. Normally, you will want to set the
               bounds along one of the axes.

            "Amax"
               Type:
                  Float

               Default value:
                  1.0

               Description:
                  Coordinate of the upper bound along the first axis.

            "Amin"
               Type:
                  Float

               Default value:
                  0.0

               Description:
                  Coordinate of the lower bound along the first axis.

            "Bmax"
               Type:
                  Float

               Default value:
                  1.0

               Description:
                  Coordinate of the upper bound along the second axis.

            "Bmin"
               Type:
                  Float

               Default value:
                  0.0

               Description:
                  Coordinate of the lower bound along the second axis.

            "Cmax"
               Type:
                  Float

               Default value:
                  1.0

               Description:
                  Coordinate of the upper bound along the third axis.

            "Cmin"
               Type:
                  Float

               Default value:
                  0.0

               Description:
                  Coordinate of the lower bound along the third axis.

         "Region"
            Type:
               String

            GUI name:
               Sink region

            Description:
               The region that is the sink.

               This key is ignored if the [Box] block is present.

      "Source"
         Type:
            Block

         Description:
            Defines the heat source region (where the heat will be
            added).

         "AtomList"
            Type:
               Integer List

            GUI name:
               Source region

            Description:
               The atoms that are part of the source.

               This key is ignored if the [Box] block or [Region] key
               is present.

         "Box"
            Type:
               Block

            Description:
               Part of the simulation box (in fractional cell
               coordinates) defining the heat source. If this block is
               specified, then by default, the whole box in each of
               the three dimensions is used, which usually does not
               make much sense. Normally, you will want to set the
               bounds along one of the axes. This block is mutually
               exclusive with the FirstAtom/LastAtom setting.

            "Amax"
               Type:
                  Float

               Default value:
                  1.0

               Description:
                  Coordinate of the upper bound along the first axis.

            "Amin"
               Type:
                  Float

               Default value:
                  0.0

               Description:
                  Coordinate of the lower bound along the first axis.

            "Bmax"
               Type:
                  Float

               Default value:
                  1.0

               Description:
                  Coordinate of the upper bound along the second axis.

            "Bmin"
               Type:
                  Float

               Default value:
                  0.0

               Description:
                  Coordinate of the lower bound along the second axis.

            "Cmax"
               Type:
                  Float

               Default value:
                  1.0

               Description:
                  Coordinate of the upper bound along the third axis.

            "Cmin"
               Type:
                  Float

               Default value:
                  0.0

               Description:
                  Coordinate of the lower bound along the third axis.

         "Region"
            Type:
               String

            GUI name:
               Source region

            Description:
               The region that is the source.

               This key is ignored if the [Box] block is present.

      "StartStep"
         Type:
            Integer

         Default value:
            0

         Description:
            Index of the MD step at which the heat exchange will
            start.

      "StopStep"
         Type:
            Integer

         Description:
            Index of the MD step at which the heat exchange will stop.

   "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.

      "RandomVelocitiesMethod"
         Type:
            Multiple Choice

         Default value:
            Exact

         Options:
            [Exact, Boltzmann, Gromacs]

         GUI name:
            Velocity randomization method

         Description:
            Specifies how are random velocities generated. Three
            methods are available.

            Exact: Velocities are scaled to exactly match set random
            velocities temperature.

            Boltzmann: Velocities are not scaled and sample Maxwell-
            Boltzmann distribution. However, the distribution is not
            corrected for constraints.

            Gromacs: Velocities are scaled to match set random
            velocities temperature, but removal of net momentum is
            performed only after the scaling. Resulting kinetic energy
            is lower based on how much net momentum the system had.

      "Temperature"
         Type:
            Float

         Unit:
            Kelvin

         GUI name:
            Initial temperature

         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.

            AMSinput will use the first temperature of the first
            thermostat as default.

      "Type"
         Type:
            Multiple Choice

         Default value:
            Random

         Options:
            [Zero, Random, FromFile, Input]

         GUI name:
            Initial velocities

         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
            AMSinput.

      "Values"
         Type:
            Non-standard block

         Description:
            This block specifies the velocity of each atom, in
            Angstrom/fs, 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.

   "MovingRestraints"
      Type:
         Block

      Recurring:
         True

      Description:
         Define a set of moving restraints.

      "Change"
         Type:
            Multiple Choice

         Default value:
            Linear

         Options:
            [Linear, Sine, Cosine]

         GUI name:
            Move type

         Description:
            Type of function defining how the target restraint value
            will change over time:

            Linear - linearly between the StartValue and EndValue.

            Sine - oscillating around StartValue with an amplitude
            equal to the difference between EndValue and StartValue.

            Cosine - oscillating between StartValue and EndValue.

      "Distance"
         Type:
            Block

         Recurring:
            True

         Description:
            Define a distance restraint between pair of atoms. For
            linear-type

         "Atom1"
            Type:
               Integer

            Description:
               First atom of the distance restraint.

         "Atom2"
            Type:
               Integer

            Description:
               Second atom of the distance restraint.

         "EndValue"
            Type:
               Float

            Unit:
               Angstrom

            Description:
               Linear: final target distance.

               Sine: target distance at 1/4 of the period.

               Cosine: target distance at 1/2 of the period.

         "StartValue"
            Type:
               Float

            Unit:
               Angstrom

            Description:
               Initial target distance.

      "Erf"
         Type:
            Block

         Description:
            Define parameters for the Int(erf) restraint potential V =
            alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2) -
            1)/sqrt(PI)). The alpha and beta parameters are computed
            from the user-defined ForceConstant and MaxForce.

         "ForceConstant"
            Type:
               Float

            Default value:
               0.5

            Unit:
               Hartree/Bohr^2

            GUI name:
               Erf force constant

            Description:
               The force constant (second derivative of the potential)
               at the optimum point.

         "MaxForce"
            Type:
               Float

            Default value:
               0.05

            Unit:
               Hartree/Bohr

            GUI name:
               Erf F(Inf)

            Description:
               Asymptotic value of the force at the infinity.

      "GaussianWell"
         Type:
            Block

         Description:
            Define parameters in the Gaussian well restraint potential
            V=-WellDepth*exp(-Sigma*(r-r0)^2).

         "Sigma"
            Type:
               Float

            Default value:
               1.0

            Unit:
               1/Bohr^2

            GUI name:
               Gaussian well sigma

            Description:
               Sigma parameter in the potential expression.

         "WellDepth"
            Type:
               Float

            Default value:
               1.0

            Unit:
               Hartree

            GUI name:
               Gaussian well depth

            Description:
               WellDepth parameter in the potential expression.

      "Harmonic"
         Type:
            Block

         Description:
            Define parameters for the harmonic potential
            V=0.5*FC*(r-r0)^2.

         "ForceConstant"
            Type:
               Float

            Default value:
               0.5

            Unit:
               Hartree/Bohr^2

            GUI name:
               Harmonic force constant

            Description:
               The FC parameter of the harmonic potential.

      "Hyperbolic"
         Type:
            Block

         Description:
            Define parameters for the hyperbolic restraint potential
            V=alpha*(sqrt(1 + beta*x^2) - 1). The alpha and beta
            parameters are computed from the user-defined
            ForceConstant and MaxForce: beta=ForceConstant/MaxForce,
            alpha=MaxForce/beta

         "ForceConstant"
            Type:
               Float

            Default value:
               0.5

            Unit:
               Hartree/Bohr^2

            GUI name:
               Hyperbolic force constant

            Description:
               The force constant (second derivative of the potential)
               at the optimum point.

         "MaxForce"
            Type:
               Float

            Default value:
               0.05

            Unit:
               Hartree/Bohr

            GUI name:
               Hyperbolic F(Inf)

            Description:
               Asymptotic value of the force at the infinity.

      "Name"
         Type:
            String

         GUI name:
            Name

         Description:
            Optional name to be used for plotting.

      "Period"
         Type:
            Float

         Default value:
            0.0

         Unit:
            Femtoseconds

         Description:
            Period of oscillation for Sine and Cosine change types.

      "RestraintType"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [None, Harmonic, Hyperbolic, Erf, GaussianWell]

         GUI name:
            Restraint type

         Description:
            Select type of the moving restraint profile. The force for
            Hyperbolic and Erf is bounded by a user-defined value, the
            latter converging to it faster than the former. The
            GaussianWell has a finite depth so it is suitable for
            cases when crossing a high reaction barrier is not
            desirable.

      "StartStep"
         Type:
            Integer

         Default value:
            1

         GUI name:
            Start step

         Description:
            First step number at which the restraints will be applied.

      "StopStep"
         Type:
            Integer

         Default value:
            0

         GUI name:
            End step

         Description:
            Last step number at which the restraints will be applied.

   "NSteps"
      Type:
         Integer

      Default value:
         1000

      GUI name:
         Number of steps

      Description:
         The number of steps to be taken in the MD simulation.

   "Plumed"
      Type:
         Block

      Description:
         Input for PLUMED (version 2.5.0). The parallel option is
         still experimental.

      "Input"
         Type:
            Non-standard block

         Description:
            Input for PLUMED. Contents of this block is passed to
            PLUMED as is.

      "Parallel"
         Type:
            Block

         Description:
            Options for double parallelization, which 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 groups working
            in parallel.

         "nCoresPerGroup"
            Type:
               Integer

            GUI name:
               Cores per group

            Description:
               Number of cores in each working group.

         "nGroups"
            Type:
               Integer

            GUI name:
               Number of groups

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

         "nNodesPerGroup"
            Type:
               Integer

            GUI name:
               Nodes per group

            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.

   "Preserve"
      Type:
         Block

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

      "AngularMomentum"
         Type:
            Bool

         Default value:
            Yes

         GUI name:
            : Angular momentum

         Description:
            Remove overall angular momentum of the system. This option
            is ignored for 2D and 3D-periodic systems, and disabled by
            default for systems which are not translationally
            invariant (for example when frozen atoms are present).

      "CenterOfMass"
         Type:
            Bool

         Default value:
            No

         GUI name:
            : Center of mass

         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:
            Yes

         GUI name:
            Preserve: Total momentum

         Description:
            Remove overall (linear) momentum of the system. This is
            disabled by default for systems which are not
            translationally invariant (for example when frozen atoms
            are present).

   "Print"
      Type:
         Block

      Description:
         This block controls the printing of additional information to
         stdout.

      "System"
         Type:
            Bool

         Default value:
            No

         Description:
            Print the chemical system before and after the simulation.

      "Velocities"
         Type:
            Bool

         Default value:
            No

         Description:
            Print the atomic velocities before and after the
            simulation.

   "ReactionBoost"
      Type:
         Block

      GUI name:
         Reaction Boost

      Description:
         Define a series of transitions between different states of
         the system.

         Each transition is defined by a TargetSystem and by a set of
         restraints that force the transition.

      "BondBreakingRestraints"
         Type:
            Block

         Description:
            Define parameters for moving restraints that are added for
            pairs of atoms that become disconnected during the
            transition.

            It is intended to make sure the corresponding bonds get
            broken, although this may not always be required because
            forming other bonds will likely get these bonds broken.

         "Erf"
            Type:
               Block

            Description:
               Define parameters for the Int(erf) potential V =
               alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2) -
               1)/sqrt(PI)). The alpha and beta parameters are
               computed from the user-defined ForceConstant and
               MaxForce.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The force constant (second derivative of the
                  potential) at the optimum point.

            "MaxForce"
               Type:
                  Float

               Default value:
                  0.05

               Unit:
                  Hartree/Bohr

               Description:
                  Asymptotic value of the force at the infinity.

         "GaussianWell"
            Type:
               Block

            Description:
               Define parameters in the Gaussian well potential
               V=-WellDepth*exp(-Sigma*(r-r0)^2).

            "Sigma"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  1/Bohr^2

               Description:
                  Sigma parameter in the potential expression.

            "WellDepth"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  Hartree

               Description:
                  WellDepth parameter in the potential expression.

         "Harmonic"
            Type:
               Block

            Description:
               Define parameters for the harmonic potential
               V=0.5*FC*(r-r0)^2.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The FC parameter of the harmonic potential.

         "Hyperbolic"
            Type:
               Block

            Description:
               Define parameters for the hyperbolic potential
               V=alpha*(sqrt(1 + beta*x^2) - 1). The alpha and beta
               parameters are computed from the user-defined
               ForceConstant and MaxForce:
               beta=ForceConstant/MaxForce, alpha=MaxForce/beta

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The force constant (second derivative of the
                  potential) at the optimum point.

            "MaxForce"
               Type:
                  Float

               Default value:
                  0.05

               Unit:
                  Hartree/Bohr

               Description:
                  Asymptotic value of the force at the infinity.

         "Taper"
            Type:
               Block

            Description:
            "Enabled"
               Type:
                  Bool

               Default value:
                  No

               GUI name:
                  Tapering

               Description:
                  Enable tapering of the restraint potential and force
                  between the given range of bond distances. A 7-th
                  order tapering function on the actual (not target!)
                  distance will be used. The MaxDistance must be
                  greater than MinDistance.

            "MaxDistance"
               Type:
                  Float

               Default value:
                  0.0

               Unit:
                  Angstrom

               GUI name:
                  End tapering at

               Description:
                  Bond length at which the restraint potential and
                  force decays to zero.

            "MinDistance"
               Type:
                  Float

               Default value:
                  0.0

               Unit:
                  Angstrom

               GUI name:
                  Start tapering at

               Description:
                  Bond length at which the restraint potential and
                  force will start decaying to zero.

         "Type"
            Type:
               Multiple Choice

            Default value:
               Erf

            Options:
               [None, Harmonic, Hyperbolic, Erf, GaussianWell]

            GUI name:
               Bond breaking restraints

            Description:
               Select type of the moving restraint profile.

               Harmonic: V=0.5*FC*(r-r0)^2

               Hyperbolic: V=alpha*(sqrt(1 + beta*x^2) - 1)

               Erf: V = alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2)
               - 1)/sqrt(PI))

               GaussianWell: V=WellDepth*(1-exp(-Sigma*(r-r0)^2))

               Here beta=ForceConstant/MaxForce, alpha=MaxForce/beta.

               The force for Hyperbolic and Erf is bounded by a user-
               defined value, the latter converging to it faster than
               the former.

               The GaussianWell has a finite depth so it is suitable
               for cases when crossing a high reaction barrier is not
               desirable.

               Moving restraints are added for pairs of atoms that
               become disconnected during the transition.

               It is intended to make sure the corresponding bonds get
               broken, although this may not always be required
               because forming other bonds will likely get these bonds
               broken.

      "BondMakingRestraints"
         Type:
            Block

         Description:
            Define parameters for moving restraints that are added for
            pairs of atoms that become connected during the
            transition.

            It is intended to make sure the bonds are created as
            required.

         "Erf"
            Type:
               Block

            Description:
               Define parameters for the Int(erf) potential V =
               alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2) -
               1)/sqrt(PI)). The alpha and beta parameters are
               computed from the user-defined ForceConstant and
               MaxForce.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The force constant (second derivative of the
                  potential) at the optimum point.

            "MaxForce"
               Type:
                  Float

               Default value:
                  0.05

               Unit:
                  Hartree/Bohr

               Description:
                  Asymptotic value of the force at the infinity.

         "GaussianWell"
            Type:
               Block

            Description:
               Define parameters in the Gaussian well potential
               V=-WellDepth*exp(-Sigma*(r-r0)^2).

            "Sigma"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  1/Bohr^2

               Description:
                  Sigma parameter in the potential expression.

            "WellDepth"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  Hartree

               Description:
                  WellDepth parameter in the potential expression.

         "Harmonic"
            Type:
               Block

            Description:
               Define parameters for the harmonic potential
               V=0.5*FC*(r-r0)^2.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The FC parameter of the harmonic potential.

         "Hyperbolic"
            Type:
               Block

            Description:
               Define parameters for the hyperbolic potential
               V=alpha*(sqrt(1 + beta*x^2) - 1). The alpha and beta
               parameters are computed from the user-defined
               ForceConstant and MaxForce:
               beta=ForceConstant/MaxForce, alpha=MaxForce/beta

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The force constant (second derivative of the
                  potential) at the optimum point.

            "MaxForce"
               Type:
                  Float

               Default value:
                  0.05

               Unit:
                  Hartree/Bohr

               Description:
                  Asymptotic value of the force at the infinity.

         "Type"
            Type:
               Multiple Choice

            Default value:
               Erf

            Options:
               [None, Harmonic, Hyperbolic, Erf, GaussianWell]

            GUI name:
               Bond making restraints

            Description:
               Select type of the moving restraint profile.

               Harmonic: V=0.5*FC*(r-r0)^2

               Hyperbolic: V=alpha*(sqrt(1 + beta*x^2) - 1)

               Erf: V = alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2)
               - 1)/sqrt(PI))

               GaussianWell: V=-WellDepth*exp(-Sigma*(r-r0)^2)

               Here beta=ForceConstant/MaxForce, alpha=MaxForce/beta.

               The force for Hyperbolic and Erf is bounded by a user-
               defined value.

               The GaussianWell has a finite depth so it is suitable
               for cases when crossing a high reaction barrier is not
               desirable.

               Moving restraints are added for pairs of atoms that
               become connected during the transition.

               It is intended to make sure the bonds are created as
               required.

      "BondedRestraints"
         Type:
            Block

         Description:
            Define parameters for bonded restraints. A bonded
            restraint is added for each pair of atoms that are bonded
            both in the current and in the final state.

            It is intended to make sure they remain bonded during
            simulation.

         "Harmonic"
            Type:
               Block

            Description:
               Define parameters for the harmonic potential
               V=0.5*FC*(r-r0)^2.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The FC parameter of the harmonic potential.

         "Type"
            Type:
               Multiple Choice

            Default value:
               None

            Options:
               [None, Harmonic]

            GUI name:
               Bonded restraints

            Description:
               Select type of the bonded restraints:

               Harmonic: V=0.5*FC*(r-r0)^2

               A bonded restraint is added for each pair of atoms that
               are bonded both in the current and in the final state.

               It is intended to make sure they remain bonded during
               simulation.

      "Change"
         Type:
            Multiple Choice

         Default value:
            TargetCoordinate

         Options:
            [TargetCoordinate, Force, LogForce]

         GUI name:
            Move type

         Description:
            Select what to change during dynamics.

            By default, once the restraints are switched on, AMS will
            change the restraint's target coordinate towards its final
            value.

            If the [Force] or [LogForce] option is selected then the
            target coordinate is set to its final value immediately
            and instead the restraint force is gradually scaled from 0
            to 1. The scaling is either linear (Force) or logarithmic
            (LogForce).

      "InitialFraction"
         Type:
            Float

         Default value:
            0.0

         Description:
            Initial fraction of the boost variable.

            At the first boosting step, the restraint's target value
            (or force or log(force)) is equal to InitialFraction +
            1/NSteps.

      "InterEquilibrationSteps"
         Type:
            Integer

         Default value:
            0

         Description:
            Number of equilibration steps after reaching a target
            before setting up restraints for the next one.

      "MinBondChange"
         Type:
            Float

         Default value:
            1.0

         Unit:
            Bohr

         Description:
            Minimal change in the distance for an individual restraint
            to be considered bond-breaking/making vs bonded.

      "MinBondStrength"
         Type:
            Float

         Default value:
            0.5

         Description:
            Minimum strength (usually ranges from 0 to 1) for a bond
            to be considered.

      "NSteps"
         Type:
            Integer

         Default value:
            500

         GUI name:
            Steps per target

         Description:
            Number of steps per target the restraints should be active
            for.

      "NonBondedRestraints"
         Type:
            Block

         Description:
            Define parameters for non-bonded restraints. A non-bonded
            restraint is added for each pair of atoms that are bonded
            neither in the current nor in the final state.

            It is intended to keep them from forming a bond
            unintentionally. They are represented by a repulsive
            potential

         "Exponential"
            Type:
               Block

            Description:
               Define parameters for the repulsive potential
               V=Epsilon*exp(-Sigma*r).

            "Epsilon"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  Hartree

               Description:
                  Epsilon parameter in the repulsive potential
                  expression.

            "Sigma"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  1/Bohr

               Description:
                  Sigma parameter in the repulsive potential
                  expression.

         "Type"
            Type:
               Multiple Choice

            Default value:
               None

            Options:
               [None, Exponential]

            GUI name:
               Non-bonded restraints

            Description:
               Select type of the non-bonded restraints:

               Exponential: V=Epsilon*exp(-Sigma*r)

               A non-bonded restraint is added for each pair of atoms
               that are bonded neither in the current nor in the final
               state.

               It is intended to keep them from forming a bond
               unintentionally. They are represented by a repulsive
               potential.

      "PreEquilibrationSteps"
         Type:
            Integer

         Default value:
            0

         Description:
            Number of steps before enabling the first set of
            restraints.

      "RMSDRestraint"
         Type:
            Block

         GUI name:
            RMSD restraint

         Description:
            Define a static restraint that pulls each atom to its
            position in the target system, but in contrast to the
            individual restraints, the force for this one depends on
            the total mass-weighted root-mean-squared distance (RMSD)
            between the two structures.

         "Erf"
            Type:
               Block

            Description:
               Define parameters for the Int(erf) potential V =
               alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2) -
               1)/sqrt(PI)). The alpha and beta parameters are
               computed from the user-defined ForceConstant and
               MaxForce.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The force constant (second derivative of the
                  potential) at the optimum point.

            "MaxForce"
               Type:
                  Float

               Default value:
                  0.05

               Unit:
                  Hartree/Bohr

               Description:
                  Asymptotic value of the force at the infinity.

         "GaussianWell"
            Type:
               Block

            Description:
               Define parameters in the Gaussian well potential
               V=-WellDepth*exp(-Sigma*(r-r0)^2).

            "Sigma"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  1/Bohr^2

               Description:
                  Sigma parameter in the potential expression.

            "WellDepth"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  Hartree

               Description:
                  WellDepth parameter in the potential expression.

         "Harmonic"
            Type:
               Block

            Description:
               Define parameters for the harmonic potential
               V=0.5*FC*(r-r0)^2.

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The FC parameter of the harmonic potential.

         "Hyperbolic"
            Type:
               Block

            Description:
               Define parameters for the hyperbolic potential
               V=alpha*(sqrt(1 + beta*x^2) - 1). The alpha and beta
               parameters are computed from the user-defined
               ForceConstant and MaxForce:
               beta=ForceConstant/MaxForce, alpha=MaxForce/beta

            "ForceConstant"
               Type:
                  Float

               Default value:
                  0.5

               Unit:
                  Hartree/Bohr^2

               Description:
                  The force constant (second derivative of the
                  potential) at the optimum point.

            "MaxForce"
               Type:
                  Float

               Default value:
                  0.05

               Unit:
                  Hartree/Bohr

               Description:
                  Asymptotic value of the force at the infinity.

         "Type"
            Type:
               Multiple Choice

            Default value:
               None

            Options:
               [None, Harmonic, Hyperbolic, Erf, GaussianWell]

            GUI name:
               Type

            Description:
               Select type of the RMSD restraint profile:

               Harmonic: V=0.5*FC*(r-r0)^2

               Hyperbolic: V=alpha*(sqrt(1 + beta*x^2) - 1)

               Erf: V = alpha*(beta*x*erf(beta*x) + (exp(-(beta*x)**2)
               - 1)/sqrt(PI),

               GaussianWell: V=-WellDepth*exp(-Sigma*(r-r0)^2)

               Here beta=ForceConstant/MaxForce, alpha=MaxForce/beta.

               The Harmonic profile can be problematic at large
               deviations as it may result in large forces. The force
               for Hyperbolic and Erf is bounded by a user-defined
               value. The GaussianWell has a finite depth so it is
               suitable for cases when crossing a high reaction
               barrier is not desirable.

      "Region"
         Type:
            String

         Default value:
            *

         GUI name:
            Region

         Description:
            Region to which the restraints should be limited.

      "TargetSystem"
         Type:
            String

         Recurring:
            True

         GUI name:
            Target system

         Description:
            The target system's name for this transition. Multiple
            targets can be specified to request multiple transitions
            in one simulation.

            Note that only the lattice and the atomic coordinates of
            the target system are used and other properties (bonds,
            charge, etc.) are ignored. The target system's lattice is
            used only to determine connections and it cannot be
            restrained.

      "Type"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [None, Pair, RMSD]

         GUI name:
            Restraint set type

         Description:
            Reaction Boost uses a series of transitions between
            different states of the system.

            Each transition is defined by a TargetSystem and by a set
            of restraints that force the transition.

            Select the type of the restraint set:

            -None: no Reaction Boost

            * Pair: use pair restraints

            * RMSD: use RMSD restraints.

            Pair restraints are defined per atom pair while the RMSD
            defines one collective restraint for all atoms and is thus
            suitable for very large systems.

            The pair restraints are further divided into four sub-
            types: bonding, non-bonding, bond-breaking and bond-
            making. The sub-type of restraints for each pair is
            determined automatically depending on whether the two
            atoms are bonded in the initial/final state.

            Parameters of the pair restraints are defined by
            [NonBondedRestraints], [BondedRestraints],
            [BondBreakingRestraints] and [BondMakingRestraints]
            blocks, while those of the RMSD restraint by the
            [RMSDRestraint] block.

   "Reactor"
      Type:
         Block

      Recurring:
         True

      Description:
         Define one phase of the nanoreactor. A reactor is a region of
         space surrounded by an elastic wall. Atoms inside the region
         are not affected. Atoms outside it will be pushed back with
         force depending on the [ForceConstant] and the [MassScaled]
         flag.

      "ForceConstant"
         Type:
            Float

         GUI name:
            Reactor force constant

         Description:
            Force constant of the reactor wall in Hartree/Bohr^2 (or
            Hartree/Bohr^2/Dalton if [MassScaled] is true).

      "MassScaled"
         Type:
            Bool

         Default value:
            Yes

         GUI name:
            Scale force by mass

         Description:
            If this flag is disabled the force on an atom outside of
            the reactor depends only on the atomic coordinates and the
            force constant. Otherwise, the force is also multiplied by
            the mass of the atom. This means that atoms at the same
            distance from the wall will receive the same accelerate
            due to the wall potential.

      "NSteps"
         Type:
            Integer

         GUI name:
            Reactor lifetime

         Description:
            Number of steps for which the reactor will remain active
            until disabled. The next reactor will be activated
            immediately after this. After the last reactor is disabled
            the cycle will repeat.

      "Radius"
         Type:
            Float

         Unit:
            Angstrom

         GUI name:
            Reactor radius

         Description:
            Radius of the reactor sphere.

   "ReflectiveWall"
      Type:
         Block

      Recurring:
         True

      Description:
         Apply a reflective wall in space

      "Axis"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Defines the normal vector perpendicular to the plane of
            the reflective wall. Any particle moving in this direction
            will be reflected back.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Apply the reflective wall to all atoms in this region.

      "Thickness"
         Type:
            Float

         Default value:
            0.1

         Unit:
            Angstrom

         Description:
            Any particle not deeper than Thickness beyond the
            reflective face of the wall will be reflected. Particles
            deeper than this will be ignored by the wall. This setting
            allows the placement of two walls back-to-back to create a
            two-sided wall that reflects in both directions (offset
            the position of each individual wall by Thickness so that
            their areas of influence do not overlap). Systems with
            very high speed particles (light atoms at high
            temperatures) need a higher Thickness to stop atoms from
            tunneling through the wall in a single timestep.

      "Threshold"
         Type:
            Float

         Unit:
            Angstrom

         Description:
            Defines the threshold value determining the position of
            the reflective wall. If the dot product of a position of a
            particle with Axis exceeds Threshold, the particle will be
            reflected. This means that the plane of the wall passes
            through a point given by Axis times Threshold.

   "Remap"
      Type:
         Block

      Description:
         Control periodic remapping (backtranslation) of atoms into
         the PBC box.

      "Range"
         Type:
            Multiple Choice

         Default value:
            Auto

         Options:
            [Auto, ZeroToOne, PlusMinusHalf, AroundCenter]

         Description:
            Select the range of fractional coordinates to which atoms
            are remapped.

            Auto: Use PlusMinusHalf if the geometrical center of the
            starting positions of all atoms lies between -0.25 and
            0.25 in fractional coordinates in all periodic directions,
            ZeroToOne otherwise.

            PlusMinusHalf: Remap atoms to lie between -0.5 and 0.5 in
            fractional coordinates.

            ZeroToOne: Remap atoms to lie between 0 and 1 in
            fractional coordinates.

            AroundCenter: Remap atoms to lie within 0.5 in fractional
            coordinates around the geometrical center of the starting
            positions of all atoms.

      "Type"
         Type:
            Multiple Choice

         Default value:
            Atoms

         Options:
            [None, Atoms]

         Description:
            Select the method used to remap atoms into the unit cell.

            None: Disable remapping completely.

            Atoms: Remap any atoms that leave the unit cell.

   "RemoveMolecules"
      Type:
         Block

      Recurring:
         True

      GUI name:
         Remove molecules

      Description:
         This block controls removal of molecules from the system.
         Multiple occurrences of this block are possible.

      "Formula"
         Type:
            String

         Description:
            Molecular formula of the molecules that should be removed
            from the system.

            The order of elements in the formula is very important and
            the correct order is: C, H, all other elements in the
            strictly alphabetic order.

            Element names are case-sensitive, spaces in the formula
            are not allowed. Digit '1' must be omitted.

            Valid formula examples: C2H6O, H2O, O2S. Invalid formula
            examples: C2H5OH, H2O1, OH, SO2. Invalid formulas are
            silently ignored.

            Use * to remove any molecule, which must be combined with
            SinkBox or SafeBox.

      "Frequency"
         Type:
            Integer

         Default value:
            0

         Description:
            The specified molecules are removed every so many steps
            after the StartStep. There is never a molecule removed at
            step 0.

      "SafeBox"
         Type:
            Block

         Description:
            Part of the simulation box where molecules may not be
            removed. Only one of the SinkBox or SafeBox blocks may be
            present. If this block is present the molecule will not be
            removed if any of its atoms is within the box. For a
            periodic dimension it is given as a fraction of the
            simulation box (the full 0 to 1 range by default). For a
            non-periodic dimension it represents absolute Cartesian
            coordinates in Angstrom.

         "Amax"
            Type:
               Float

            Description:
               Coordinate of the upper bound along the first axis.

         "Amin"
            Type:
               Float

            Description:
               Coordinate of the lower bound along the first axis.

         "Bmax"
            Type:
               Float

            Description:
               Coordinate of the upper bound along the second axis.

         "Bmin"
            Type:
               Float

            Description:
               Coordinate of the lower bound along the second axis.

         "Cmax"
            Type:
               Float

            Description:
               Coordinate of the upper bound along the third axis.

         "Cmin"
            Type:
               Float

            Description:
               Coordinate of the lower bound along the third axis.

         "FractionalCoordsBox"
            Type:
               Float List

            GUI name:
               Safe box

            Description:
               Do not remove molecules that are (partly) inside the
               safe box.

               Borders of the safe box specified as: Amin, Amax, Bmin,
               Bmax, Cmin, Cmax.

               For periodic dimensions fractional coordinates between
               0 and 1 and for non-periodic dimensions Cartesian
               values in Angstrom are expected.

      "SinkBox"
         Type:
            Block

         Description:
            Part of the simulation box where matching molecules will
            be removed. By default, molecules matching the formula
            will be removed regardless of their location. If this
            block is present then such a molecule will only be removed
            if any of its atoms is within the box. For a periodic
            dimension it is given as a fraction of the simulation box
            (the full 0 to 1 range by default). For a non-periodic
            dimension it represents absolute Cartesian coordinates in
            Angstrom.

         "Amax"
            Type:
               Float

            Description:
               Coordinate of the upper bound along the first axis.

         "Amin"
            Type:
               Float

            Description:
               Coordinate of the lower bound along the first axis.

         "Bmax"
            Type:
               Float

            Description:
               Coordinate of the upper bound along the second axis.

         "Bmin"
            Type:
               Float

            Description:
               Coordinate of the lower bound along the second axis.

         "Cmax"
            Type:
               Float

            Description:
               Coordinate of the upper bound along the third axis.

         "Cmin"
            Type:
               Float

            Description:
               Coordinate of the lower bound along the third axis.

         "FractionalCoordsBox"
            Type:
               Float List

            GUI name:
               Sink box

            Description:
               Remove molecules that are (partly) inside the sink box.

               Borders of the sink box specified as: Amin, Amax, Bmin,
               Bmax, Cmin, Cmax.

               For periodic dimensions fractional coordinates between
               0 and 1 and for non-periodic dimensions Cartesian
               values in Angstrom are expected.

      "StartStep"
         Type:
            Integer

         Default value:
            0

         Description:
            Step number when molecules are removed for the first time.
            After that, molecules are removed every [Frequency] steps.

            For example, if StartStep=99 and Frequency=100 then
            molecules will be removed at steps 99, 199, 299, etc...

            No molecule will be removed at step 0, so if StartStep=0
            the first molecules are removed at the step number equal
            to [Frequency].

      "StopStep"
         Type:
            Integer

         Description:
            Do not remove the specified molecules after this step.

   "ReplicaExchange"
      Type:
         Block

      Description:
         This block is used for (temperature) Replica Exchange MD
         (Parallel Tempering) simulations.

      "AllowWrongResults"
         Type:
            Bool

         Default value:
            No

         Description:
            Allow combining Replica Exchange with other features when
            the combination is known to produce physically incorrect
            results.

      "EWMALength"
         Type:
            Integer

         Default value:
            10

         Description:
            Length of the exponentially weighted moving average used
            to smooth swap probabilities for monitoring.

            This value is equal to the inverse of the EWMA mixing
            factor.

      "SwapFrequency"
         Type:
            Integer

         Default value:
            100

         Description:
            Attempt an exchange every N steps.

      "TemperatureFactors"
         Type:
            Float List

         Description:
            This is the ratio of the temperatures of two successive
            replicas.

            The first value sets the temperature of the second replica
            with respect to the first replica, the second value sets
            the temperature of the third replica with respect to the
            second one, and so on. If there are fewer values than
            nReplicas, the last value of TemperatureFactor is used for
            all the remaining replicas.

      "Temperatures"
         Type:
            Float List

         Description:
            List of temperatures for all replicas except for the first
            one.

            This is mutually exclusive with TemperatureFactors.
            Exactly nReplicas-1 temperature values need to be
            specified, in increasing order. The temperature of the
            first replica is given by [Thermostat%Temperature].

      "nReplicas"
         Type:
            Integer

         Default value:
            1

         GUI name:
            Number of replicas

         Description:
            Number of replicas to run in parallel.

   "Restart"
      Type:
         String

      GUI name:
         Restart from

      Description:
         The path to the ams.rkf file from which to restart the
         simulation.

   "Shake"
      Type:
         Block

      Description:
         Parameters of the Shake/Rattle algorithm.

      "All"
         Type:
            String

         Recurring:
            True

         GUI name:
            Constrain all

         Description:
            Constraint description in one the following formats:

            All [bondOrder] bonds at1 at2 [to distance]

            All triangles at1 at2 at3

            The first option constrains all bonds between atoms at1
            at2 to a certain length, while the second - bonds at1-at2
            and at2-at3 and the angle between them.

            The [bondOrder] can be a number or a string such as
            single, double, triple or aromatic. If it's omitted then
            all bonds between specified atoms will be constrained.
            Atom names are case-sensitive and they must be as they are
            in the Atoms block, or an asterisk '*' denoting any atom.
            The distance, if present, must be in Angstrom. If it is
            omitted then the bond length from the initial geometry is
            used.

            Important: only the bonds present in the system at certain
            points of the simulation (at the start or right after
            adding/removing atoms) can be constrained, which means
            that the bonds may need to be specified in the System
            block.

            Warning: the triangles constraint should be used with care
            because each constrained bond or angle means removing one
            degree of freedom from the dynamics. When there are too
            many constraints (for example, "All triangles H C H" in
            methane) some of them may be linearly dependent, which
            will lead to an error in the temperature computation.

            Valid examples:

            All single bonds C C to 1.4

            All bonds O H to 0.98

            All bonds O H

            All bonds H *

            All triangles H * H

      "ConvergeR2"
         Type:
            Float

         Default value:
            1e-08

         Description:
            Convergence criterion on the max squared difference, in
            atomic units.

      "ConvergeRV"
         Type:
            Float

         Default value:
            1e-08

         Description:
            Convergence criterion on the orthogonality of the
            constraint and the relative atomic velocity, in atomic
            units.

      "ExcludeRegion"
         Type:
            String

         Default value:
         Description:
            Exclude all atoms covered by this region expression from
            all constraints. If both atoms of a bond belong to
            ExcludeRegion, the bond will be kept unconstrained,
            regardless of Shake%All or engine-specific constraints.

      "Iterations"
         Type:
            Integer

         Default value:
            100

         Description:
            Number of iterations.

      "ShakeInitialCoordinates"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Apply constraints before computing the first energy and
            gradients.

   "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's behavior.

      "BerendsenApply"
         Type:
            Multiple Choice

         Default value:
            Global

         Options:
            [Local, Global]

         GUI name:
            Apply Berendsen

         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

         GUI name:
            NHC chain length

         Description:
            Number of individual thermostats forming the NHC
            thermostat

      "Duration"
         Type:
            Integer List

         GUI name:
            Duration(s)

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

      "Region"
         Type:
            String

         Default value:
            *

         Description:
            The identifier of the region to thermostat. The default
            *** applies the thermostat to the entire system. The value
            can by a plain region name, or a region expression, e.g.
            **-myregion* to thermostat all atoms that are not in
            myregion, or *regionA+regionB* to thermostat the union of
            the 'regionA' and 'regionB'. Note that if multiple
            thermostats are used, their regions may not overlap.

      "Tau"
         Type:
            Float

         Unit:
            Femtoseconds

         GUI name:
            Damping constant

         Description:
            The time constant of the thermostat.

      "Temperature"
         Type:
            Float List

         Unit:
            Kelvin

         GUI name:
            Temperature(s)

         Description:
            The target temperature of the thermostat.

            You can specify multiple temperatures (separated by
            spaces). In that case the Duration field specifies how
            many steps to use for the transition from one T to the
            next T (using a linear ramp). For NHC thermostat, the
            temperature may not be zero.

      "Type"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [None, Berendsen, NHC]

         GUI name:
            Thermostat

         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.

      "EngineResultsFreq"
         Type:
            Integer

         Default value:
            0

         GUI name:
            Engine results frequency

         Description:
            Write MDStep*.rkf files with engine-specific results once
            every N steps. Setting this to zero disables writing
            engine results files except for one file at the end of the
            simulation. If this is set to a negative value, the value
            of Checkpoint%Frequency will be used instead.

      "ExitConditionFreq"
         Type:
            Integer

         GUI name:
            Exit condition frequency

         Description:
            Check the exit conditions every N steps. By default this
            is done every SamplingFreq steps.

      "PrintFreq"
         Type:
            Integer

         GUI name:
            Printing frequency

         Description:
            Print current thermodynamic properties to the output every
            N steps. By default this is done every SamplingFreq steps.

      "SamplingFreq"
         Type:
            Integer

         Default value:
            100

         GUI name:
            Sample frequency

         Description:
            Write the molecular geometry (and possibly other
            properties) to the ams.rkf file once every N steps.

      "TProfileGridPoints"
         Type:
            Integer

         Default value:
            0

         Description:
            Number of points in the temperature profile. If
            TProfileGridPoints > 0, a temperature profile along each
            of the three lattice axes will be written to the .rkf
            file. The temperature at a given profile point is
            calculated as the total temperature of all atoms inside
            the corresponding slice of the simulation box, time-
            averaged over all MD steps since the previous snapshot.​
            By default, no profile is generated.

      "WriteBonds"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Write detected bonds to the .rkf file.

      "WriteCharges"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Write current atomic point charges (if available) to the
            .rkf file. Disable this to reduce trajectory size if you
            do not need to analyze charges.

      "WriteCoordinates"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Write atomic coordinates to the .rkf file.

      "WriteEngineGradients"
         Type:
            Bool

         Default value:
            No

         Description:
            Write atomic gradients (negative of the atomic forces, as
            calculated by the engine) to the History section of
            ams.rkf.

      "WriteMolecules"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Write the results of molecule analysis to the .rkf file.

      "WriteVelocities"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Write velocities to the .rkf file. Disable this to reduce
            trajectory size if you do not need to analyze the
            velocities.

   "fbMC"
      Type:
         Block

      Recurring:
         True

      GUI name:
         fbMC

      Description:
         This block sets up force bias Monte Carlo interleaved with
         the molecular dynamics simulation.

      "Frequency"
         Type:
            Integer

         Default value:
            1

         Description:
            Run the fbMC procedure every Frequency MD steps.

      "MassRoot"
         Type:
            Float

         Default value:
            2.0

         Description:
            Inverse of the exponent used to mass-weight fbMC steps.

      "MolecularMoves"
         Type:
            Block

         Description:
            Move molecules as rigid bodies in addition to normal
            atomic moves.

         "Enabled"
            Type:
               Bool

            Default value:
               No

            GUI name:
               Enable molecular moves

            Description:
               Enable moving molecules as rigid bodies based on net
               forces and torques. Ordinary per-atom displacements
               will then be based on residual atomic forces.

         "RotationStepAngle"
            Type:
               Float

            Default value:
               0.1

            Unit:
               Radian

            Description:
               Maximum allowed angle of rotation of each molecule in
               one fbMC step.

         "TranslationStepLength"
            Type:
               Float

            Default value:
               0.1

            Unit:
               Angstrom

            Description:
               Maximum allowed displacement of each molecule in each
               Cartesian coordinate in one fbMC step.

      "NSteps"
         Type:
            Integer

         GUI name:
            Number of steps

         Description:
            Number of fbMC steps to perform on every invocation of the
            procedure.

      "PrintFreq"
         Type:
            Integer

         GUI name:
            Printing frequency

         Description:
            Print current thermodynamic properties to the output every
            N fbMC steps. This defaults to the PrintFreq set in the
            Trajectory block. Setting this to zero disables printing
            fbMC steps.

      "StartStep"
         Type:
            Integer

         Default value:
            1

         Description:
            First step at which the fbMC procedure may run.

      "StepLength"
         Type:
            Float

         Default value:
            0.1

         Unit:
            Angstrom

         Description:
            Maximum allowed displacement of the lightest atom in the
            system in each Cartesian coordinate in one fbMC step.

      "StopStep"
         Type:
            Integer

         Default value:
            0

         Description:
            Last step at which the fbMC procedure may run. If unset or
            zero, there is no limit.

      "Temperature"
         Type:
            Float

         Unit:
            Kelvin

         Description:
            Temperature used for fbMC.

"Molecules"
   Type:
      Block

   Description:
      Configures details of the molecular composition analysis enabled
      by the Properties%Molecules block.

   "AdsorptionSupportRegion"
      Type:
         String

      GUI name:
         Adsorption support region

      Description:
         Select region that will represent a support for adsorption
         analysis. Adsorbed molecules will receive an '(ads)' suffix
         after name of the element bonded to the support. Such
         elements will be listed separate from atoms of the same
         element not bonded to the support, for example, HOH(ads) for
         a water molecule bonded to a surface via one of its H atoms.

   "BondOrderCutoff"
      Type:
         Float

      Default value:
         0.5

      Description:
         Bond order cutoff for analysis of the molecular composition.
         Bonds with bond order smaller than this value are neglected
         when determining the molecular composition.

"NEB"
   Type:
      Block

   Description:
      Configures details of the Nudged Elastic Band optimization.

   "Climbing"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Climb highest image to TS

      Description:
         Use the climbing image algorithm to drive the highest image
         to the transition state.

   "ClimbingThreshold"
      Type:
         Float

      Default value:
         0.0

      Unit:
         Hartree/Bohr

      GUI name:
         CI force threshold

      Description:
         Climbing image force threshold. If ClimbingThreshold > 0 and
         the max perpendicular force component is above the threshold
         then no climbing is performed at this step. This entry can be
         used to get a better approximation for the reaction path
         before starting the search for the transition state. A
         typical value is 0.01 Hartree/Bohr.

   "Images"
      Type:
         Integer

      Default value:
         8

      GUI name:
         Number of images

      Description:
         Number of NEB images (not counting the chain ends). Using
         more images will result in a smoother reaction path and can
         help with convergence problems, but it will also increase the
         computation time.

   "InterpolateInternal"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Interpolate in Internal coordinates

      Description:
         The initial NEB image geometries are calculated by
         interpolating between the initial and the final state. By
         default, for non-periodic systems the interpolation is
         performed in internal coordinates but the user can choose to
         do it in the Cartesian ones. For periodic systems the
         interpolation is always done in Cartesian coordinates. If
         PreOptimizeWithIDPP is set then the path may be further
         refined using the image-dependent pair potential (IDPP).

   "InterpolateShortest"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Interpolate across cell boundary

      Description:
         Allow interpolation across periodic cell boundaries. Set to
         false if an atom is intended to move more than half across
         the simulation box during reaction.

   "Iterations"
      Type:
         Integer

      GUI name:
         Maximum number of iterations

      Description:
         Maximum number of NEB iterations. The default value depends
         on the number of degrees of freedom (number of images, atoms,
         periodic dimensions).

   "Jacobian"
      Type:
         Float

      GUI name:
         Jacobian value

      Description:
         Scaling factor used to convert the lattice strain to a NEB
         coordinate value. Default value: sqrt(N)*(V/N)^(1/d), where V
         - lattice volume (area for 2D, length for 1D), N - number of
         atoms, and d - number of periodic dimensions.

   "LoadPath"
      Type:
         Block

      Description:
         Provide details about the trajectory to get the initial NEB
         path from. PESScan and NEB trajectories are supported. Only
         the last geometry for each point on the trajectory is
         considered.

      "File"
         Type:
            String

         GUI name:
            Initial path file

         Description:
            Provide an ams.rkf file to load the initial path from. All
            geometries of this calculation, including initial and
            final, will be taken from the History section of the file.

            Note that for a PESScan it should be a 1D path.

      "Geometries"
         Type:
            Integer List

         GUI name:
            Raw geometry indices

         Description:
            Raw indices of the geometries from the History section. By
            default the last geometry of each path point is used.

      "Points"
         Type:
            Integer List

         GUI name:
            Path points

         Description:
            By default the whole path is used, which may sometimes be
            not desirable. For example when a PESScan revealed
            multiple barriers. In this case one can specify indices of
            the path points to be used. The last geometry of the
            specified path point will be loaded.

   "MapAtomsToCell"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Map atoms to cell

      Description:
         Translate atoms to the [-0.5,0.5] cell before every step.
         This option cannot be disabled for SS-NEB.

   "OldTangent"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Use old tangent

      Description:
         Turn on the old central difference tangent.

   "OptimizeEnds"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Optimize reactants/products

      Description:
         Start the NEB with optimization of the reactant and product
         geometries.

   "OptimizeLattice"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Optimize lattice

      Description:
         Turn on the solid-state NEB (SS-NEB).

   "Parallel"
      Type:
         Block

      Description:
         Options for double parallelization, which 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 groups working in
         parallel.

      "nCoresPerGroup"
         Type:
            Integer

         GUI name:
            Cores per group

         Description:
            Number of cores in each working group.

      "nGroups"
         Type:
            Integer

         GUI name:
            Number of groups

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

      "nNodesPerGroup"
         Type:
            Integer

         GUI name:
            Nodes per group

         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.

   "PreOptimizeWithIDPP"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Use IDPP

      Description:
         (Experimental)

         When there is only initial and final system available, the
         image-dependent pair potential (IDPP, doi: 10.1063/1.4878664)
         can be used to determine the initial NEB path by
         interpolating all interatomic distances between the two
         points and optimizing intermediate images towards them. The
         optimization starts from the geometries obtained using the
         selected interpolation options.

   "ReOptimizeEnds"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Re-optimize reactants/products

      Description:
         Re-optimize reactant and product geometries upon restart.

   "Restart"
      Type:
         String

      GUI name:
         Restart from

      Description:
         Provide an ams.rkf file from a previous NEB calculation to
         restart from. It can be an unfinished NEB calculation or one
         performed with different engine parameters.

   "Skewness"
      Type:
         Float

      Default value:
         1.0

      GUI name:
         Skewness

      Description:
         Degree of how much images are shifted towards or away from
         the TS, which may help tackle problems with a long reaction
         path (for example involving a loose adsorption complex)
         without needing too many images. A value greater than 1 will
         make sure that images are concentrated near the transition
         state. The optimal value depends on the path length, the
         number of images (larger [Skewness] may be needed for a
         longer path and fewer images). Technically [Skewness] is
         equal to the ratio between the optimized distances to the
         lower and the higher neighbor image on the path.

   "Spring"
      Type:
         Float

      Default value:
         1.0

      Unit:
         Hartree/Bohr^2

      GUI name:
         Spring value

      Description:
         Spring force constant in atomic units.

"NormalModes"
   Type:
      Block

   Description:
      Configures details of a normal modes calculation.

   "BlockDisplacements"
      Type:
         Block

      Description:
         Configures details of a Block Normal Modes (a.k.a. Mobile
         Block Hessian, or MBH) calculation.

      "AngularDisplacement"
         Type:
            Float

         Default value:
            0.5

         Unit:
            Degree

         Description:
            Relative step size for rotational degrees of freedom
            during Block Normal Modes finite difference calculations.
            It will be scaled with the characteristic block size.

      "BlockAtoms"
         Type:
            Integer List

         Recurring:
            True

         Description:
            List of atoms belonging to a block. You can have multiple
            BlockAtoms.

      "BlockRegion"
         Type:
            String

         Recurring:
            True

         Description:
            The region to to be considered a block. You can have
            multiple BlockRegions, also in combination with
            BlockAtoms.

      "Parallel"
         Type:
            Block

         Description:
            Configuration for how the individual displacements are
            calculated in parallel.

         "nCoresPerGroup"
            Type:
               Integer

            Description:
               Number of cores in each 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

            GUI name:
               Cores per task

            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.

      "RadialDisplacement"
         Type:
            Float

         Default value:
            0.005

         Unit:
            Angstrom

         Description:
            Step size for translational degrees of freedom during
            Block Normal Modes finite difference calculations.

   "Displacements"
      Type:
         Multiple Choice

      Default value:
         Cartesian

      Options:
         [Cartesian, Symmetric, Block]

      GUI name:
         Displacements

      Description:
         Type of displacements.

         In case of symmetric displacements it is possible to choose
         only the modes that have non-zero IR or Raman intensity.

         Block displacements take rigid blocks into account.

   "Hessian"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, Analytical, Numerical]

      Description:
         Default Auto means that if possible by the engine the Hessian
         will be calculated analytically, else the Hessian will be
         calculated numerically by AMS.

   "ReScanFreqRange"
      Type:
         Float List

      Default value:
         [-10000000.0, 10.0]

      Unit:
         cm-1

      Recurring:
         True

      GUI name:
         Re-scan range

      Description:
         Specifies a frequency range within which all modes will be
         scanned. 2 numbers: an upper and a lower bound.

   "ReScanModes"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Re-scan modes

      Description:
         Whether or not to scan imaginary modes after normal modes
         calculation has concluded.

   "SymmetricDisplacements"
      Type:
         Block

      Description:
         Configures details of the calculation of the frequencies and
         normal modes of vibration in symmetric displacements.

      "Type"
         Type:
            Multiple Choice

         Default value:
            All

         Options:
            [All, Infrared, Raman, InfraredAndRaman]

         GUI name:
            Symm Frequencies

         Description:
            For symmetric molecules it is possible to choose only the
            modes that have non-zero IR or Raman intensity (or either
            of them) by symmetry.

            In order to calculate the Raman intensities the Raman
            property must be requested.

"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.005

      Unit:
         Bohr

      Description:
         Step size for numerical nuclear gradient calculation.

   "Parallel"
      Type:
         Block

      Description:
         Options for double parallelization, which 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 groups working in
         parallel.

      "nCoresPerGroup"
         Type:
            Integer

         GUI name:
            Cores per group

         Description:
            Number of cores in each working group.

      "nGroups"
         Type:
            Integer

         GUI name:
            Number of groups

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

      "nNodesPerGroup"
         Type:
            Integer

         GUI name:
            Nodes per group

         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.

   "AutomaticBZPath"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Automatic BZ path

      Description:
         If True, compute the phonon dispersion curve for the standard
         path through the Brillouin zone. If False, you must specify
         your custom path in the [BZPath] block.

   "BZPath"
      Type:
         Block

      Description:
         If [NumericalPhonons%AutomaticBZPath] is false, the phonon
         dispersion curve will be computed for the user-defined path
         in the [BZPath] block. You should define the vertices of your
         path in fractional coordinates (with respect to the
         reciprocal lattice vectors) in the [Path] sub-block. If you
         want to make a jump in your path (i.e. have a discontinuous
         path), you need to specify a new [Path] sub-block.

      "Path"
         Type:
            Non-standard block

         Recurring:
            True

         Description:
            A section of a k space path. This block should contain
            multiple lines, and in each line you should specify one
            vertex of the path in fractional coordinates. Optionally,
            you can add text labels for your vertices at the end of
            each line.

   "BornEffCharge"
      Type:
         Float

      Default value:
         0.0

      Description:
         Input option to give the Born effective charges of the
         species.

   "DielectricConst"
      Type:
         Float

      Default value:
         1.0

      Description:
         Input option to give the static dielectric constant of the
         species.

   "DoubleSided"
      Type:
         Bool

      Default value:
         Yes

      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.

   "KPathFinderConvention"
      Type:
         Multiple Choice

      Default value:
         Setyawan-Curtarolo

      Options:
         [Setyawan-Curtarolo, Hinuma]

      Description:
         This option determines how the path through the Brillouin
         zone is generated when using the automatic k-point mode.

         Available options:

         * "Setyawan-Curtarolo" (default for 1D and 2D lattices): Uses
           our built-in KPath program to find a path through high-
           symmetry points based on the method by Setyawan and
           Curtarolo
           (https://doi.org/10.1016/j.commatsci.2010.05.010). For 2D
           lattices, the path is derived from the intersection of the
           3D Brillouin zone with a plane. For 1D lattices, the path
           is simply Gamma-Z.

         * "Hinuma": Uses the external SeeKPath utility to generate
           the k-path (https://github.com/giovannipizzi/seekpath and
           https://doi.org/10.1016/j.commatsci.2016.10.015).

   "NDosEnergies"
      Type:
         Integer

      Default value:
         1001

      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:
         Options for double parallelization, which 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 groups working in
         parallel.

      "nCoresPerGroup"
         Type:
            Integer

         GUI name:
            Cores per group

         Description:
            Number of cores in each working group.

      "nGroups"
         Type:
            Integer

         GUI name:
            Number of groups

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

      "nNodesPerGroup"
         Type:
            Integer

         GUI name:
            Nodes per group

         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.

"PESExploration"
   Type:
      Block

   Description:
      Configures details of the automated PES exploration methods.

   "BasinHopping"
      Type:
         Block

      Description:
         Configures the details of the Basin Hopping subtask.

      "DisplaceAtomsInRegion"
         Type:
            String

         Default value:
         Description:
            If you specify a region name here, only the atoms
            belonging to this region will be displaced during the
            basin hopping procedure. For more details on regions, see
            the documentation on the System definition.

      "Displacement"
         Type:
            Float

         Default value:
            0.5

         Unit:
            Angstrom

         Description:
            Displacement in each degree of freedom.

      "MainSystemAsSeed"
         Type:
            Bool

         Default value:
            No

         Description:
            If true, only the main system will be used as a seed
            state. The main system is not added to the database.

      "PESPointCharacterization"
         Type:
            Bool

         Default value:
            Yes

         Description:
            If true, a PES point characterization based on a
            vibrational analysis is carried out to confirm each
            detected state is an actual local minimum (no imaginary
            frequencies). Conversely, if this option is false, the PES
            point characterization is avoided, which will assume that
            all located states are local minima (zero gradients).
            Enabling this option is very useful for large systems. It
            circumvents the need for computing and diagonalizing the
            Hessian matrix, a typically expensive computational
            process.

      "PushApartDistance"
         Type:
            Float

         Default value:
            0.4

         Unit:
            Angstrom

         Description:
            Push atoms apart until no atoms are closer than this
            distance. This criterion is enforced for the initial
            structure and all those generated by random displacements.

      "RotateNonListedAtoms"
         Type:
            Bool

         Default value:
            No

         Description:
            If true, each iteration randomly rotates all atoms as a
            rigid body, excluding those listed in
            [BasinHopping%DisplaceListedAtoms],
            [BasinHopping%DisplaceListedTypes], or
            [BasinHopping%DisplaceAtomsInRegion].

      "Steps"
         Type:
            Integer

         Default value:
            20

         Description:
            Number of displace & optimize Monte-Carlo steps to take.

   "BindingSites"
      Type:
         Block

      Description:
         Options related to the calculation of binding sites.

      "Calculate"
         Type:
            Bool

         Default value:
            No

         Description:
            Calculate binding sites at the end of a job. Not needed
            for Binding Sites job.

      "DistanceDifference"
         Type:
            Float

         Default value:
            -1.0

         Unit:
            Angstrom

         Description:
            If the distance between two mapped binding-sites is larger
            than this threshold, the binding-sites are considered
            different. If not specified, its value will set equal to
            [PESExploration%StructureComparison%DistanceDifference]

      "MaxCoordinationShellsForLabels"
         Type:
            Integer

         Default value:
            3

         Description:
            The binding site labels are given based on the
            coordination numbers of shells in the reference region,
            using the following format: N<int><int>..., e.g., the
            label 'N334' means 3 atoms in the first coordination
            shell, 3 in the second one, and 4 in the third one. This
            parameter controls the maximum number of shells to
            include.

      "NeighborCutoff"
         Type:
            Float

         Default value:
            -1.0

         Unit:
            Angstrom

         Description:
            Atoms within this distance of each other are considered
            neighbors for the calculation of the binding sites. If not
            specified, its value will set equal to
            [PESExploration%StructureComparison%NeighborCutoff]

      "PositioningMethod"
         Type:
            Multiple Choice

         Default value:
            AdsorbedAtomCoords

         Options:
            [AdsorbedAtomCoords, ConstantDistance]

         Description:
            Determines how the binding site's coordinates are defined.

            * AdsorbedAtomCoords: Use the exact coordinates of the
              adsorbed atom as the binding site.

            * ConstantDistance: Place the binding site at a fixed
              distance from the surface. This position is calculated
              along the vector that connects the surface to the atom.
              See the
              "[PESExploration%StructureComparison%SurfaceOffset]"
              option.

      "ReferenceRegion"
         Type:
            String

         Default value:
         Description:
            Defines the region that is considered as the reference for
            binding sites detection. Binding sites are projected on
            this region using the geometry from the reference system.
            If not specified, its value will set equal to
            [PESExploration%StatesAlignment%ReferenceRegion]

      "SurfaceOffset"
         Type:
            Float

         Default value:
            1.5

         Unit:
            Angstrom

         Description:
            Sets the binding site's distance from the surface. This
            value is only used when
            "[PESExploration%StructureComparison%PositioningMethod]"
            is set to "ConstantDistance". The distance is measured
            from a reference point on the surface, which is the
            centroid of the adsorbate's nearest neighbor atoms.

   "CalculateEnergyReferences"
      Type:
         Bool

      Default value:
         No

      Description:
         Calculates the energy references.

   "CalculateFragments"
      Type:
         Bool

      Default value:
         No

      Description:
         The reference region must be defined using the
         StatesAlignment%ReferenceRegion keyword. This enables the
         distinction between two parts of the chemical system: the
         adsorbent, identified by the reference region, and the
         adsorbate, which comprises the remaining portion. This
         keyword initiates a geometry optimization calculation for
         both the adsorbate and adsorbent individually for each state
         in the database at the end of the execution. Fragmented
         states are included in the energy landscape. This keyword
         does not apply to LandscapeRefinement calculations.

   "Debug"
      Type:
         Block

      Description:
         Options for debugging purposes. Should only be used by
         developers.

   "DynamicSeedStates"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Whether subsequent expeditions may start from states
         discovered by previous expeditions. This should lead to a
         more comprehensive exploration of the potential energy
         surface. Disabling this will focus the PES exploration around
         the initial seed states.

   "Dynamics"
      Type:
         Block

      Description:
         Settings for molecular dynamics, used by dynamics-based
         search methods.

      "Andersen"
         Type:
            Block

         Description:
            Settings for the Andersen thermostat.

         "Alpha"
            Type:
               Float

            Default value:
               1.0

            Description:
               A coupling parameter that influences the strength of
               the Andersen thermostat.

         "CollisionPeriod"
            Type:
               Float

            Default value:
               100.0

            Description:
               The average time between stochastic collisions with the
               heat bath in femtoseconds.

      "Langevin"
         Type:
            Block

         Description:
            Settings for the Langevin thermostat.

         "Friction"
            Type:
               Float

            Default value:
               0.01

            Description:
               The friction coefficient that determines the strength
               of the coupling to the heat bath.

      "Nose"
         Type:
            Block

         Description:
            Settings for the Nosé-Hoover thermostat.

         "Mass"
            Type:
               Float

            Default value:
               1.0

            Description:
               The fictitious mass of the extended degree of freedom
               that couples to the system.

      "Thermostat"
         Type:
            Multiple Choice

         Default value:
            none

         Options:
            [andersen, nose_hoover, langevin, none]

         Description:
            Selects the thermostat algorithm to control the simulation
            temperature.

      "Time"
         Type:
            Float

         Default value:
            1000.0

         Description:
            The total simulation time for the molecular dynamics
            trajectory in femtoseconds.

      "TimeStep"
         Type:
            Float

         Default value:
            1.0

         Description:
            The integration time step for the molecular dynamics
            simulation in femtoseconds.

   "ExcludeReflectionAxes"
      Type:
         Multiple Choice

      Default value:
         z

      Options:
         [x, y, z, None]

      Description:
         Determines which axial reflections ('x', 'y', or 'z') to
         exclude when generating symmetry images. This parameter is
         active only if [GenerateSymmetryImages] is *True*. The
         default 'z' axis exclusion is commonly used for 2D systems
         (e.g., slabs) to prevent unintended projection of binding
         sites across the slab plane.

   "FiniteDifference"
      Type:
         Float

      Default value:
         0.0026458861

      Unit:
         Angstrom

      Description:
         The finite difference distance to use for Dimer, Hessian,
         Lanczos, and optimization methods.

   "Hessian"
      Type:
         Block

      Description:
         Settings for Hessian calculations and vibrational analysis.

      "AtomList"
         Type:
            String

         Default value:
            all

         Description:
            Specifies which atoms to include in a partial Hessian
            calculation. Can be a list of indices (e.g., '1 2 3') or
            'all'.

      "ZeroFreqValue"
         Type:
            Float

         Default value:
            1e-06

         Description:
            Frequencies with a magnitude smaller than this value are
            considered to be zero. This helps filter out numerical
            noise associated with translational and rotational modes.

   "Job"
      Type:
         Multiple Choice

      Options:
         [ProcessSearch, BasinHopping, SaddleSearch,
         LandscapeRefinement, BindingSites]

      Description:
         Specify the PES exploration job to perform.

   "LandscapeRefinement"
      Type:
         Block

      Description:
         Configures details of the energy landscape refinement job.

      "CalculateOnlyEnergies"
         Type:
            Bool

         Default value:
            No

         Description:
            If true, the states' geometry is not optimized, and the
            final PES point characterization is ignored [PESExplorati
            on%LandscapeRefinement%IgnoreFinalPESPointCharacter]. Only
            energy values are updated using the specified engine.
            Furthermore, normal modes and associated properties are
            copied from the previous calculation to avoid the
            typically high computational effort of the Hessian matrix
            calculation. Enabling this option implies that
            RunInitialSinglePoints='F',
            IgnoreFinalPESPointCharacter='T'.

      "GenerateFragments"
         Type:
            Bool

         Default value:
            No

         Description:
            The reference region must be defined using the
            StatesAlignment%ReferenceRegion keyword. This enables the
            distinction between two parts of the chemical system: the
            adsorbent, identified by the reference region, and the
            adsorbate, which comprises the remaining portion. This
            keyword (if true) initiates a single-point calculation for
            both the adsorbate and adsorbent individually for each
            state in the database. Fragmented states are included in
            the energy landscape.

      "IgnoreFinalPESPointCharacter"
         Type:
            Bool

         Default value:
            No

         Description:
            At the end of the energy landscape refinement job, each
            state is assigned a PES point character (MIN or TS) based
            on its vibrational frequencies before being included in
            the final database. States are only added if the PES point
            character after refinement remains unchanged. However,
            states are added without verifying if this option is
            "true". Nonetheless, vibrational frequencies are
            calculated and stored for future analysis. This option is
            especially useful when using computationally demanding
            engines. Because in those cases, precision and
            computational effort must be balanced, resulting in
            significant vibrational frequencies inaccuracies.

      "IgnoreFinalPESPointCharacterForFragments"
         Type:
            Bool

         Default value:
            No

         GUI name:
            ... for fragments

         Description:
            Same as "LandscapeRefinement%IgnoreFinalPESPointCharacter"
            but regarding the Fragments calculations, see option
            "LandscapeRefinement%CalculateFragments".

      "Quiet"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Suppress the output details of the geometry optimizations.

      "RelaxFromSaddlePoint"
         Type:
            Bool

         Default value:
            No

         Description:
            Relaxes the saddle point geometries following the
            imaginary mode to get both reactants and products.

      "RunInitialSinglePoints"
         Type:
            Bool

         Default value:
            Yes

         Description:
            If it is "true", just after loading the energy landscape
            to refine, the single energy point computations are
            disabled. Be aware that if you enable this, the output
            file's 'Initial Energy Landscape' section will display
            incorrect states' energy values. If the engine requires
            too much processing power, this option can help you save a
            small amount of time.

      "TransitionStateSearchMethod"
         Type:
            Multiple Choice

         Default value:
            Auto

         Options:
            [Auto, Dimer]

         Description:
            Sets the method to refine transition states.

   "LoadEnergyLandscape"
      Type:
         Block

      Description:
         Options related to the loading of an Energy Landscape from a
         previous calculation.

      "ExcludeReflectionAxes"
         Type:
            Multiple Choice

         Default value:
            z

         Options:
            [x, y, z, None]

         Description:
            Determines which axial reflections ('x', 'y', or 'z') to
            exclude when generating symmetry images. This parameter is
            active only if [BindingSites%GenerateSymmetryImages] is
            *True*. The default 'z' axis exclusion is commonly used
            for 2D systems (e.g., slabs) to prevent unintended
            projection of binding sites across the slab plane.

      "GenerateSymmetryImages"
         Type:
            Bool

         Default value:
            No

         Description:
            By activating this option, after loading the energy
            landscape, it will create the complete set of symmetry-
            related copies by using the symmetry operators of the
            reference structure. Be aware that rkf result files of the
            generated symmetry images are copies from the parent
            structures but only atomic coordinates are updated.

      "KeepOnly"
         Type:
            Integer List

         GUI name:
            List of states to keep

         Description:
            Upon loading the Energy Landscape, only keep the states
            specified here. The states should be specified via a list
            of integers referring to the indices of the states you
            want to keep.

      "Path"
         Type:
            String

         GUI name:
            Load energy landscape from

         Description:
            AMS results folder to load an energy landscape from. In
            the text input file, you may alternatively specify a
            ".con" file in the native EON format.

      "Remove"
         Type:
            Integer List

         GUI name:
            List of states to remove

         Description:
            Upon loading the Energy Landscape, remove (i.e. do not
            load) the states specified here. The states should be
            specified via a list of integers referring to the indices
            of the states you want to remove (i.e. the states you
            don't want to load).

      "RemoveWithNoBindingSites"
         Type:
            Bool

         Default value:
            No

         Description:
            Upon loading the Energy Landscape, it removes states with
            no associated binding sites. Associated transition states
            are also removed. This is an advantageous option to remove
            physisorbed states automatically. Notice that it requires
            that the previous calculation was executed, enabling the
            option [BindingSites%Calculate].

      "SeedStates"
         Type:
            Integer List

         GUI name:
            List of seed states

         Description:
            By default when you start a new PES Exploration from a
            loaded Energy Landscape, expeditions can start from any of
            the loaded minima. By using this input option, you can
            instruct the program to only use some of the states as
            'expedition starting point'. The states that serve as
            'expedition starting points' should be specified via a
            list of integers referring to the indices of the states.

   "LoadInitialSystems"
      Type:
         Block

      Description:
         Load initial systems from different sources.

      "FromKFHistory"
         Type:
            Block

         Recurring:
            True

         Description:
            Load initial systems from the History section of kf files.

         "Path"
            Type:
               String

            GUI name:
               Load initial systems from

            Description:
               AMS results folder to load the initial systems from. In
               the text input file, you may alternatively specify a
               ".kf" file. By default, the "ams.kf" file will be used.

         "TargetPESPointCharacter"
            Type:
               Multiple Choice

            Default value:
               MIN

            Options:
               [MIN, TS]

            Description:
               Selects the PES point character for all loaded systems.

   "NegativeEigenvalueTolerance"
      Type:
         Float

      Default value:
         -0.0005

      Unit:
         Hartree/Bohr^2

      Description:
         The threshold in Hessian eigenvalue below which a mode is
         considered imaginary, i.e. indicating a transition state.
         This is a small negative number, as very small negative
         eigenvalues may be due to numerical noise on an essentially
         flat PES and do not indicate true transition states. We need
         a more flexible value for this parameter in PESExploration
         because the high computational cost of the task typically
         forces us to reduce the engine precision, which increases the
         noise in the vibrational frequencies evaluation.
         [PESPointCharacter%NegativeEigenvalueTolerance] is overridden
         by this parameter.

   "NudgedElasticBand"
      Type:
         Block

      Description:
         Options for the Nudged Elastic Band (NEB) method.

      "ClimbingImageMethod"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Use the climbing image algorithm to drive the highest
            image to the transition state.

      "ConvergedForce"
         Type:
            Float

         Default value:
            -1.0

         Unit:
            eV/Angstrom

         Description:
            Convergence threshold for nuclear gradients. Note: Special
            value of -1.0 means using the same convergence criterion
            as the PES explorer's geometry optimizer.

      "Images"
         Type:
            Integer

         Default value:
            5

         Description:
            Number of NEB images between the two endpoints.

      "MaxIterations"
         Type:
            Integer

         Default value:
            500

         Description:
            Maximum number of NEB iterations.

      "OldTangent"
         Type:
            Bool

         Default value:
            No

         Description:
            Use the old central difference tangent.

      "Spring"
         Type:
            Float

         Default value:
            5.0

         Unit:
            eV/Ang^2

         Description:
            Spring force constant.

   "NumExpeditions"
      Type:
         Integer

      Default value:
         1

      Description:
         Sets the number of subsequent expeditions our job will
         consist of. Larger values result in a more comprehensive
         exploration of the potential energy surface, but will take
         more computational time.

   "NumExplorers"
      Type:
         Integer

      Default value:
         1

      Description:
         Sets the number of independent PES explorers dispatched as
         part of each expedition. Larger values will result in a more
         comprehensive exploration of the potential energy surface,
         but will take more computational time. By default an
         appropriate number of explorers are executed in parallel.

   "OptTSMethod"
      Type:
         Multiple Choice

      Default value:
         SaddleSearch

      Options:
         [SaddleSearch, NudgedElasticBand]

      Description:
         When the full set of states in the energy landscape are
         optimized (see PESExploration%Job = GeometryOptimization),
         transition states can be optimized using either SaddleSearch
         or NudgedElasticBand methods. SaddleSearch uses information
         only from the current geometry of the TS; contrary,
         NudgedElasticBand ignores the current geometry and runs a
         Nudged-Elastic-Band calculation trying to connect the
         associated reactants and products if they are available.

   "Optimizer"
      Type:
         Block

      Description:
         Configures the details of the geometry optimizers used by the
         PES explorers.

      "ConvergedForce"
         Type:
            Float

         Default value:
            0.005

         Unit:
            eV/Angstrom

         Description:
            Convergence threshold for nuclear gradients.

      "MaxIterations"
         Type:
            Integer

         Default value:
            400

         Description:
            Maximum number of iterations allowed for optimizations.

      "Method"
         Type:
            Multiple Choice

         Default value:
            CG

         Options:
            [CG, QM, LBFGS, FIRE, SD]

         Description:
            Select the method for geometry optimizations.

   "Parallel"
      Type:
         Block

      Description:
         Options for double parallelization, which 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 groups working in
         parallel.

      "nCoresPerGroup"
         Type:
            Integer

         GUI name:
            Cores per group

         Description:
            Number of cores in each working group.

      "nGroups"
         Type:
            Integer

         GUI name:
            Number of groups

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

      "nNodesPerGroup"
         Type:
            Integer

         GUI name:
            Nodes per group

         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.

   "ParallelReplica"
      Type:
         Block

      Description:
         Settings for the Parallel Replica Dynamics method.

      "DephaseLoopMax"
         Type:
            Integer

         Default value:
            5

         Description:
            The maximum number of times the dephasing procedure will
            be attempted.

      "DephaseLoopStop"
         Type:
            Bool

         Default value:
            No

         Description:
            If true, the dephasing loop will stop early if a
            transition is detected during dephasing.

      "DephaseTime"
         Type:
            Float

         Default value:
            1000.0

         Description:
            The duration of the dephasing period, during which
            replicas evolve independently to lose correlation.

      "PostTransitionTime"
         Type:
            Float

         Default value:
            1000.0

         Description:
            The amount of time (in fs) the simulation continues to run
            after a transition is detected, to ensure the new state is
            stable.

      "RefineTransition"
         Type:
            Bool

         Default value:
            Yes

         Description:
            If true, after a transition is detected, a saddle search
            is performed to precisely locate the transition state.

      "StateCheckInterval"
         Type:
            Float

         Default value:
            1000.0

         Description:
            The time interval (in fs) at which each replica is checked
            to see if a transition has occurred.

      "StateSaveInterval"
         Type:
            Float

         Default value:
            -1.0

         Description:
            The time interval (in fs) at which the state of the
            replicas is saved. A negative value disables this.

      "StopAfterTransition"
         Type:
            Bool

         Default value:
            No

         Description:
            If true, the simulation will terminate after the first
            reactive event is successfully identified.

   "Prefactor"
      Type:
         Block

      Description:
         Settings for calculating reaction rate pre-exponential
         factors.

      "Rate"
         Type:
            Multiple Choice

         Default value:
            HTST

         Options:
            [HTST, QQHTST, None]

         Description:
            Calculates reaction rate pre-exponential factors via: HTST
            (Harmonic Transition State Theory), QQHTST (quasi-quantum
            HTST), or None (disable calculation).

   "ProcessSearch"
      Type:
         Block

      Description:
         Input options specific to the process search procedure.

      "MinimizationOffset"
         Type:
            Float

         Default value:
            0.2

         Description:
            After a saddle is found, images are placed on either side
            of the saddle along the mode and minimized to ensure that
            the saddle is connected to the original minimum and to
            locate the product state. MinimizationOffset is the
            distance those images are displaced from the saddle.

   "RandomSeed"
      Type:
         Integer

      Description:
         Number used to initialize both the EON clients random number
         generators as well as the AMS global RNG. The latter is
         normally initialized with the RNGSeed keyword at the root
         level. Should be used by developers only. May or may not help
         to make more reproducible regression tests ...

   "SaddleSearch"
      Type:
         Block

      Description:
         Configuration for the Saddle Search procedure (used in
         SaddleSearch and ProcessSearch Jobs).

      "ConvergedForce"
         Type:
            Float

         Default value:
            -1.0

         Unit:
            eV/Angstrom

         Description:
            Convergence threshold for nuclear gradients. Note: Special
            value of -1.0 means using the same convergence criterion
            as the PES explorer's geometry optimizer.

      "DisplaceAlongNoisyNormalModes"
         Type:
            Bool

         Default value:
            No

         Description:
            If true, atoms are displaced following the normal modes.

      "DisplaceAlongNormalModesActiveModes"
         Type:
            String

         Default value:
         GUI name:
            Displace active modes

         Description:
            Sets the active modes to be used when the option
            [SaddleSearch%DisplaceAlongNormalModesWeight] is enabled.
            e.g. 1,2,3,5. By default, all normal modes are considered
            active.

      "DisplaceAlongNormalModesWeight"
         Type:
            Float

         Default value:
            0.0

         GUI name:
            Displace modes weight

         Description:
            The probability of generating a displacement resulting in
            a random linear combination of the normal modes specified
            in [SaddleSearch%DisplaceAlongNormalModesActiveModes].
            This parameter is a numeric value that should fall within
            the interval [0.0, 1.0].

      "DisplaceAtomsInRegion"
         Type:
            String

         Default value:
         Description:
            A string corresponding to the name of a region. When
            performing the initial random displacement, only displace
            atoms in the specified region.

      "DisplaceAtomsInRegionWeight"
         Type:
            Float

         Default value:
            0.0

         Description:
            The probability of generating a displacement involving
            only atoms from the region specified in
            [SaddleSearch%DisplaceAtomsInRegion]. This parameter is a
            numeric value that should fall within the interval [0.0,
            1.0].

      "DisplaceListedAtomWeight"
         Type:
            Float

         Default value:
            0.0

         Description:
            Relative probability to displace with an epicenter listed
            in displace_atomlist.

      "DisplaceListedAtoms"
         Type:
            String

         Default value:
         Description:
            Sets the active atoms to be used when the option
            [SaddleSearch%DisplaceAlongNormalModesWeight] is enabled.
            e.g. 1,2,3,5. By default, all normal modes are considered
            active.

      "DisplaceListedTypeWeight"
         Type:
            Float

         Default value:
            0.0

         Description:
            Relative probability to displace with an epicenter listed
            in displace_typelist.

      "DisplaceListedTypes"
         Type:
            String

         Default value:
         Description:
            A list of atom types (e.g., 'H O') to be considered as
            epicenters for displacement. Used with
            DisplaceListedTypeWeight.

      "DisplaceMagnitude"
         Type:
            Float

         Default value:
            0.1

         Unit:
            Angstrom

         Description:
            The standard deviation of the Gaussian displacement in
            each degree of freedom for the selected atoms.

      "DisplaceRadius"
         Type:
            Float

         Default value:
            4.0

         Unit:
            Angstrom

         Description:
            Atoms within this distance of the epicenter will be
            displaced.

      "DisplaceRandomWeight"
         Type:
            Float

         Default value:
            0.0

         Description:
            Relative probability to displace with a random epicenter.

      "MaxEnergy"
         Type:
            Float

         Default value:
            20.0

         Unit:
            eV

         Description:
            The energy (relative to the starting point of the saddle
            search) at which a saddle search explorer considers the
            search bad and terminates it.

      "MaxIterations"
         Type:
            Integer

         Default value:
            400

         Description:
            Maximum number of iterations for each saddle search run.

      "MinEnergyBarrier"
         Type:
            Float

         Default value:
            0.001

         Unit:
            eV

         Description:
            Minimum energy barrier to accept a new transition state.

      "MinModeMethod"
         Type:
            Multiple Choice

         Default value:
            dimer

         Options:
            [dimer, lanczos]

         Description:
            The minimum-mode following method to use.

      "RelaxFromSaddlePoint"
         Type:
            Bool

         Default value:
            No

         Description:
            Relaxes the saddle point geometries following the
            imaginary mode to get both reactants and products.

      "ZeroModeAbortCurvature"
         Type:
            Float

         Default value:
            0.01

         Unit:
            eV/Angstrom^2

         Description:
            The threshold in the frequency below which the minimum
            mode is considered zero. The calculation is aborted if the
            negative mode becomes zero.

   "SelectedListedAtomsForPESPointCharacter"
      Type:
         String

      Default value:
      GUI name:
         PESPoint character for atoms

      Description:
         Uses the Hessian matrix elements only for the listed atoms to
         determine the PES point character of a located state during
         the exploration. If not specified, the full Hessian is used.

   "SelectedRegionForPESPointCharacter"
      Type:
         String

      Default value:
      GUI name:
         PESPoint character for region

      Description:
         Uses the Hessian matrix elements only for the atoms in a
         particular region to determine the PES point character of a
         located state during the exploration. If not specified, the
         full Hessian is used.

   "StatesAlignment"
      Type:
         Block

      Description:
         Configures details of how the energy landscape configurations
         are aligned respect to the main chemical system [System].

      "DistanceDifference"
         Type:
            Float

         Default value:
            -1.0

         Unit:
            Angstrom

         Description:
            If the distance between two mapped atoms is larger than
            this threshold, the configuration is considered not
            aligned. If not specified, its value will set equal to
            [PESExploration%StructureComparison%DistanceDifference]

      "ReferenceRegion"
         Type:
            String

         Default value:
         Description:
            Defines the region that is considered as the reference for
            alignments. Atoms outside this region are ignored in the
            alignments.

      "RemoveUnaligned"
         Type:
            Bool

         Default value:
            No

         Description:
            If enabled, states that cannot be aligned with the
            reference structure according to the specified criteria
            will be removed from the energy landscape.

   "StructureComparison"
      Type:
         Block

      Description:
         Settings for structure comparison.

      "CheckRotation"
         Type:
            Bool

         Description:
            Rotates the system optimally before comparing structures.
            The default is to do this only for molecular systems when
            there are no fixed atom constraints.

      "CheckSymmetry"
         Type:
            Bool

         Default value:
            No

         Description:
            Considers that two systems are equal if they are
            equivalent by symmetry.

      "CovalentScale"
         Type:
            Float

         Default value:
            1.3

         Description:
            Scale factor for the covalent distances used in the
            neighboring detection. Only used if
            [StructureComparison%UseCovalent] is enabled. This is an
            experimental feature!

      "DistanceDifference"
         Type:
            Float

         Default value:
            0.1

         Unit:
            Angstrom

         Description:
            If the distance between two mapped atoms is larger than
            this threshold, the two configurations are considered
            different structures.

      "EnergyDifference"
         Type:
            Float

         Default value:
            0.1

         Unit:
            eV

         Description:
            If the energy difference between two configurations is
            below this threshold, we perform a geometric check to
            confirm they are distinct structures.

      "IndistinguishableAtoms"
         Type:
            Bool

         Default value:
            Yes

         Description:
            If yes, the order of the atoms does not affect the
            structural comparison. Atoms of the same element are then
            indistinguishable.

      "NeighborCutoff"
         Type:
            Float

         Unit:
            Angstrom

         Description:
            Defines the maximum distance at which atoms are considered
            neighbors. The default value is calculated as the mode of
            all interatomic distances within the main system, with a
            minimum effective value of 3.3 Å. This parameter is only
            active when [StructureComparison%CheckSymmetry] is false
            or [StructureComparison%UseCovalent] is false.

      "RemoveTranslation"
         Type:
            Bool

         Description:
            Translates the system optimally before comparing
            structures. The default is to do this only when there are
            no fixed atom constraints.

      "UseCovalent"
         Type:
            Bool

         Default value:
            No

         Description:
            Atoms are considered neighbors if the distance between
            them is lower than [StructureComparison%CovalentScale]
            times the covalent distance calculated following M.
            O'Keeffe and N.E. Brese, J. Am. Chem.Soc. 113 (1991) 3226.
            This option disables [StructureComparison%NeighborCutoff].
            This is an experimental feature!

   "Temperature"
      Type:
         Float

      Default value:
         298.15

      Unit:
         Kelvin

      Description:
         The temperature that the job will run at. This may be used in
         different ways depending on the job, e.g. acceptance
         probabilities for Monte-Carlo based jobs, thermostatting for
         dynamics based jobs, kinetic prefactors for jobs that find
         transition states. Some jobs may not use this temperature at
         all.

   "WriteEngineGradients"
      Type:
         Bool

      Default value:
         No

      Description:
         Write atomic gradients (negative of the atomic forces, as
         calculated by the engine) to the History section of ams.rkf.

   "WriteHistory"
      Type:
         Multiple Choice

      Default value:
         Converged

      Options:
         [None, Converged, All]

      Description:
         When to write the molecular geometry (and possibly other
         properties) to the history on the ams.rkf file. The default
         is to only write the converged geometries to the history. Can
         be changed to write no frames at all to the history, or write
         all frames (should only be used when testing because of the
         performance impact). Note that for parallel calculations,
         only the first group of processes writes to ams.rkf.

"PESPointCharacter"
   Type:
      Block

   Description:
      Options for the characterization of PES points.

   "Displacement"
      Type:
         Float

      Default value:
         0.04

      Description:
         Controls the size of the displacements used for numerical
         differentiation: The displaced geometries are calculated by
         taking the original coordinates and adding the mass-weighted
         mode times the reduced mass of the mode times the value of
         this keyword.

   "NegativeEigenvalueTolerance"
      Type:
         Float

      Default value:
         -0.0001

      Unit:
         Hartree/Bohr^2

      Description:
         The threshold in Hessian eigenvalue below which a mode is
         considered imaginary, i.e. indicating a transition state.
         This is a small negative number, as very small negative
         eigenvalues may be due to numerical noise on an essentially
         flat PES and do not indicate true transition states.

   "NumberOfModes"
      Type:
         Integer

      Default value:
         2

      Description:
         The number of (lowest) eigenvalues that should be checked.

   "Tolerance"
      Type:
         Float

      Default value:
         0.016

      Description:
         Convergence tolerance for residual in iterative Davidson
         diagonalization.

"PESScan"
   Type:
      Block

   Description:
      Configures the details of the potential energy surface scanning
      task.

   "CalcPropertiesAtPESPoints"
      Type:
         Bool

      Default value:
         No

      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:
         Yes

      Description:
         After the initial pass over the PES, restart the unconverged
         points from converged neighboring points. This has no effect
         if the "Optimize" key is set to "False".

   "Optimize"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Whether to optimize the geometry at each point along the
         scan, relaxing all degrees of freedom except those being
         scanned or explicitly constrained.

   "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. Note that there can be only one ScanCoordinate
         containing a lattice scan in any PES scan job.

      "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.

      "CellVolumeRange"
         Type:
            Float List

         Unit:
            Angstrom^3

         Description:
            Two numbers for the initial and final cell volume. The
            cell is scaled isotropically between these values. Can not
            be used together with any other coordinate within the same
            ScanCoordinate block.

      "CellVolumeScalingRange"
         Type:
            Float List

         Description:
            Two scaling factors for the initial and final cell volume.
            A value of '0.9 1.1' would result in an isotropic scaling
            between 90% and 110% of the cell volume of the input
            system. Can not be used together with any other coordinate
            within the same ScanCoordinate block.

      "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.

      "DifDist"
         Type:
            String

         Recurring:
            True

         Description:
            Scan the difference distance between two pairs of atoms,
            R(12)-R(34). Four atom indices followed by two real
            numbers delimiting the transit range in Angstrom.

      "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.

      "FromLattice"
         Type:
            Non-standard block

         Description:
            Up to three lattice vectors to start the scan at. Has to
            be used in combination with the ToLattice keyword and no
            other coordinate within the same ScanCoordinate block.
            Unit can be specified in the header. Default unit is
            Angstrom.

      "FromStrainVoigt"
         Type:
            Float List

         Description:
            The elements of the initial lattice strain in Voigt
            notation. 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. Has to be used in combination with the
            ToStrainVoigt keyword and no other coordinate within the
            same ScanCoordinate block.

      "LatticeARange"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Scans the length of the first lattice vector. Can be
            combined with the LatticeBRange and LatticeCRange
            keywords, but no other coordinates within the same
            ScanCoordinate.

      "LatticeBRange"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Scans the length of the second lattice vector. Can be
            combined with the LatticeARange and LatticeCRange keyword,
            but no other coordinates within the same ScanCoordinate..

      "LatticeCRange"
         Type:
            Float List

         Unit:
            Angstrom

         Description:
            Scans the length of the third lattice vector. Can be
            combined with the LatticeARange and LatticeBRange keyword,
            but no other coordinates within the same ScanCoordinate..

      "SumDist"
         Type:
            String

         Recurring:
            True

         Description:
            Scan the sum of distances between two pairs of atoms,
            R(12)+R(34). Four atom indices followed by two real
            numbers delimiting the transit range in Angstrom.

      "ToLattice"
         Type:
            Non-standard block

         Description:
            Up to three lattice vectors to end the scan at. Unit can
            be specified in the header. Default unit is Angstrom.

      "ToStrainVoigt"
         Type:
            Float List

         Description:
            The elements of the final lattice strain in Voigt
            notation. 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.

      "nPoints"
         Type:
            Integer

         Default value:
            10

         Description:
            The number of points along the scanned coordinate. Must be
            greater or equal 2.

"Phonons"
   Type:
      Block

   Description:
      Configures the phonons calculation.

   "BandStructure"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Calculate phonons band structure

      Description:
         Calculates and saves the phonon band structure for
         visualization. Further configuration options for analytical
         calculations may be available in the engine-specific settings
         ("Phonons%BandStructure").

   "DOS"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Calculate phonon DOS

      Description:
         Calculates and saves the phonon density of states (DOS) for
         visualization. Further configuration options for analytical
         calculations may be available in the engine-specific settings
         ("Phonons%DOS").

   "Method"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, Analytical, Numerical]

      Description:
         Determines how phonons are calculated. "Auto" selects the
         analytical method if supported by the engine, otherwise it
         defaults to numerical calculation. Configure numerical
         parameters in the "NumericalPhonons" section. Engine-specific
         options for analytical phonon calculations may be available
         in "Engine%Phonons".

"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).

   "BondOrders"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests the engine to calculate bond orders.

         For MM engines these might just be the defined bond orders
         that go into the force-field, while for QM engines, this
         might trigger a bond order analysis based on the electronic
         structure. For engines that do not have a bond order analysis
         method, a bond guessing algorithm will be used. See also the
         input options in the BondOrders block.

   "Charges"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests the engine to calculate the atomic charges.

   "DipoleGradients"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests the engine to calculate the nuclear gradients of the
         electric dipole moment of the molecule. This can only be
         requested for non-periodic systems.

   "DipoleMoment"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests the engine to calculate the electric dipole moment
         of the molecule. This can only be requested for non-periodic
         systems.

   "ElasticTensor"
      Type:
         Bool

      Default value:
         No

      Description:
         Calculate the elastic tensor.

   "GSES"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests the engine to calculate the gradients of ground to
         excited state properties.

   "Gradients"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Nuclear gradients

      Description:
         Calculate the nuclear gradients.

   "Hessian"
      Type:
         Bool

      Default value:
         No

      Description:
         Whether or not to calculate the Hessian.

   "Molecules"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests an analysis of the molecular components of a system,
         based on the bond orders calculated by the engine.

   "NormalModes"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Frequencies

      Description:
         Calculate the frequencies and normal modes of vibration, as
         well as the corresponding IR intensities, if the engine
         supports these calculations natively or can calculate dipole
         moments.

   "OrbitalsInfo"
      Type:
         Bool

      Default value:
         No

      Description:
         Basic molecular orbitals information: orbital energies,
         occupations, HOMO, LUMO and HOMO-LUMO gap.

   "Other"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Other (engine specific) properties. Details are configured in
         the engine block.

   "PESPointCharacter"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Characterize PES point

      Description:
         Determine whether the sampled PES point is a minimum or
         saddle point. Note that for large systems this does not
         entail the calculation of the full Hessian and can therefore
         be used to quickly confirm the success of a geometry
         optimization or transition state search.

   "Phonons"
      Type:
         Bool

      Default value:
         No

      Description:
         Calculate the phonons (for periodic systems).

   "Polarizability"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests the engine to calculate the polarizability tensor of
         the system.

   "Raman"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests calculation of Raman intensities for vibrational
         normal modes.

   "SelectedRegionForHessian"
      Type:
         String

      GUI name:
         Hessian only for

      Description:
         Compute the Hessian matrix elements only for the atoms in a
         particular region. If not specified, the Hessian will be
         computed for all atoms.

   "StressTensor"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Stress tensor

      Description:
         Calculate the stress tensor.

   "VCD"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests calculation of VCD for vibrational normal modes.

   "VROA"
      Type:
         Bool

      Default value:
         No

      Description:
         Requests calculation of VROA for vibrational normal modes.

"Raman"
   Type:
      Block

   Description:
      Configures details of the Raman or VROA calculation.

   "FreqRange"
      Type:
         Float List

      Unit:
         cm-1

      Recurring:
         True

      GUI name:
         Frequency range

      Description:
         Specifies a frequency range within which all modes will be
         scanned. 2 numbers: an upper and a lower bound.

   "IncidentFrequency"
      Type:
         Float

      Default value:
         0.0

      Unit:
         eV

      Description:
         Frequency of incident light.

   "LifeTime"
      Type:
         Float

      Default value:
         0.0

      Unit:
         hartree

      Description:
         Specify the resonance peak width (damping) in Hartree units.
         Typically the lifetime of the excited states is approximated
         with a common phenomenological damping parameter. Values are
         best obtained by fitting absorption data for the molecule,
         however, the values do not vary a lot between similar
         molecules, so it is not hard to estimate values. A typical
         value is 0.004 Hartree.

"Replay"
   Type:
      Block

   Description:
      Configures the details of the Replay task.

   "File"
      Type:
         String

      GUI name:
         Restart from

      Description:
         Provide an ams.rkf file (or a .results folder) from a
         previously run job to replay. The file needs to contain a
         History section.

   "Frames"
      Type:
         Integer List

      Description:
         List of frames from the History section to recompute.

         If you use AMSmovie, you can use it to find the frame number,
         but add one since frame numbers in AMSmovie start at 0.

         If not specified the recomputed frames are determined
         automatically based on the task of the job that is being
         replayed: PES scans and NEB calculations will only have the
         converged points replayed, while all other tasks will have
         all frames recomputed.

         Specifying the frames to recompute in the input is probably
         only useful when replaying trajectories from
         MolecularDynamics calculations.

   "StoreAllResultFiles"
      Type:
         Bool

      Default value:
         No

      Description:
         If this option is enabled AMS will produce a separate engine
         output file for every replayed frame.

         While basic properties like energy, gradients, stress tensor,
         etc. are stored anyway on the History section in the AMS
         driver output file (if they were requested in the Properties
         block), engine specific properties (e.g. excitations energies
         from ADF) will only be available if the full result files are
         stored.

"Restraints"
   Type:
      Block

   Description:
      The Restraints block allows to add soft constraints to the
      system. A restraint is a potential energy function (a spring)
      attached to a certain coordinate, for example, an interatomic
      distance, with its minimum at the specified optimal value. A
      restraint is defined using one or two parameters: the
      ForceConstant and, for some types, the F(Inf) value. The
      ForceConstant parameter corresponds to second derivative of the
      restraint potential energy d2V(x)/dx^2 for any x (harmonic
      restraints) or only at at x=0 (other restraints). Here, x is a
      deviation from the restraint's optimal value.

   "Angle"
      Type:
         String

      Recurring:
         True

      Description:
         Specify three atom indices i j k followed by an angle in
         degrees and, optionally, by the ForceConstant (default is 0.3
         in a.u.), profile type and F(Inf) (in a.u.). This restraint
         will try to keep the i-j-k angle at the given value. For
         periodic systems this restraint follows the minimum image
         convention.

   "DifDist"
      Type:
         String

      Recurring:
         True

      Description:
         Specify four atom indices i j k l followed by the distance in
         Angstrom and, optionally, by the ForceConstant (default is
         1.0 in a.u.), profile type and F(Inf) (in a.u.). This
         restraint will try to keep the difference R(ij)-R(kl) at the
         given value. For periodic systems this restraint follows the
         minimum image convention.

   "Dihedral"
      Type:
         String

      Recurring:
         True

      Description:
         Specify four atom indices i j k l followed by an angle in
         degrees and, optionally, by the ForceConstant (default is 0.1
         in a.u.), profile type and F(Inf) (in a.u.). This restraint
         will try to keep the i-j-k-l dihedral angle at the given
         value. For periodic systems this restraint follows the
         minimum image convention.

   "Distance"
      Type:
         String

      Recurring:
         True

      Description:
         Specify two atom indices followed by the distance in Angstrom
         and, optionally, by the ForceConstant (default is 1.0 in
         a.u.), profile type and F(Inf) (in a.u.). This restraint will
         try to keep the distance between the two specified atoms at
         the given value. For periodic systems this restraint follows
         the minimum image convention.

   "FInfinity"
      Type:
         Float

      Default value:
         1.0

      GUI name:
         Default F(inf)

      Description:
         Specify the default asymptotic value for the restraint force
         for the Hyperbolic and Erf profiles, in Hartree/Bohr or
         Hartree/radian.

         A per-restraint value can be specified after the profile type
         on the corresponding restraint line.

   "Profile"
      Type:
         Multiple Choice

      Default value:
         Harmonic

      Options:
         [Harmonic, Hyperbolic, Erf, GaussianWell]

      GUI name:
         Default restraint profile

      Description:
         Select the default type of restraint profile.

         The harmonic profile is most suitable for geometry
         optimizations but may result is very large forces that can be
         problematic in molecular dynamic.

         For MD simulations the Hyperbolic or Erf may be more suitable
         because the restraint force is bounded by a user-defined
         value.

         A per-restraint profile type can be specified after the
         ForceConstant value on the corresponding restraint line.

   "SumDist"
      Type:
         String

      Recurring:
         True

      Description:
         Specify four atom indices i j k l followed by the distance in
         Angstrom and, optionally, by the ForceConstant (default is
         1.0 in a.u.), profile type and F(Inf) (in a.u.). This
         restraint will try to keep the sum R(ij)+R(kl) at the given
         value. For periodic systems this restraint follows the
         minimum image convention.

   "Units"
      Type:
         Multiple Choice

      Default value:
         Default

      Options:
         [Default, MD]

      GUI name:
         Units

      Description:
         Change units for energy, force and force constant values from
         the default (atomic units) to those often used in the MD
         community (based on kcal/mol and Angstrom). Units for the
         optimal distances are not affected and are always Angstrom.

"RigidMotions"
   Type:
      Block

   Description:
      Specify which rigid motions of the total system are allowed. An
      external field is not considered part of the system. Normally
      the automatic option is doing what you want. However this
      feature can be used as a means of geometry constraint.

   "AllowRotations"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, None, All, X, Y, Z, XY, XZ, YZ]

      Description:
         Which overall rotations of the system are allowed

   "AllowTranslations"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, None, All, X, Y, Z, XY, XZ, YZ]

      Description:
         Which overall transitions of the system are allowed

   "Tolerance"
      Type:
         Float

      Default value:
         1e-06

      Description:
         Tolerance for detecting linear molecules. A large value means
         larger deviation from linearity is permitted.

"RNGSeed"
   Type:
      Integer List

   Description:
      Initial seed for the (pseudo)random number generator. This
      should be omitted in most calculations to avoid introducing bias
      into the results. If this is unset, the generator will be seeded
      randomly from external sources of entropy. If you want to
      exactly reproduce an older calculation, set this to the numbers
      printed in its output.

"SCMMatrix"
   Type:
      Block

   Description:
      Technical settings for programs using the AMT matrix system.
      Currently this is only used by DFTB

   "DistributedMatrix"
      Type:
         Block

      Description:
         Technical settings for Distributed matrices

      "ColBlockSize"
         Type:
            Integer

         Default value:
            64

         Description:
            See comment of RowBlockSize.

      "RowBlockSize"
         Type:
            Integer

         Default value:
            64

         Description:
            The matrix is divided into blocks of size RowBlockSize x
            ColBlockSize. The smaller the blocks the better the
            distribution, but at the expense of increased
            communication overhead

   "Type"
      Type:
         Multiple Choice

      Default value:
         Elpa

      Options:
         [Auto, Reference, ScaLapack, Elpa]

      Description:
         Determines which implementation is used to support the
         AbstractMatrixType.

"Symmetry"
   Type:
      Block

   Description:
      Specifying details about the details of symmetry detection and
      usage.

   "SymmetrizeTolerance"
      Type:
         Float

      Default value:
         0.05

      Description:
         Tolerance used to detect symmetry in case symmetrize is
         requested.

   "Tolerance"
      Type:
         Float

      Default value:
         1e-07

      Description:
         Tolerance used to detect symmetry in the system.

"System"
   Type:
      Block

   Recurring:
      True

   Description:
      Specification of the chemical system. For some applications more
      than one system may be present in the input. In this case, all
      systems except one must have a non-empty string ID specified
      after the System keyword. The system without an ID is considered
      the main one.

   "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. Each line should contain two atom
         indices, followed by the bond order (1, 1.5, 2, 3 for single,
         aromatic, double and triple bonds) and (optionally) the cell
         shifts for periodic systems. May be used by MM engines and
         for defining constraints. If the system is periodic and none
         of the bonds have the cell shift defined then AMS will
         attempt to determine them following the minimum image
         convention.

   "Charge"
      Type:
         Float

      Default value:
         0.0

      GUI name:
         Total charge

      Description:
         The system's total charge in atomic units.

   "ElectrostaticEmbedding"
      Type:
         Block

      Description:
         Container for electrostatic embedding options, which can be
         combined.

      "ElectricField"
         Type:
            Float List

         Unit:
            V/Angstrom

         Description:
            External homogeneous electric field with three Cartesian
            components: ex, ey, ez, the default unit being V/Å.

            In atomic units: Hartree/(e bohr) = 51.422 V/Angstrom; the
            relation to SI units is: 1 Hartree/(e bohr) = 5.14 ... e11
            V/m.

            Supported by the engines adf, band, dftb and mopac.

            For periodic systems the field may only have nonzero
            components orthogonal to the direction(s) of periodicity
            (i.e. for 1D periodic system the x-component of the
            electric field should be zero, while for 2D periodic
            systems both the x and y components should be zero. This
            options cannot be used for 3D periodic systems.

      "MultipolePotential"
         Type:
            Block

         Description:
            External point charges (and dipoles).

         "ChargeModel"
            Type:
               Multiple Choice

            Default value:
               Point

            Options:
               [Point, Gaussian]

            Description:
               A multipole may be represented by a point (with a
               singular potential at its location) or by a spherical
               Gaussian distribution.

         "ChargeWidth"
            Type:
               Float

            Default value:
               -1.0

            Description:
               The width parameter in a.u. in case a Gaussian charge
               model is chosen. A negative value means that the width
               will be chosen automatically.

         "Coordinates"
            Type:
               Non-standard block

            Description:
               Positions and values of the multipoles, one per line.
               Each line has the following format:

               x y z q, or

               x y z q µx µy µz.

               Here x, y, z are the coordinates in Å, q is the charge
               (in atomic units of charge) and µx, µy, µz are the
               (optional) dipole moment components (in atomic units,
               i.e. e*Bohr).

               Periodic systems are not supported.

   "FractionalCoords"
      Type:
         Bool

      Default value:
         No

      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 the geometry from a file (instead of from Atoms and
         Lattice 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.

   "Modify"
      Type:
         Block

      Description:
         Modifications to make to the chemical system after
         construction. This block is read like a script and the
         modifications applied top to bottom.

      "EnableAtomAttributes"
         Type:
            Multiple Choice

         Options:
            [gui, adf, band, forcefield, dftb, reaxff, qe]

         Recurring:
            True

         Description:
            Enables an atomic attribute group. This is only necessary
            if you want a group enabled, but no atom in the input is
            using any attribute from that group.

      "GuessBonds"
         Type:
            Bool

         Recurring:
            True

         Description:
            Guesses bonds based on the atomic elements and the
            geometry. Keeps existing bonds.

      "LatticeStrain"
         Type:
            Float List

         Recurring:
            True

         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.

      "MapAtomsToUnitCell"
         Type:
            Float List

         Recurring:
            True

         Description:
            For periodic systems the atoms will be moved to the
            central unit cell where all their fractional coordinates
            are in the range [start_range,start_range+1). No mapping
            will take place along non-periodic directions. If just a
            single number is given, it corresponds to start_range. If
            multiple numbers are given, they should match the number
            of lattice vectors and will be used as start ranges along
            the individual lattice vectors. If no number is given at
            all, the mapping will be done to the [-0.5:0.5) cell.

      "PerturbCoordinates"
         Type:
            Float

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Perturb the atomic coordinates by adding random numbers
            between [-PerturbCoordinates,PerturbCoordinates] to each
            Cartesian component. This can be useful if you want to
            break the symmetry of your system (e.g. for a geometry
            optimization).

      "PerturbLattice"
         Type:
            Float

         Recurring:
            True

         Description:
            Perturb the lattice vectors by applying random strain with
            matrix elements between [-PerturbLattice,PerturbLattice].
            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

         Recurring:
            True

         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).

      "SuperCellTrafo"
         Type:
            Integer List

         Recurring:
            True

         Description:
            Create a supercell of the input system (only possible for
            periodic systems) \vec{a}_i' = \sum_j T_{ij} \vec{a}_j.
            The integer numbers represent the supercell transformation
            T_{ij}: 1 number for 1D PBC, 4 numbers for 2D PBC
            corresponding to a 2x2 matrix (order:
            (1,1),(1,2),(2,1),(2,2)) and 9 numbers for 3D PBC
            corresponding to a 3x3 matrix (order:
            (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)).

      "Symmetrize"
         Type:
            Bool

         Recurring:
            True

         Description:
            Symmetrizes a system, using either the
            "symmetrize_molecule" or "symmetrize_cell" method,
            depending on periodicity.

      "SymmetrizeMoleculeTo"
         Type:
            String

         Recurring:
            True

         Description:
            Symmetrizes a molecule to a particular symmetry given by a
            Schoenflies symbol. Symmetrizes the atomic coordinates to
            machine precision, but does NOT rototranslate the molecule
            in any way. If the symmetrization fails, an error will be
            raised.

      "Translate"
         Type:
            Float List

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Translate all atoms by a vector.

"Task"
   Type:
      Multiple Choice

   Options:
      [GCMC, GeometryOptimization, IRC, MolecularDynamics, NEB,
      PESExploration, PESScan, Replay, SinglePoint,
      TransitionStateSearch, VibrationalAnalysis]

   Description:
      Specify the computational task to perform:

      * Single Point: keep geometry as is

      * Geometry Optimization: minimize energy

      * Transition State: search for a transition state

      * IRC: intrinsic reaction coordinate

      * PES Scan: scan the potential energy surface

      * NEB: Nudged elastic band for reaction path optimization

      * Vibrational Analysis: perform one of the analysis types
        selected on the options page

      * Molecular Dynamics: perform MD simulation

      * GCMC: Grand Canonical Monte Carlo simulation

      * PES Exploration: automated potential energy surface
        exploration

      * Replay: recompute frames from the trajectory of a previously
        run job

"Thermo"
   Type:
      Block

   Description:
      Options for thermodynamic properties (assuming an ideal gas).
      The properties are computed for all specified temperatures.

   "LowFrequencyCorrector"
      Type:
         Block

      Description:
         Options for the dampener-powered free rotor interpolator that
         corrects thermodynamic quantities for low frequencies. See
         DOI:10.1021/jp509921r and DOI:10.1002/chem.201200497.

      "Alpha"
         Type:
            Float

         Default value:
            4.0

         Description:
            The exponent term used in the dampener.

      "Frequency"
         Type:
            Float

         Default value:
            100.0

         Unit:
            cm-1

         Description:
            The frequency around which the dampener interpolates
            between harmonic oscillator and free rotor quantities.

      "MomentOfInertia"
         Type:
            Float

         Default value:
            1e-44

         Unit:
            kg m^2

         GUI name:
            Averaging Moment of Inertia

         Description:
            The moment of inertia used to restrict entropy results for
            very small frequencies (generally around less than 1
            cm-1).

   "Pressure"
      Type:
         Float

      Default value:
         1.0

      Unit:
         atm

      Description:
         The pressure at which the thermodynamic properties are
         computed.

   "Temperatures"
      Type:
         Float List

      Default value:
         [298.15]

      Unit:
         Kelvin

      Value Range:
         value >= 0

      Description:
         List of temperatures at which the thermodynamic properties
         will be calculated.

"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).

   "ReactionCoordinate"
      Type:
         Block

      Description:
         Specify components of the transition state reaction
         coordinate (TSRC) as a linear combination of internal
         coordinates (distances or angles).

      "Angle"
         Type:
            String

         Recurring:
            True

         Description:
            The TSRC contains the valence angle between the given
            atoms. Three atom indices followed by the weight.

      "Block"
         Type:
            String

         Recurring:
            True

         Description:
            Name of the region. Only atoms of the region will be
            included in the TSRC. It is useful when computing the
            reaction coordinate from the initial Hessian, in which
            case only part of the Hessian will be analyzed.

      "BlockAtoms"
         Type:
            Integer List

         Value Range:
            value > 0

         Recurring:
            True

         Description:
            List of atom indices. Only the listed atoms will be
            included in the TSRC. It is useful when computing the
            reaction coordinate from the initial Hessian, in which
            case only part of the Hessian will be analyzed.

      "Coordinate"
         Type:
            String

         Recurring:
            True

         Description:
            The TSRC contains Cartesian displacement of an atom: atom
            index followed by [x|y|z] and the weight.

      "Dihedral"
         Type:
            String

         Recurring:
            True

         Description:
            The TSRC contains the dihedral angle between the given
            atoms. Four atom indices followed by the weight.

      "Distance"
         Type:
            String

         Recurring:
            True

         Description:
            The TSRC contains the distance between the given atoms.
            Two atom indices followed by the weight.

"UseSymmetry"
   Type:
      Bool

   Default value:
      Yes

   Description:
      Whether to use the system's symmetry in AMS. Symmetry is
      recognized within a tolerance as given in the Symmetry key.

"VibrationalAnalysis"
   Type:
      Block

   Description:
      Input data for all vibrational analysis utilities in the AMS
      driver.

   "AbsorptionSpectrum"
      Type:
         Block

      Description:
         Settings related to the integration of the spectrum for
         vibronic tasks.

      "AbsorptionRange"
         Type:
            Float List

         Default value:
            [-200.0, 4000.0]

         Unit:
            cm-1

         Recurring:
            True

         Description:
            Specifies frequency range of the vibronic absorption
            spectrum to compute. 2 numbers: an upper and a lower
            bound.

      "FrequencyGridPoints"
         Type:
            Integer

         Default value:
            400

         Description:
            Number of grid points to use for the spectrum

      "LineWidth"
         Type:
            Float

         Default value:
            200.0

         Unit:
            cm-1

         Description:
            Lorentzian line-width.

      "SpectrumOffset"
         Type:
            Multiple Choice

         Default value:
            relative

         Options:
            [absolute, relative]

         Description:
            Specifies whether provided frequency range are absolute
            frequencies or frequencies relative to computed 0-0
            excitation energy.

   "Displacement"
      Type:
         Float

      Unit:
         Bohr

      Description:
         Step size for finite difference calculations.

   "ExcitationSettings"
      Type:
         Block

      Description:
         Block that contains settings related to the excitation for
         vibronic tasks.

      "EnergyInline"
         Type:
            Float

         Unit:
            hartree

         Description:
            Vertical excitation energy, used when [ExcitationInfo] =
            [Inline].

      "ExcitationFile"
         Type:
            String

         Description:
            Path to a .rkf/.t21 file containing the excited state
            information (gradients, transition dipoles and energies).

      "ExcitationInputFormat"
         Type:
            Multiple Choice

         Default value:
            File

         Options:
            [File, Inline]

         Description:
            Select how the application should retrieve the excited
            state information (energy, gradient).

      "GradientInline"
         Type:
            Non-standard block

         Description:
            Excited state gradient at ground state equilibrium
            geometry, used when [ExcitationInfo] = [Inline].

      "Singlet"
         Type:
            Non-standard block

         Description:
            Symmetry labels + integer indices of desired singlet
            transitions (VG-FC absorption spectra support only 1 at a
            time)

      "Triplet"
         Type:
            Non-standard block

         Description:
            Symmetry labels + integer indices of desired triplet
            transitions (VG-FC absorption spectra support only 1 at a
            time)

   "ModeTracking"
      Type:
         Block

      Description:
         Input data for Mode Tracking.

      "HessianGuess"
         Type:
            Multiple Choice

         Default value:
            CalculateWithFastEngine

         Options:
            [Unit, File, CalculateWithFastEngine]

         GUI name:
            Guess Hessian

         Description:
            Sets how to obtain the guess for the Hessian used in the
            preconditioner (if one is to be used).

      "HessianInline"
         Type:
            Non-standard block

         Description:
            Initial guess for the (non-mass-weighted) Hessian in a 3N
            x 3N block, used when [HessianGuess] = [Inline].

      "HessianPath"
         Type:
            String

         Description:
            Path to a .rkf file containing the initial guess for the
            Hessian, used when [HessianGuess] = [File]. It may also be
            the name of the results folder containing the engine file.

      "ToleranceForBasis"
         Type:
            Float

         Default value:
            0.0001

         Description:
            Convergence tolerance for the contribution of the newest
            basis vector to the tracked mode.

      "ToleranceForNorm"
         Type:
            Float

         Default value:
            0.0005

         Description:
            Convergence tolerance for residual RMS value.

      "ToleranceForResidual"
         Type:
            Float

         Default value:
            0.0005

         Description:
            Convergence tolerance for the maximum component of the
            residual vector.

      "ToleranceForSpectrum"
         Type:
            Float

         Default value:
            0.01

         Description:
            Convergence tolerance for the spectrum in Vibronic
            Structure Tracking.

      "TrackingMethod"
         Type:
            Multiple Choice

         Default value:
            OverlapInitial

         Options:
            [OverlapInitial, DifferenceInitial, FreqInitial,
            IRInitial, OverlapPrevious, DifferencePrevious,
            FreqPrevious, IRPrevious, HighestFreq, HighestIR,
            LowestFreq, LowestResidual]

         Description:
            Set the tracking method that will be used. Vibronic
            Structure Tracking uses Largest Displacement.

      "UpdateMethod"
         Type:
            Multiple Choice

         Options:
            [JD, D, I]

         Description:
            Chooses the method for expanding the Krylov subspace: (I)
            No preconditioner (VST default), (D) Davidson or (JD)
            vdVorst-Sleijpen variant of Jacobi-Davidson (Mode tracking
            default).

   "NormalModes"
      Type:
         Block

      Description:
         All input related to processing of normal modes. Not
         available for vibronic structure tracking (as no modes are
         required there).

      "MassWeightInlineMode"
         Type:
            Bool

         Default value:
            Yes

         Description:
            MODE TRACKING ONLY: The supplied modes must be mass-
            weighted. This tells the program to mass-weight the
            supplied modes in case this has not yet been done. (True
            means the supplied modes will be mass-weighted by the
            program, e.g. the supplied modes are non-mass-weighted.)

      "ModeFile"
         Type:
            String

         Description:
            Path to a .rkf or .t21 file containing the modes which are
            to be scanned. Which modes will be scanned is selected
            using the criteria from the [ModeSelect] block.) This key
            is optional for Resonance Raman and Vibronic Structure.
            These methods can also calculate the modes using the
            engine.

      "ModeInline"
         Type:
            Non-standard block

         Recurring:
            True

         Description:
            MODE TRACKING ONLY: Coordinates of the mode which will be
            tracked in a N x 3 block (same as for atoms), used when
            [ModeInputFormat] = [Inline]. Rows must be ordered in the
            same way as in the [System%Atoms] block. Mode Tracking
            only.

      "ModeInputFormat"
         Type:
            Multiple Choice

         Default value:
            File

         Options:
            [File, Inline, Hessian]

         GUI name:
            Tracked mode source

         Description:
            Set how the initial guesses for the modes are supplied.
            Only mode tracking supports the Inline and Hessian
            options.

      "ModeSelect"
         Type:
            Block

         Description:
            Pick which modes to read from file.

         "DisplacementBound"
            Type:
               Float

            Description:
               Vibronic Structure (Refinement), Resonance Raman:
               Select all modes with a dimensionless oscillator
               displacement greater than the specified value.

         "FreqAndIRRange"
            Type:
               Float List

            Recurring:
               True

            Description:
               Specifies a combined frequency and IR intensity range
               within which all modes will be selected. First 2
               numbers are the frequency range in cm-1, last 2 numbers
               are the IR intensity range in km/mol.

         "FreqRange"
            Type:
               Float List

            Unit:
               cm-1

            Recurring:
               True

            Description:
               Specifies a frequency range within which all modes will
               be selected. 2 numbers: an upper and a lower bound.
               Calculating all modes higher than some frequency can be
               achieved by making the upper bound very large.

         "Full"
            Type:
               Bool

            Default value:
               No

            GUI name:
               All modes

            Description:
               Select all modes. This only make sense for Mode
               Scanning calculations.

         "HighFreq"
            Type:
               Integer

            GUI name:
               # High frequencies

            Description:
               Select the N modes with the highest frequencies.

         "HighIR"
            Type:
               Integer

            GUI name:
               # High IR

            Description:
               Select the N modes with the largest IR intensities.

         "IRRange"
            Type:
               Float List

            Unit:
               km/mol

            Recurring:
               True

            Description:
               Specifies an IR intensity range within which all modes
               will be selected. 2 numbers: an upper and a lower
               bound.

         "ImFreq"
            Type:
               Bool

            Default value:
               No

            GUI name:
               All imaginary frequencies

            Description:
               Select all modes with imaginary frequencies.

         "LargestDisplacement"
            Type:
               Integer

            Description:
               Vibronic Structure (Refinement), Resonance Raman:
               Select the N modes with the largest VG-FC displacement.

         "LowFreq"
            Type:
               Integer

            GUI name:
               # Low frequencies

            Description:
               Select the N modes with the lowest frequencies.
               Includes imaginary modes which are recorded with
               negative frequencies.

         "LowFreqNoIm"
            Type:
               Integer

            GUI name:
               # Low positive frequencies

            Description:
               Select the N modes with the lowest non-negative
               frequencies. Imaginary modes have negative frequencies
               and are thus omitted here.

         "LowIR"
            Type:
               Integer

            GUI name:
               # Low IR

            Description:
               Select the N modes with the smallest IR intensities.

         "ModeNumber"
            Type:
               Integer List

            GUI name:
               Mode numbers

            Description:
               Indices of the modes to select.

      "ScanModes"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Scan after refining

         Description:
            Supported by: Mode Tracking, Mode Refinement, Vibronic
            Structure Refinement: If enabled an additional
            displacement will be performed along the new modes at the
            end of the calculation to obtain refined frequencies and
            IR intensities. Equivalent to running the output file of
            the mode tracking calculation through the AMS ModeScanning
            task.

   "ResonanceRaman"
      Type:
         Block

      Description:
         Block that contains settings for the calculation of Resonance
         Raman calculations

      "IncidentFrequency"
         Type:
            Float

         Unit:
            cm-1

         Description:
            Frequency of incident light. Also used to determine most
            important excitation in case more than one is provided.

      "LifeTime"
         Type:
            Float

         Default value:
            0.00045

         Unit:
            hartree

         Description:
            Lifetime of Raman excited state.

      "RamanOrder"
         Type:
            Integer

         Default value:
            2

         Description:
            Order up to which to compute Raman transitions

      "RamanRange"
         Type:
            Float List

         Default value:
            [0.0, 2000.0]

         Unit:
            cm-1

         Recurring:
            True

         Description:
            Specifies frequency range of the Raman spectrum to
            compute. 2 numbers: an upper and a lower bound.

   "Type"
      Type:
         Multiple Choice

      Options:
         [ModeScanning, ModeTracking, ModeRefinement,
         VibronicStructure, VibronicStructureTracking,
         VibronicStructureRefinement, ResonanceRaman]

      Description:
         Specifies the type of vibrational analysis that should be
         performed

   "VSTRestartFile"
      Type:
         String

      Description:
         Path to a .rkf file containing restart information for VST.


analysis
--------

"AutoCorrelation"
   Type:
      Block

   Recurring:
      True

   Description:
      All input related to auto correlation functions.

   "Atoms"
      Type:
         Block

      Description:
         Relevant if Property is set to Velocities,
         DipoleMomentFromCharges, DipoleDerivativeFromCharges, or
         DiffusionCoefficient. Atom numbers or elements for the set of
         atoms for which the property is read/computed. By default all
         atoms are used.

      "Atom"
         Type:
            Integer

         Recurring:
            True

         Description:
            Atom number.

      "Element"
         Type:
            String

         Recurring:
            True

         Description:
            Element Symbol Atom.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Region name.

   "ComputeStandardDeviation"
      Type:
         Bool

      Default value:
         No

      Description:
         Compute the standard deviation of the autocorrelation
         function. This will slow down the calculation by
         approximately a factor 2. The standard deviation takes into
         account the variance introduced by both the simulation time
         and by the contributing atoms.

   "DataReading"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, AtOnce, BlockWise]

      Description:
         The KF data can be read in and handled once, or blockwise.
         The former is memory intensive, but mostly faster. If Auto is
         selected, the data is read at once if it is less than 1 GB,
         and blockwise if it is more.

   "LimitMaxFrame"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If set to true (default), the program will exit if MaxFrame
         is selected larger than half the provided number of frames.
         This limit is only active is UseAllValues is set to false.

   "MaxCorrelationTime"
      Type:
         Float

      Description:
         The maximum correlation time in fs. The default is half the
         simulation time, except when the PressureTensor is read from
         the ams.rkf, in which case it is 10 percent of the simulation
         time. The PressureTensor is read when the Properties
         PressureTensor, Viscosity, or ViscosityFromBinLog are
         selected.

   "MaxFrame"
      Type:
         Integer

      Description:
         The maximum number of frames for which the autocorrelation
         function will be computed. The default is half of the number
         of provided frames. Determines the same settings as
         MaxCorrelationTime. If both are set, MaxCorrelationTime will
         take precedence.

   "NPointsHighestFreq"
      Type:
         Integer

      Default value:
         4

      Description:
         The number of points (timesteps) used for the highest
         frequency displayed in spectrum. This determines up to which
         frequency the spectrum is displayed. If the spacing between
         time-steps used for the ACF is 1 fs, then by default the
         maximum frequency displayed is 0.25 fs-1 (or 8339 cm-1). This
         corresponds to a (default) value of NPointsHighestFreq of 4.
         A higher number selected here, will result in a lower maximum
         frequency returned by the program. The lowest possible value
         (spectrum up to highest possible frequency) is 2.

   "PerElement"
      Type:
         Bool

      Default value:
         No

      Description:
         Compute ACF for all elements in the system. Any other
         settings in the block will be used.

   "Property"
      Type:
         Multiple Choice

      Default value:
         DipoleDerivativeFromCharges

      Options:
         [Velocities, DipoleMomentFromCharges, DiffusionCoefficient,
         DipoleDerivativeFromCharges, PressureTensor, Viscosity,
         DipoleMomentFromBinLog, ViscosityFromBinLog]

      Description:
         Compute the ACF either from velocities (from rkf), the dipole
         moment (from coordinates and atomic charges in rkf), the
         dipole moment derivative (from velocities and atomic charges
         in rkf), from the pressure tensor (from rkf), or from values
         specified in input. Selecting DiffusionCoefficient is
         equivalent to selecting Velocities. The default,
         DipoleDerivativeFromCharges, results in the computation of an
         IR spectrum.DipoleMomentFromBinLog and ViscosityFromBinLog
         allow the relevant properties (dipole moment and pressure
         tensor respectively) to be read from the BinLog section of
         the trajectory file. In the BinLog section requested
         properties are stored every step (even if SamplingFreq was
         set to a higher number than 1) but only if this was
         specifically requested at the start of the MD simulation.

   "UnwrapCoordinates"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, Yes, No]

      Description:
         If the coordinates are involved in the requested property,
         those coordinates are wrapped into the box at each time step.
         If set to true, this keyword unwraps those coordinates so
         that the trajectory is continuous. If not provided the code
         uses automatic defaults.

   "UseAllValues"
      Type:
         Bool

      Default value:
         No

      Description:
         By default the same number of values are used for each t-step
         in the ACF. This has the advantage that all values in the ACF
         are equally reliable, but it does mean that for the smaller
         timesteps much of the data is not used. To switch this off
         and use all data, UseAllValues can be set to true

   "UseTimeDerivative"
      Type:
         Block

      Description:
         Possibly use the time derivative of the selected property
         (e.g. velocity or dipole moments).

      "Enabled"
         Type:
            Bool

         Default value:
            No

         Description:
            Enable the use of the time derivative of the property.

   "VecElements"
      Type:
         Block

      Description:
         A set of indices referring to a subset of the property
         vector. Works in combination with the atoms block. For
         example, in combination with the property Velocities, the
         Atoms block allows the selection of a subset of atoms, while
         the VecElelements block allows the selection of a subset of
         vector elements (e.g. 1 and 2 for the elements x and y).

      "Index"
         Type:
            Integer

         Recurring:
            True

         Description:
            Element of the property vector.

   "WritePropertyToKF"
      Type:
         Bool

      Default value:
         No

      Description:
         Write the selected property to the KF files for every
         requested frame

"AverageBinPlot"
   Type:
      Block

   Recurring:
      True

   Description:
      All input related to velocity profile

   "Atoms"
      Type:
         Block

      Description:
         Relevant if Properties are atom dependent. Atom numbers or
         elements for the set of atoms for which the property is
         read/computed. By default all atoms are used.

      "Atom"
         Type:
            Integer

         Recurring:
            True

         Description:
            Atom number.

      "Element"
         Type:
            String

         Recurring:
            True

         Description:
            Element Symbol Atom.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Region name.

   "Nbins"
      Type:
         Integer

      Default value:
         10

      Description:
         Number of bins that are plotted

   "Property"
      Type:
         Block

      Description:
         Property to be plotted along the Y-axis

      "Axis"
         Type:
            Float List

         Description:
            If defined the dot_product along this axis will be taken.
            Otherwise, the length of the property vector will be used.

      "Name"
         Type:
            Multiple Choice

         Options:
            [FrictionCoefficient, Viscosity, Velocities,
            EngineGradients]

         Description:
            Name of the property

   "XProperty"
      Type:
         Block

      Description:
         Property to be plotted along the Y-axis

      "Name"
         Type:
            Multiple Choice

         Default value:
            Time

         Options:
            [Time, Coords]

         Description:
            Timestep used for the plotting

      "VecElements"
         Type:
            Block

         Description:
            A set of indices referring to a subset of the property
            vector. Works in combination with the atoms block. For
            example, in combination with the property Velocities, the
            Atoms block allows the selection of a subset of atoms,
            while the VecElelements block allows the selection of a
            subset of vector elements (e.g. 1 and 2 for the elements x
            and y).

         "Index"
            Type:
               Integer

            Default value:
               3

            Description:
               Element of the x_property, in case it is a vector (For
               Coords: 1 for X, 2 for Y, 3 for Z).

"Histogram"
   Type:
      Block

   Recurring:
      True

   Description:
      All input related to histograms.

   "Axes"
      Type:
         Block

      Description:
         Specifications for the histogram axes.

      "Axis"
         Type:
            Block

         Recurring:
            True

         Description:
            Specifications for a single histogram axis.

         "Atoms"
            Type:
               Block

            Description:
               Relevant if variable has a value per atom (e.g. Coords,
               Velocities). This block specifies indices or elements
               for the set of atoms for which the variable is to be
               read. By default all atoms are used.

            "Atom"
               Type:
                  Integer

               Recurring:
                  True

               Description:
                  Atom index.

            "Element"
               Type:
                  String

               Recurring:
                  True

               Description:
                  Element Symbol Atom.

            "Region"
               Type:
                  String

               Recurring:
                  True

               Description:
                  Region name

         "NBins"
            Type:
               Integer

            Default value:
               100

            Description:
               The number of bins along the histogram axis.

         "Range"
            Type:
               Float List

            Description:
               Either one, two, or three real values. If one it is the
               stepsize. If two, it is the minimum value and the
               maximum value. If three, it is the minimum value, the
               maximum value, and the stepsize. The stepsize overrides
               NBins.

         "Variable"
            Type:
               String

            Description:
               The quantity along the histogram axis.

         "VecElements"
            Type:
               Block

            Description:
               A set of indices referring to a subset of a vector. If
               the variable to be plotted has non-scalar values per
               step, then this block allows the selection of a subset
               of vector elements (e.g. 1 and 2 for the x and y
               values). Can be used in combination with the Atoms
               block.

            "Index"
               Type:
                  Integer

               Recurring:
                  True

               Description:
                  Element of the property vector.

   "KeepRemainder"
      Type:
         Bool

      Default value:
         No

      Description:
         Place the values that fall outside the range in an extra bin
         (on the right).

   "Normalized"
      Type:
         Bool

      Default value:
         No

      Description:
         Give the normalized histogram.

"LoadSystem"
   Type:
      Block

   Recurring:
      True

   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. It may
         also be the results directory containing it.

   "Section"
      Type:
         String

      Default value:
         Molecule

      Description:
         The section on the KF file from which to load the system.

"MeanSquareDisplacement"
   Type:
      Block

   Recurring:
      True

   Description:
      All input related to mean square displacement functions.

   "Atoms"
      Type:
         Block

      Description:
         Relevant if Property is set to any quantity that is available
         per atom (Coords, DiffusionCoefficient). Atom numbers or
         elements for the set of atoms for which the property is
         read/computed are provided here. By default all atoms are
         used.

      "Atom"
         Type:
            Integer

         Recurring:
            True

         Description:
            Atom number.

      "Element"
         Type:
            String

         Recurring:
            True

         Description:
            Element Symbol Atom.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Region name.

   "ComputeStandardDeviation"
      Type:
         Bool

      Default value:
         No

      Description:
         Compute the standard deviation of the mean square
         displacement. This will slow down the calculation by
         approximately a factor 2. The standard deviation takes into
         account the variance introduced by both the simulation time
         and by the contributing atoms.

   "DataReading"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, AtOnce, BlockWise]

      Description:
         The KF data can be read in and handled once, or blockwise.
         The former is memory intensive, but mostly faster. If Auto is
         selected, the data is read at once if it is less than 1 GB,
         and blockwise if it is more.

   "LimitMaxFrame"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If set to true (default), the program will exit if MaxFrame
         is selected larger than half the provided number of frames.
         This limit is only active is UseAllValues is set to false.

   "MaxCorrelationTime"
      Type:
         Float

      Description:
         The maximum correlation time in fs. The default is half the
         simulation time.

   "MaxFrame"
      Type:
         Integer

      Description:
         The maximum number of frames for which the mean square
         displacement function will be computed. The default is half
         of the number of provided frames. Determines the same
         settings as MaxCorrelationTime. If both are set,
         MaxCorrelationTime will take precedence.

   "PerElement"
      Type:
         Bool

      Default value:
         No

      Description:
         Compute MSD for all elements in the system. Any other
         settings in thie block will be used.

   "Property"
      Type:
         Multiple Choice

      Default value:
         Coords

      Options:
         [Coords, DiffusionCoefficient, Conductivity]

      Description:
         Compute the MSD from the property selected here (from rkf).
         Selecting DiffusionCoefficient is equivalent to selecting the
         property Coords.

   "StartTimeSlope"
      Type:
         Float

      Default value:
         0.0

      Description:
         The MSD has a nonlinear regime at short timescales, and a
         linear regime at long timescales. To determine the slope, the
         starting point for the linear regime has to be determined.
         This keyword sets the starting time in fs. If set to zero,
         the starttime will be automatically determined.

   "UnwrapCoordinates"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, Yes, No]

      Description:
         If the coordinates are involved in the requested property,
         those coordinates are wrapped into the box at each time step.
         If set to true, this keyword unwraps those coordinates so
         that the trajectory is continuous. If not provided the code
         uses automatic defaults.

   "UseAllValues"
      Type:
         Bool

      Default value:
         No

      Description:
         By default the same number of values are used for each t-step
         in the MSD. This has the advantage that all values in the MSD
         are equally reliable, but it does mean that for the smaller
         timesteps much of the data is not used. To switch this off
         and use all data, UseAllValues can be set to true

   "UseMolecularCentersOfMass"
      Type:
         Block

      Description:
         Specifications on using the center of mass coordinates per
         molecule instead of coordinates per atom. Only relevant for
         properties that rely on coordinates: Coords,
         DiffusionCoefficient, and Conductivity.

      "CheckForBondChanges"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Check for each frame if the bonds still correspond to the
            input bonds. If they changed, an error is thrown. If this
            is set to false, it is assumed that the molecules stay in
            tact.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         Description:
            Use the center of mass coordinates per molecule. Only
            relevant for properties that rely on coordinates: Coords,
            DiffusionCoefficient, and Conductivity. The bonds from the
            MD input system are used.

   "VecElements"
      Type:
         Block

      Description:
         A set of indices referring to a subset of the property
         vector. Works in combination with the atoms block. For
         example, in combination with the property Coords, the Atoms
         block allows the selection of a subset of atoms, while the
         VecElelements block allows the selection of a subset of
         vector elements (e.g. 1 and 2 for the elements x and y).

      "Index"
         Type:
            Integer

         Recurring:
            True

         Description:
            Element of the property vector.

   "WritePropertyToKF"
      Type:
         Bool

      Default value:
         No

      Description:
         Write the selected property to the KF files for every
         requested frame

"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.

"RadialDistribution"
   Type:
      Block

   Recurring:
      True

   Description:
      All input related to radial distribution functions.

   "AtomsFrom"
      Type:
         Block

      Description:
         Atom numbers or elements for the first set of atoms in the
         radial distribution.

      "Atom"
         Type:
            Integer

         Default value:
            0

         Recurring:
            True

         Description:
            Atom number.

      "Element"
         Type:
            String

         Recurring:
            True

         Description:
            Element Symbol Atom.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Region name.

   "AtomsTo"
      Type:
         Block

      Description:
         Atom numbers or elements for the second set of atoms in the
         radial distribution.

      "Atom"
         Type:
            Integer

         Default value:
            0

         Recurring:
            True

         Description:
            Atom number.

      "Element"
         Type:
            String

         Recurring:
            True

         Description:
            Element Symbol Atom.

      "Region"
         Type:
            String

         Recurring:
            True

         Description:
            Region name.

   "DistanceTypeSelection"
      Type:
         Multiple Choice

      Default value:
         All

      Options:
         [All, InterMolecular, IntraMolecular]

      Description:
         Select only a certain type of interatomic distances.

   "KeepRemainder"
      Type:
         Bool

      Default value:
         No

      Description:
         Place the values that fall outside the range in an extra bin
         (on the right).

   "NBins"
      Type:
         Integer

      Default value:
         1000

      Description:
         The number of bins in the histogram.

   "PairwisePerElement"
      Type:
         Bool

      Default value:
         No

      Description:
         Compute RDF for all element pairs (for all atoms in the
         system). Any other settings in the block will be used.

   "Range"
      Type:
         Float List

      Description:
         Either one, two, or three real values. If one it is the
         stepsize. If two, it is the minimum value and the maximum
         value. If three, it is the minimum value, the maximum value,
         and the stepsize. The stepsize overrides NBins.

"System"
   Type:
      Block

   Recurring:
      True

   Description:
      Specification of the chemical system. For some applications more
      than one system may be present in the input. In this case, all
      systems except one must have a non-empty string ID specified
      after the System keyword. The system without an ID is considered
      the main one.

   "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. Each line should contain two atom
         indices, followed by the bond order (1, 1.5, 2, 3 for single,
         aromatic, double and triple bonds) and (optionally) the cell
         shifts for periodic systems. May be used by MM engines and
         for defining constraints. If the system is periodic and none
         of the bonds have the cell shift defined then AMS will
         attempt to determine them following the minimum image
         convention.

   "Charge"
      Type:
         Float

      Default value:
         0.0

      GUI name:
         Total charge

      Description:
         The system's total charge in atomic units.

   "ElectrostaticEmbedding"
      Type:
         Block

      Description:
         Container for electrostatic embedding options, which can be
         combined.

      "ElectricField"
         Type:
            Float List

         Unit:
            V/Angstrom

         Description:
            External homogeneous electric field with three Cartesian
            components: ex, ey, ez, the default unit being V/Å.

            In atomic units: Hartree/(e bohr) = 51.422 V/Angstrom; the
            relation to SI units is: 1 Hartree/(e bohr) = 5.14 ... e11
            V/m.

            Supported by the engines adf, band, dftb and mopac.

            For periodic systems the field may only have nonzero
            components orthogonal to the direction(s) of periodicity
            (i.e. for 1D periodic system the x-component of the
            electric field should be zero, while for 2D periodic
            systems both the x and y components should be zero. This
            options cannot be used for 3D periodic systems.

      "MultipolePotential"
         Type:
            Block

         Description:
            External point charges (and dipoles).

         "ChargeModel"
            Type:
               Multiple Choice

            Default value:
               Point

            Options:
               [Point, Gaussian]

            Description:
               A multipole may be represented by a point (with a
               singular potential at its location) or by a spherical
               Gaussian distribution.

         "ChargeWidth"
            Type:
               Float

            Default value:
               -1.0

            Description:
               The width parameter in a.u. in case a Gaussian charge
               model is chosen. A negative value means that the width
               will be chosen automatically.

         "Coordinates"
            Type:
               Non-standard block

            Description:
               Positions and values of the multipoles, one per line.
               Each line has the following format:

               x y z q, or

               x y z q µx µy µz.

               Here x, y, z are the coordinates in Å, q is the charge
               (in atomic units of charge) and µx, µy, µz are the
               (optional) dipole moment components (in atomic units,
               i.e. e*Bohr).

               Periodic systems are not supported.

   "FractionalCoords"
      Type:
         Bool

      Default value:
         No

      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 the geometry from a file (instead of from Atoms and
         Lattice 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.

   "Modify"
      Type:
         Block

      Description:
         Modifications to make to the chemical system after
         construction. This block is read like a script and the
         modifications applied top to bottom.

      "EnableAtomAttributes"
         Type:
            Multiple Choice

         Options:
            [gui, adf, band, forcefield, dftb, reaxff, qe]

         Recurring:
            True

         Description:
            Enables an atomic attribute group. This is only necessary
            if you want a group enabled, but no atom in the input is
            using any attribute from that group.

      "GuessBonds"
         Type:
            Bool

         Recurring:
            True

         Description:
            Guesses bonds based on the atomic elements and the
            geometry. Keeps existing bonds.

      "LatticeStrain"
         Type:
            Float List

         Recurring:
            True

         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.

      "MapAtomsToUnitCell"
         Type:
            Float List

         Recurring:
            True

         Description:
            For periodic systems the atoms will be moved to the
            central unit cell where all their fractional coordinates
            are in the range [start_range,start_range+1). No mapping
            will take place along non-periodic directions. If just a
            single number is given, it corresponds to start_range. If
            multiple numbers are given, they should match the number
            of lattice vectors and will be used as start ranges along
            the individual lattice vectors. If no number is given at
            all, the mapping will be done to the [-0.5:0.5) cell.

      "PerturbCoordinates"
         Type:
            Float

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Perturb the atomic coordinates by adding random numbers
            between [-PerturbCoordinates,PerturbCoordinates] to each
            Cartesian component. This can be useful if you want to
            break the symmetry of your system (e.g. for a geometry
            optimization).

      "PerturbLattice"
         Type:
            Float

         Recurring:
            True

         Description:
            Perturb the lattice vectors by applying random strain with
            matrix elements between [-PerturbLattice,PerturbLattice].
            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

         Recurring:
            True

         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).

      "SuperCellTrafo"
         Type:
            Integer List

         Recurring:
            True

         Description:
            Create a supercell of the input system (only possible for
            periodic systems) \vec{a}_i' = \sum_j T_{ij} \vec{a}_j.
            The integer numbers represent the supercell transformation
            T_{ij}: 1 number for 1D PBC, 4 numbers for 2D PBC
            corresponding to a 2x2 matrix (order:
            (1,1),(1,2),(2,1),(2,2)) and 9 numbers for 3D PBC
            corresponding to a 3x3 matrix (order:
            (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)).

      "Symmetrize"
         Type:
            Bool

         Recurring:
            True

         Description:
            Symmetrizes a system, using either the
            "symmetrize_molecule" or "symmetrize_cell" method,
            depending on periodicity.

      "SymmetrizeMoleculeTo"
         Type:
            String

         Recurring:
            True

         Description:
            Symmetrizes a molecule to a particular symmetry given by a
            Schoenflies symbol. Symmetrizes the atomic coordinates to
            machine precision, but does NOT rototranslate the molecule
            in any way. If the symmetrization fails, an error will be
            raised.

      "Translate"
         Type:
            Float List

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Translate all atoms by a vector.

"Task"
   Type:
      Multiple Choice

   Options:
      [RadialDistribution, Histogram, AutoCorrelation,
      MeanSquareDisplacement, AverageBinPlot]

   Description:
      The analysis task.

"Title"
   Type:
      String

   Default value:
   Description:
      Title to identify the analysis run. Only used by the GUI.

"TrajectoryInfo"
   Type:
      Block

   Description:
      All the info regarding the reading of the trajectory files.

   "NBlocksToCompare"
      Type:
         Integer

      Default value:
         1

      Description:
         Get an error estimate by comparing histograms for NBLocks
         time blocks of the trajectory.

   "Trajectory"
      Type:
         Block

      Recurring:
         True

      Description:
         All info regarding the reading of a single trajectory file.

      "KFFilename"
         Type:
            String

         Default value:
            ams.rkf

         Description:
            The name of the AMS trajectory file.

      "Range"
         Type:
            Integer List

         Description:
            One or two values: start frame, and optionally end frame.
            By default the first and last frame are read.

      "StepSize"
         Type:
            Integer

         Default value:
            1

         Description:
            The step size at which frames are read from the RKF
            (default 1, every frame is read).


chemtrayzer2
------------

"Analysis"
   Type:
      Block

   Description:
      Statistical post-detection analysis, includes reaction
      coefficients calculation.

   "PerformAnalysis"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Determine the reaction rate coefficients and statistical
         errors for the detected reactions.

   "RateConfidence"
      Type:
         Float

      Default value:
         0.9

      Description:
         Upper and lower bounds to the rate coefficients will be
         calculated for this confidence (0 < confidence < 1), assuming
         a Poisson distribution of the number of reactive events. A
         value of 0.9 means that the kinetics of 90% of events of one
         reaction can be described by a coefficient between the
         bounds.

"MoleculeIdentifier"
   Type:
      Block

   Description:
      Settings for the subgraph identification of molecules and
      reactions.

   "MaxDepth"
      Type:
         Integer

      Default value:
         2

      Description:
         The maximum number of layers the algorithm goes along bonds,
         starting from one atom when generating hashes for one atom.
         The entire molecule hash is built from the atom hashes, so
         this setting influences the identification of atom
         neighborhoods.

   "UseBondOrders"
      Type:
         Bool

      Default value:
         No

      Description:
         Consider bond orders in the identifier.

   "UseHs"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Use Hs

      Description:
         Consider number of hydrogens of atoms in the identifier.

   "UseRings"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Consider ring membership of atoms in the identifier.

   "WindowDepth"
      Type:
         Integer

      Default value:
         5

      Description:
         The maximum number of layers the algorithm goes along bonds
         starting from the reactive atoms when generating hashes for
         the entire molecule. With this setting, the identifier can be
         limited to only a part of the molecule.

"Output"
   Type:
      Block

   Description:
      Settings for program output and output file generation.

   "CreateLegacyOutput"
      Type:
         Bool

      Default value:
         No

      Description:
         Whether to save the reactions, species, and rates as
         'reac.reac.tab', 'reac.spec.tab', and 'reac.rate.tab' in the
         same format as ChemTraYzer 1.

   "ShowReactionGraph"
      Type:
         Bool

      Default value:
         No

      Description:
         Whether or not to show the reaction graph at the end of the
         calculation. Requires the python library matplotlib to be
         installed.

   "WriteEventsPerTime"
      Type:
         Bool

      Default value:
         No

      Description:
         Write two .csv files that contain the number of reactions in
         every frame (reaction_events_per_time.csv) and the number of
         bond changes in every frame(bond_change_events_per_time.csv)

   "WriteKF"
      Type:
         Bool

      Default value:
         No

      Description:
         Whether to write output to KF

   "WriteMolPopulation"
      Type:
         Bool

      Default value:
         No

      Description:
         Write two .csv files: (1) mol_statistics.csv, which contains
         basic population statistics (counts, averages) for each
         unique species over the entire trajectory; and (2)
         mol_population.csv, which provides the count of each unique
         species in every frame.

   "WriteReactions"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Write two .csv files that contain information about (1) all
         unique reactions (reactions.csv); and (2) all individual
         reaction events (reaction_events.csv).

   "WriteXYZFiles"
      Type:
         Bool

      Default value:
         No

      Description:
         Write XYZ files (geometries) for detected species and XYZ
         movies for detected reactions into a subfolder named 'xyz'.

"PrintDebug"
   Type:
      Bool

   Default value:
      No

   Description:
      Print extra debug information to the terminal.

"ReactionDetection"
   Type:
      Block

   Description:
      Parameters for the the reaction detection algorithm.

   "BondBreakingThreshold"
      Type:
         Float

      Default value:
         0.3

      Description:
         The bond-order threshold for bond breaking. If the bond order
         of a bond goes below this value, the bond is considered
         broken.

   "BondFormationThreshold"
      Type:
         Float

      Default value:
         0.8

      Description:
         The bond-order threshold for bond formation. If the bond
         order between two atoms goes above this value, then this will
         be considered to be a new bond.

   "InitialBondThreshold"
      Type:
         Float

      Description:
         The bond-order threshold for determining the connectivity for
         the first frame of the simulation. If not specified, the
         value in BondFormationThreshold will be used instead.

   "TStable"
      Type:
         Float

      Default value:
         10.0

      Unit:
         fs

      GUI name:
         T stable

      Description:
         The minimum time for a molecule to be considered stable.

"Trajectory"
   Type:
      Block

   Description:
      Info regarding the trajectory to analyze.

   "FinalFrame"
      Type:
         Integer

      Default value:
         -1

      Description:
         Last frame of the trajectory to analyze.

   "FirstFrame"
      Type:
         Integer

      Default value:
         1

      Description:
         First frame of the trajectory to analyze.

   "Path"
      Type:
         String

      Description:
         The path to ams results dir of an AMS calculation. This
         folder must contain a ams.rkf file.


conformers
----------

"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.

   "All"
      Type:
         String

      Recurring:
         True

      Description:
         Fix multiple distances using one the following formats:

         All [bondOrder] bonds at1 at2 [to distance]

         All triangles at1 at2 at3

         The first option constrains all bonds between atoms at1 at2
         to a certain length, while the second - bonds at1-at2 and
         at2-at3 as well as the angle between them.

         The [bondOrder] can be a number or a string such as single,
         double, triple or aromatic. If it's omitted then any bond
         between specified atoms will be constrained. Atom names are
         case-sensitive and they must be as they are in the Atoms
         block, or an asterisk '*' denoting any atom. If the distance
         is omitted then the bond length from the initial geometry is
         used.

         Important: only the bonds present in the system at the start
         of the simulation can be constrained, which means that the
         bonds may need to be specified in the System block.

         Valid examples:

         All single bonds C C to 1.4

         All bonds O H to 0.98

         All bonds O H

         All bonds H *

         All triangles H * H

   "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.

   "AtomList"
      Type:
         Integer List

      Recurring:
         True

      Description:
         Fix positions of the specified atoms. A list of integers
         referring to indices of atoms in the [System%Atoms] block.

   "Block"
      Type:
         String

      Recurring:
         True

      Description:
         Name of the region to constrain as a rigid block. Regions are
         specified in 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).

   "DifDist"
      Type:
         String

      Recurring:
         True

      Description:
         Four atom indices i j k l followed by the distance in
         Angstrom. This will constrain the difference R(ij)-R(kl) at
         the given value.

   "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.

   "EqualStrain"
      Type:
         String

      Description:
         Exclusively for lattice optimizations:

         Accepts a set of strain components [xx, xy, xz, yy, yz, zz]
         which are to be kept equal.

         The applied strain will be determined by the average of the
         corresponding stress tensors components.

         In AMSinput just check the corresponding check buttons.

   "FixedRegion"
      Type:
         String

      Recurring:
         True

      Description:
         Fix positions of all atoms in a region.

   "FreezeStrain"
      Type:
         String

      Description:
         Exclusively for lattice optimizations:

         Freezes any lattice deformation corresponding to a particular
         component of the strain tensor.

         Accepts a set of strain components [xx, xy, xz, yy, yz, zz]
         to be frozen.

         In AMSinput just check the corresponding check buttons.

   "SumDist"
      Type:
         String

      Recurring:
         True

      Description:
         Four atom indices i j k l followed by the distance in
         Angstrom. This will constrain the sum R(ij)+R(kl) at the
         given value.

"Engine"
   Type:
      Block

   Description:
      The input for the computational engine used to compute energy
      and forces.

"EngineAddons"
   Type:
      Block

   Description:
      This block configures all the engine add-ons.

   "AtomEnergies"
      Type:
         Non-standard block

      Description:
         Add an element-dependent energy per atom. On each line, give
         the chemical element followed by the energy (in atomic
         units).

   "D3Dispersion"
      Type:
         Block

      Description:
         This block configures the add-on that adds the Grimme D3
         dispersion correction to the engine's energy, gradients, and
         stress tensor.

      "Damping"
         Type:
            Multiple Choice

         Default value:
            BJ

         Options:
            [BJ, Zero]

         Description:
            Type of damping: BJ (Becke-Johnson) or Zero. BJ is
            recommended for most applications.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            D3 dispersion

         Description:
            Enables the D3 dispersion correction addon.

      "Functional"
         Type:
            String

         Default value:
            PBE

         Description:
            Use the D3 parameterization by Grimme for a given xc-
            functional. Accepts the same values as the --func command
            line option of the official dftd3 program. Note: the
            naming convention is different from elsewhere in the AMS
            suite. For example, BLYP should be called b-lyp.

      "a1"
         Type:
            Float

         Description:
            The a1 parameter. Only used if Damping is set to BJ. If
            set, it overwrites the a1 value for the chosen functional.

      "a2"
         Type:
            Float

         Description:
            The a2 parameter. Only used if Damping is set to BJ. If
            set, it overwrites the a2 value for the chosen functional.

      "s6"
         Type:
            Float

         Description:
            The s6 parameter, global scaling parameter. If set, it
            overwrites the s6 value for the chosen functional.

      "s8"
         Type:
            Float

         Description:
            The s8 parameter. If set, it overwrites the s8 value for
            the chosen functional.

      "sr6"
         Type:
            Float

         Description:
            The sr6 parameter. Only used if Damping is set to Zero. If
            set, it overwrites the sr6 value for the chosen
            functional.

   "D4Dispersion"
      Type:
         Block

      Description:
         This block configures the addon that adds the Grimme D4(EEQ)
         dispersion correction to the engine's energy, gradients,
         stress tensor and Hessian.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            D4 dispersion

         Description:
            Enables the D4 dispersion correction addon.

      "Functional"
         Type:
            Multiple Choice

         Default value:
            PBE

         Options:
            [HF, BLYP, BPBE, BP86, BPW, LB94, MPWLYP, MPWPW91, OLYP,
            OPBE, PBE, RPBE, REVPBE, PW86PBE, RPW86PBE, PW91, PW91P86,
            XLYP, B97, TPSS, REVTPSS, SCAN, B1LYP, B3LYP, BHLYP,
            B1P86, B3P86, B1PW91, B3PW91, O3LYP, REVPBE0, REVPBE38,
            PBE0, PWP1, PW1PW, MPW1PW91, MPW1LYP, PW6B95, TPSSH,
            TPSS0, X3LYP, M06L, M06, OMEGAB97, OMEGAB97X, CAM-B3LYP,
            LC-BLYP, LH07TSVWN, LH07SSVWN, LH12CTSSIRPW92,
            LH12CTSSIFPW92, LH14TCALPBE, B2PLYP, B2GPPLYP, MPW2PLYP,
            PWPB95, DSDBLYP, DSDPBE, DSDPBEB95, DSDPBEP86, DSDSVWN,
            DODBLYP, DODPBE, DODPBEB95, DODPBEP86, DODSVWN, PBE02,
            PBE0DH, DFTB(3ob), DFTB(mio), DFTB(pbc), DFTB(matsci),
            DFTB(ob2), B1B95, MPWB1K, REVTPSSH, GLYP, REVPBE0DH,
            REVTPSS0, REVDSDPBEP86, REVDSDPBEPBE, REVDSDBLYP,
            REVDODPBEP86, B97M, OMEGAB97M, R2SCAN]

         Description:
            Use the D4 parameterization by Grimme for a given xc-
            functional.

      "Verbosity"
         Type:
            Multiple Choice

         Default value:
            Silent

         Options:
            [Silent, Normal, Verbose, VeryVerbose]

         Description:
            Controls the verbosity of the dftd4 code. Equivalent to
            the --silent and --verbose command line switches of the
            official dftd4 program.

      "a1"
         Type:
            Float

         Description:
            The a1 parameter, see D4 article. The physically
            reasonable range for a1 is [0.0,1.0]. If set, it
            overwrites the a1 value for the chosen functional.

      "a2"
         Type:
            Float

         Description:
            The a2 parameter, see D4 article. The physically
            reasonable range for a2 is [0.0,7.0]. If set, it
            overwrites the a2 value for the chosen functional.

      "s6"
         Type:
            Float

         Description:
            The s6 parameter, see D4 article. The physically
            reasonable range for s6 is [0.0,1.0]. If set, it
            overwrites the s6 value for the chosen functional.

      "s8"
         Type:
            Float

         Description:
            The s8 parameter, see D4 article. The physically
            reasonable range for s8 is [0.0,3.0]. If set, it
            overwrites the s8 value for the chosen functional.

      "s9"
         Type:
            Float

         Description:
            The s9 parameter, see D4 article. If set, it overwrites
            the s9 value for the chosen functional.

   "ExternalEngine"
      Type:
         Block

      Description:
         External engine as an addon

      "Execute"
         Type:
            String

         GUI name:
            Execute

         Description:
            execute command

   "ExternalStress"
      Type:
         Block

      Description:
         This block configures the addon that adds external stress
         term to the engine's energy and stress tensor.

      "StressTensorVoigt"
         Type:
            Float List

         Unit:
            Hartree/Bohr^3

         GUI name:
            External stress tensor

         Description:
            The elements of the external stress tensor in Voigt
            notation. 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.

      "UpdateReferenceCell"
         Type:
            Bool

         Default value:
            No

         Description:
            Whether ot not the reference cell should be updated every
            time the system changes (see documentation).

   "PipeEngine"
      Type:
         Block

      Description:
         Pipe engine as an addon

      "WorkerCommand"
         Type:
            String

         GUI name:
            Worker command

         Description:
            pipe worker command

   "Pressure"
      Type:
         Float

      Default value:
         0.0

      Unit:
         GPa

      Description:
         Add a hydrostatic pressure term to the engine's energy and
         stress tensor. Can only be used for 3D periodic boundary
         conditions.

   "Repulsion"
      Type:
         Block

      Description:
         This block configures an addon that adds a repulsive Weeks-
         Chandler-Andersen potential to all atom pairs.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            Repulsion

         Description:
            Enables the repulsive Weeks-Chandler-Andersen potential
            addon.

            When enabled, all atom pairs will experience repulsion E =
            4*epsilon*( (sigma/r)^12 - (sigma/r)^6 + 1/4 ) at the
            distances shorter than about 1.12*sigma.

      "Epsilon"
         Type:
            Float

         Default value:
            0.01

         Unit:
            Hartree

         Description:
            The epsilon parameter in the potential equation. It is
            equal to the amount of energy added at r=sigma.

      "HydrogenSigmaScale"
         Type:
            Float

         Default value:
            0.75

         Unit:
            Angstrom

         Description:
            The sigma parameter for a pair of atoms where one of them
            is hydrogen is scaled with the given factor. For H-H
            interactions the sigma is scaled with this value squared.

      "Sigma"
         Type:
            Float

         Default value:
            0.55

         Unit:
            Angstrom

         Description:
            The sigma parameter in the potential equation. The
            potential is exactly zero at the distances larger than
            about 1.12*sigma

      "SkinLength"
         Type:
            Float

         Default value:
            2.0

         Unit:
            Angstrom

         Description:
            Technical parameter specifying skin length for the
            neighbor list generation. A larger value increases the
            neighbor list cutoff (and cost) but reduces the frequency
            it needs to be re-created.

   "WallPotential"
      Type:
         Block

      Description:
         This block configures the addon that adds a spherical wall
         potential to the engine's energy and gradients.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         Description:
            Enables the wall potential addon. When enabled, a
            spherical wall of radius [Radius] around the origin will
            be added. The force due to the potential will decay
            exponentially inside the wall, will be close to
            [Prefactor*Gradient] outside and exactly half of that at
            the wall.

      "Gradient"
         Type:
            Float

         Default value:
            10.0

         Unit:
            1/Angstrom

         Description:
            The radial gradient outside the sphere.

      "Prefactor"
         Type:
            Float

         Default value:
            0.01

         Unit:
            Hartree

         Description:
            The multiplier for the overall strength of the potential.

      "Radius"
         Type:
            Float

         Default value:
            30.0

         Unit:
            Angstrom

         Value Range:
            value > 0

         Description:
            The radius of the sphere, wherein the potential is close
            to zero.

"Equivalence"
   Type:
      Block

   Description:
      Options for the procedure determining whether two structures are
      equivalent or distinct conformers.

   "AMS"
      Type:
         Block

      Description:
         Options for the AMS method of checking equivalence. This
         method uses the atomic distance matrices and the torsion
         angles between heavy atoms to determine if conformer
         candidates are duplicates.

      "DihedralThreshold"
         Type:
            Float

         Default value:
            30.0

         Description:
            Maximum difference a dihedral can have for a conformer to
            be considered a duplicate.

      "DistanceThreshold"
         Type:
            Float

         Default value:
            0.1

         Description:
            Maximum difference a distance between two atoms can have
            for a conformer to be considered a duplicate.

      "EnergyThreshold"
         Type:
            Float

         Default value:
            0.2

         Unit:
            kcal/mol

         Description:
            The energy difference beyond which two conformers are
            always considered distinct.

      "IrrelevantAtoms"
         Type:
            Integer List

         Description:
            To detect equivalence, only a subset of atoms is used. The
            atoms that are excluded from equivalence comparison should
            be specified here. By default only non-hydrogen atoms will
            be used for the comparison. Numbering starts at 0.

   "AcceptAll"
      Type:
         Bool

      Default value:
         No

      Description:
         If set to True, add any candidate to the set without checks
         of connectivity changes, stereo- or cis/trans isomerization,
         or duplication.

   "AcceptBondchanges"
      Type:
         Bool

      Default value:
         No

      Description:
         If set to True, perform all checks of a new conformer
         candidate, except for the connectivity check.

   "AcceptIsomers"
      Type:
         Bool

      Default value:
         No

      Description:
         If set to True, perform all checks of a new conformer
         candidate, except for the stereo- or cis/trans isomerization
         check.

   "CREST"
      Type:
         Block

      Description:
         Options for the CREST method of checking equivalence. This
         method uses the rotational constants of conformer candidates
         to determine if they are duplicates.

      "EnergyThreshold"
         Type:
            Float

         Default value:
            0.05

         Unit:
            kcal/mol

         Description:
            The energy difference beyond which two conformers are
            always considered distinct.

      "RMSDThreshold"
         Type:
            Float

         Default value:
            0.125

         Description:
            Threshold for the RMSD between two conformers that
            determines if they are duplicates or rotamers (according
            to the CREST rotamer definition.)

      "ScaledRotationalConstantSettings"
         Type:
            Block

         Description:
            By default, the equivalence of two geometries is
            determined mainly by comparing the rotational constants,
            and weighing the difference based on the average
            anisotropy of the two systems. This procedure has several
            settings that can be user defined.

         "RotationalConstantThreshold"
            Type:
               Float

            Default value:
               0.003

            Description:
               Threshold for the difference in rotational constants
               that determines if two geometries are duplicates. The
               threshold is weighed by the anisotropy of the systems.
               Note: in the grimme code they use 0.01 as
               bconst_threshold, but this leads to a lot of
               misclassifications (i.e. different conformers are
               classified as equivalent rotamers)  So, here we use a
               smaller default value.

   "CheckForDuplicates"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If set to True, check any new conformer candidate for
         duplication, and only accept unique conformers. If set to
         False, accept duplicates into the set.

   "LogDuplicates"
      Type:
         Bool

      Default value:
         No

      Description:
         If set to True, print information on equivalence to logfile
         and standard output.

   "Method"
      Type:
         Multiple Choice

      Default value:
         CREST

      Options:
         [AMS, TFD, RMSD, CREST]

      GUI name:
         Equivalence method

      Description:
         Method used to determine (and filter out) equivalent
         conformers.

         The CREST equivalence method relies on rotational constants
         comparisons. For this reason, conformers with the same
         rotational constants (such as mirror images) will be
         considered equivalent conformers.

         The AMS equivalence method uses a distance matrix and
         dihedrals to compare conformers. This equivalence method can
         be computationally expensive for large molecules.

         The TFD equivalence method uses the Torsion Fingerprint
         Difference as implemented in RDKit.

         The RMSD equivalence method uses the RDKit GetBestRMS
         implementation.

   "RMSD"
      Type:
         Block

      Description:
         Options for the RMSD method of checking equivalence. This
         method uses the RDKit implementation of GetBestRMS, which
         enumerates over atomic permutations for pairs of geometries
         to detect duplicates based on the RMSD value.

      "EnergyThreshold"
         Type:
            Float

         Default value:
            0.05

         Unit:
            kcal/mol

         Description:
            The energy difference beyond which two conformers are
            always considered distinct.

      "RMSDThreshold"
         Type:
            Float

         Default value:
            0.125

         Description:
            Threshold on the RMSD difference to determine if two
            geometries represent the same conformer. This value is in
            Angstrom.

   "Reorder"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Reorder conformers based on energy, whenever a new conformer
         is added.

   "TFD"
      Type:
         Block

      Description:
         Options for the TFD method of checking equivalence. This
         method uses the Torsion Finger Print method to determine if
         two conformer candidates are duplicates.

      "EnergyThreshold"
         Type:
            Float

         Default value:
            0.05

         Unit:
            kcal/mol

         Description:
            The energy difference beyond which two conformers are
            always considered distinct.

      "TFDThreshold"
         Type:
            Float

         Default value:
            0.05

         Description:
            Threshold on the torsion fingerprint difference to
            determine if two geometries represent the same conformer.
            This value is unit-less.

"Expander"
   Type:
      Block

   Description:
      Options for the conformer expander. The Expander expands an
      existing conformer set, by adding new conformers to it. The new
      conformers are generated from the original conformers in the
      set. Unlike the generators, the outcome of an expander is
      therefore very dependent on the input conformations.

      The GC generator uses a genetic algorithm to create a
      combinatorial expansion by combining local substructures.

      The MD expander start MD simulations from the conformers in the
      set, and extracts snapshots to create new conformers. Both these
      expanders are part of the CREST generator.

   "AdjustInputBonds"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If geometry optimization of the initial conformer results in
         bond changes, adjust the reference connectivity. If the
         changes are too severe, the calculation will stop.

   "GC"
      Type:
         Block

      Description:
         Options for the genetic algorithm for combinatorial expansion
         of conformer geometries. This generator only  works if a non-
         zero set of conformers is already provided.

      "MaxGCenergy"
         Type:
            Float

         Default value:
            6.0

         Description:
            The maximum energy (relative to the lowest in the set) of
            the conformers we are going to use for expansion. The
            default is 6.0 kcal/mol, but if MaxEnergy was set, then
            that value is used.

      "Parallel"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Determines if the combinatorial expansion of conformers
            should be performed in parallel or not (default: True).

      "RMSDThreshold"
         Type:
            Float

         Default value:
            0.25

         Description:
            Newly generated geometries are only considered unique if
            their RMSD from all other newly generated geometries is
            larger than this threshold.

   "MD"
      Type:
         Block

      Description:
         Produces conformers by running a set of MD simulations at
         different elevated temperatures, extracting snapshots, and
         optimizing those.

      "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. Default values will be ignored.

         "Checkpoint"
            Type:
               Block

            Description:
               Sets the frequency for storing the entire MD state
               necessary for restarting the calculation.

            "Frequency"
               Type:
                  Integer

               Default value:
                  1000

               GUI name:
                  Checkpoint frequency

               Description:
                  Write the MD state to the Molecule and MDResults
                  sections on ams.rkf once every N steps. Setting this
                  to zero disables checkpointing during the
                  simulation, but one checkpoint at the very end of
                  the simulation will always be written.

                  NOTE: This no longer controls the frequency of
                  writing MDStep*.rkf files, set
                  Trajectory%EngineResultsFreq instead.

            "WriteProperties"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Honor top-level Properties input block when writing
                  engine results files.

                  DEPRECATED: This input option will be removed in
                  AMS2026 and will be considered always enabled. If
                  you rely on it being disabled, please contact SCM
                  support.

         "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.

            "RandomVelocitiesMethod"
               Type:
                  Multiple Choice

               Default value:
                  Exact

               Options:
                  [Exact, Boltzmann, Gromacs]

               GUI name:
                  Velocity randomization method

               Description:
                  Specifies how are random velocities generated. Three
                  methods are available.

                  Exact: Velocities are scaled to exactly match set
                  random velocities temperature.

                  Boltzmann: Velocities are not scaled and sample
                  Maxwell-Boltzmann distribution. However, the
                  distribution is not corrected for constraints.

                  Gromacs: Velocities are scaled to match set random
                  velocities temperature, but removal of net momentum
                  is performed only after the scaling. Resulting
                  kinetic energy is lower based on how much net
                  momentum the system had.

            "Temperature"
               Type:
                  Float

               Unit:
                  Kelvin

               GUI name:
                  Initial temperature

               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.

                  AMSinput will use the first temperature of the first
                  thermostat as default.

            "Type"
               Type:
                  Multiple Choice

               Default value:
                  Random

               Options:
                  [Zero, Random, FromFile, Input]

               GUI name:
                  Initial velocities

               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
                  AMSinput.

            "Values"
               Type:
                  Non-standard block

               Description:
                  This block specifies the velocity of each atom, in
                  Angstrom/fs, 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

            GUI name:
               Number of steps

            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:
                  Yes

               GUI name:
                  : Angular momentum

               Description:
                  Remove overall angular momentum of the system. This
                  option is ignored for 2D and 3D-periodic systems,
                  and disabled by default for systems which are not
                  translationally invariant (for example when frozen
                  atoms are present).

            "CenterOfMass"
               Type:
                  Bool

               Default value:
                  No

               GUI name:
                  : Center of mass

               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:
                  Yes

               GUI name:
                  Preserve: Total momentum

               Description:
                  Remove overall (linear) momentum of the system. This
                  is disabled by default for systems which are not
                  translationally invariant (for example when frozen
                  atoms are present).

         "Print"
            Type:
               Block

            Description:
               This block controls the printing of additional
               information to stdout.

            "System"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Print the chemical system before and after the
                  simulation.

            "Velocities"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Print the atomic velocities before and after the
                  simulation.

         "Restart"
            Type:
               String

            GUI name:
               Restart from

            Description:
               The path to the ams.rkf file from which to restart the
               simulation.

         "Shake"
            Type:
               Block

            Description:
               Parameters of the Shake/Rattle algorithm.

            "All"
               Type:
                  String

               Recurring:
                  True

               GUI name:
                  Constrain all

               Description:
                  Constraint description in one the following formats:

                  All [bondOrder] bonds at1 at2 [to distance]

                  All triangles at1 at2 at3

                  The first option constrains all bonds between atoms
                  at1 at2 to a certain length, while the second -
                  bonds at1-at2 and at2-at3 and the angle between
                  them.

                  The [bondOrder] can be a number or a string such as
                  single, double, triple or aromatic. If it's omitted
                  then all bonds between specified atoms will be
                  constrained. Atom names are case-sensitive and they
                  must be as they are in the Atoms block, or an
                  asterisk '*' denoting any atom. The distance, if
                  present, must be in Angstrom. If it is omitted then
                  the bond length from the initial geometry is used.

                  Important: only the bonds present in the system at
                  certain points of the simulation (at the start or
                  right after adding/removing atoms) can be
                  constrained, which means that the bonds may need to
                  be specified in the System block.

                  Warning: the triangles constraint should be used
                  with care because each constrained bond or angle
                  means removing one degree of freedom from the
                  dynamics. When there are too many constraints (for
                  example, "All triangles H C H" in methane) some of
                  them may be linearly dependent, which will lead to
                  an error in the temperature computation.

                  Valid examples:

                  All single bonds C C to 1.4

                  All bonds O H to 0.98

                  All bonds O H

                  All bonds H *

                  All triangles H * H

            "ConvergeR2"
               Type:
                  Float

               Default value:
                  1e-08

               Description:
                  Convergence criterion on the max squared difference,
                  in atomic units.

            "ConvergeRV"
               Type:
                  Float

               Default value:
                  1e-08

               Description:
                  Convergence criterion on the orthogonality of the
                  constraint and the relative atomic velocity, in
                  atomic units.

            "ExcludeRegion"
               Type:
                  String

               Default value:
               Description:
                  Exclude all atoms covered by this region expression
                  from all constraints. If both atoms of a bond belong
                  to ExcludeRegion, the bond will be kept
                  unconstrained, regardless of Shake%All or engine-
                  specific constraints.

            "Iterations"
               Type:
                  Integer

               Default value:
                  100

               Description:
                  Number of iterations.

            "ShakeInitialCoordinates"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Apply constraints before computing the first energy
                  and gradients.

         "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's
               behavior.

            "BerendsenApply"
               Type:
                  Multiple Choice

               Default value:
                  Global

               Options:
                  [Local, Global]

               GUI name:
                  Apply Berendsen

               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

               GUI name:
                  NHC chain length

               Description:
                  Number of individual thermostats forming the NHC
                  thermostat

            "Duration"
               Type:
                  Integer List

               GUI name:
                  Duration(s)

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

            "Region"
               Type:
                  String

               Default value:
                  *

               Description:
                  The identifier of the region to thermostat. The
                  default *** applies the thermostat to the entire
                  system. The value can by a plain region name, or a
                  region expression, e.g. **-myregion* to thermostat
                  all atoms that are not in myregion, or
                  *regionA+regionB* to thermostat the union of the
                  'regionA' and 'regionB'. Note that if multiple
                  thermostats are used, their regions may not overlap.

            "Tau"
               Type:
                  Float

               Unit:
                  Femtoseconds

               GUI name:
                  Damping constant

               Description:
                  The time constant of the thermostat.

            "Temperature"
               Type:
                  Float List

               Unit:
                  Kelvin

               GUI name:
                  Temperature(s)

               Description:
                  The target temperature of the thermostat.

                  You can specify multiple temperatures (separated by
                  spaces). In that case the Duration field specifies
                  how many steps to use for the transition from one T
                  to the next T (using a linear ramp). For NHC
                  thermostat, the temperature may not be zero.

            "Type"
               Type:
                  Multiple Choice

               Default value:
                  None

               Options:
                  [None, Berendsen, NHC]

               GUI name:
                  Thermostat

               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.

            "EngineResultsFreq"
               Type:
                  Integer

               Default value:
                  0

               GUI name:
                  Engine results frequency

               Description:
                  Write MDStep*.rkf files with engine-specific results
                  once every N steps. Setting this to zero disables
                  writing engine results files except for one file at
                  the end of the simulation. If this is set to a
                  negative value, the value of Checkpoint%Frequency
                  will be used instead.

            "ExitConditionFreq"
               Type:
                  Integer

               GUI name:
                  Exit condition frequency

               Description:
                  Check the exit conditions every N steps. By default
                  this is done every SamplingFreq steps.

            "PrintFreq"
               Type:
                  Integer

               GUI name:
                  Printing frequency

               Description:
                  Print current thermodynamic properties to the output
                  every N steps. By default this is done every
                  SamplingFreq steps.

            "SamplingFreq"
               Type:
                  Integer

               Default value:
                  100

               GUI name:
                  Sample frequency

               Description:
                  Write the molecular geometry (and possibly other
                  properties) to the ams.rkf file once every N steps.

            "TProfileGridPoints"
               Type:
                  Integer

               Default value:
                  0

               Description:
                  Number of points in the temperature profile. If
                  TProfileGridPoints > 0, a temperature profile along
                  each of the three lattice axes will be written to
                  the .rkf file. The temperature at a given profile
                  point is calculated as the total temperature of all
                  atoms inside the corresponding slice of the
                  simulation box, time-averaged over all MD steps
                  since the previous snapshot.​ By default, no profile
                  is generated.

            "WriteBonds"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write detected bonds to the .rkf file.

            "WriteCharges"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write current atomic point charges (if available) to
                  the .rkf file. Disable this to reduce trajectory
                  size if you do not need to analyze charges.

            "WriteCoordinates"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write atomic coordinates to the .rkf file.

            "WriteEngineGradients"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Write atomic gradients (negative of the atomic
                  forces, as calculated by the engine) to the History
                  section of ams.rkf.

            "WriteMolecules"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write the results of molecule analysis to the .rkf
                  file.

            "WriteVelocities"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write velocities to the .rkf file. Disable this to
                  reduce trajectory size if you do not need to analyze
                  the velocities.

      "NMolDynStepsFactor"
         Type:
            Integer

         Description:
            If the number of MD steps for the metadynamics and regular
            MD are not explicitly set in the respecive blocks, then
            the number of steps determined from the flexibility of the
            system will be multiplied by this value.

      "Ngeoms"
         Type:
            Integer

         Default value:
            4

         Description:
            At each temperature, MD simulations are started from
            Ngeoms different starting geometries. The starting
            geometries are extracted from the provided conformer set.
            If the conformer set is empty, then no more than a single
            geometry per temperature can be provided, limiting the
            total number of MD simulations.

      "Temperatures"
         Type:
            Float List

         Default value:
            [400.0, 500.0]

         Unit:
            Kelvin

         Description:
            The list of different temperatures at which MD simulations
            are run.

      "UseShake"
         Type:
            Bool

         Default value:
            No

         Description:
            Constrain all -H bonds with shake. If turned on, the MD
            timestep is automatically increased.

   "MaxEnergy"
      Type:
         Float

      Unit:
         kcal/mol

      Description:
         Threshold for filtering out high-energy conformers. If the
         relative energy of a conformer with respect to the lowest
         conformer is larger than this value, the conformer will be
         discarded.

   "Method"
      Type:
         Multiple Choice

      Default value:
         GC

      Options:
         [MD, GC]

      GUI name:
         Generator method

      Description:
         Method used to generate the conformers.

   "Preoptimization"
      Type:
         Block

      Description:
         If this block is enabled geometries will be preoptimized.
         After preoptimization the high energy conformers will be
         discarded, and then from the remaining set the unoptimized
         geometries will be optimized at higher level. This is to
         prevent the preoptimizer from collapsing different conformers
         into a single false minimum. As a result, preoptimization is
         only useful if MaxEnergy is chosen low.

      "Enable"
         Type:
            Bool

         Default value:
            No

         Description:
            Perform preoptimization at a low level of accuracy.

      "Engine"
         Type:
            Block

         Description:
            The engine specifics to be used for preoptimization.

      "PreoptFactor"
         Type:
            Integer

         Default value:
            2

         Description:
            This factor is multiplied with MaxEnergy, to determine
            which high energy conformers can be discarded after
            preoptimization.

   "RDKitETKDG"
      Type:
         Block

      Description:
         Settings for the call to RDKits ETKDG conformer generator
         tool.

      "BestRMSDThreshold"
         Type:
            Float

         Default value:
            -1.0

         Description:
            After ETKDG conformer generation by RDKit, RDKit can be
            used to remove duplicates via the BestRMS algorithm. This
            filter does exactly the same as the RMSD equivalence
            detector in the Equivalence block.

      "Forcefield"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [None, UFF, MMFF]

         Description:
            The name of the RDKit forcefield to use for geometry
            optimization at the end of ETKDG conformer generation (by
            default no geometry optimization is performed). Using the
            RDKit internal optimization may make the subsequent
            geometry optimizations with AMS faster.

      "Parallel"
         Type:
            Bool

         Default value:
            No

         Description:
            Experimental: Parallelize the RDKit generation step by
            calling the RDKit conformer generation method in parallel
            from multiple processes.

      "RMSDThreshold"
         Type:
            Float

         Default value:
            -1.0

         Description:
            Root Mean Square deviation threshold for removing
            similar/equivalent conformations during the RDKit ETKDG
            procedure. By default there is no pruning (value: -1).

      "UseExpTorsionAnglePrefs"
         Type:
            String

         Default value:
            default

         Description:
            Impose experimental torsion angle preferences in RDKit
            ETKDG conformer generation. By default the RDKit version
            determines whether or not to switch this on.

   "RNGSeed"
      Type:
         Integer

      Description:
         Initial guesses for conformers can be randomly generated by
         RDKit, using the ETKDG algorithm. For reproducibility, a
         random number seed can be provided here.

"Filter"
   Type:
      Block

   Description:
      Options for the conformer filtering.

   "MaxEnergy"
      Type:
         Float

      Unit:
         kcal/mol

      Description:
         Threshold for filtering out high-energy conformers. If the
         relative energy of a conformer with respect to the lowest
         conformer is larger than this value, the conformer will be
         discarded.

   "RemoveNonMinima"
      Type:
         Bool

      Default value:
         No

      Description:
         For the final set of conformers, explicitly check that the
         geometry corresponds to a local minimum, and remove it if it
         does not. Note: this will run a PES point characterization,
         which can be computationally expensive!

"Generator"
   Type:
      Block

   Description:
      Options for the conformer generator.

   "ANNEALING"
      Type:
         Block

      Description:
         Options for the annealing generator. This generator creates
         conformers by performing a simulated annealing simulation.

      "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. Default values will be ignored.

         "Checkpoint"
            Type:
               Block

            Description:
               Sets the frequency for storing the entire MD state
               necessary for restarting the calculation.

            "Frequency"
               Type:
                  Integer

               Default value:
                  1000

               GUI name:
                  Checkpoint frequency

               Description:
                  Write the MD state to the Molecule and MDResults
                  sections on ams.rkf once every N steps. Setting this
                  to zero disables checkpointing during the
                  simulation, but one checkpoint at the very end of
                  the simulation will always be written.

                  NOTE: This no longer controls the frequency of
                  writing MDStep*.rkf files, set
                  Trajectory%EngineResultsFreq instead.

            "WriteProperties"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Honor top-level Properties input block when writing
                  engine results files.

                  DEPRECATED: This input option will be removed in
                  AMS2026 and will be considered always enabled. If
                  you rely on it being disabled, please contact SCM
                  support.

         "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.

            "RandomVelocitiesMethod"
               Type:
                  Multiple Choice

               Default value:
                  Exact

               Options:
                  [Exact, Boltzmann, Gromacs]

               GUI name:
                  Velocity randomization method

               Description:
                  Specifies how are random velocities generated. Three
                  methods are available.

                  Exact: Velocities are scaled to exactly match set
                  random velocities temperature.

                  Boltzmann: Velocities are not scaled and sample
                  Maxwell-Boltzmann distribution. However, the
                  distribution is not corrected for constraints.

                  Gromacs: Velocities are scaled to match set random
                  velocities temperature, but removal of net momentum
                  is performed only after the scaling. Resulting
                  kinetic energy is lower based on how much net
                  momentum the system had.

            "Temperature"
               Type:
                  Float

               Unit:
                  Kelvin

               GUI name:
                  Initial temperature

               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.

                  AMSinput will use the first temperature of the first
                  thermostat as default.

            "Type"
               Type:
                  Multiple Choice

               Default value:
                  Random

               Options:
                  [Zero, Random, FromFile, Input]

               GUI name:
                  Initial velocities

               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
                  AMSinput.

            "Values"
               Type:
                  Non-standard block

               Description:
                  This block specifies the velocity of each atom, in
                  Angstrom/fs, 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

            GUI name:
               Number of steps

            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:
                  Yes

               GUI name:
                  : Angular momentum

               Description:
                  Remove overall angular momentum of the system. This
                  option is ignored for 2D and 3D-periodic systems,
                  and disabled by default for systems which are not
                  translationally invariant (for example when frozen
                  atoms are present).

            "CenterOfMass"
               Type:
                  Bool

               Default value:
                  No

               GUI name:
                  : Center of mass

               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:
                  Yes

               GUI name:
                  Preserve: Total momentum

               Description:
                  Remove overall (linear) momentum of the system. This
                  is disabled by default for systems which are not
                  translationally invariant (for example when frozen
                  atoms are present).

         "Print"
            Type:
               Block

            Description:
               This block controls the printing of additional
               information to stdout.

            "System"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Print the chemical system before and after the
                  simulation.

            "Velocities"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Print the atomic velocities before and after the
                  simulation.

         "Restart"
            Type:
               String

            GUI name:
               Restart from

            Description:
               The path to the ams.rkf file from which to restart the
               simulation.

         "Shake"
            Type:
               Block

            Description:
               Parameters of the Shake/Rattle algorithm.

            "All"
               Type:
                  String

               Recurring:
                  True

               GUI name:
                  Constrain all

               Description:
                  Constraint description in one the following formats:

                  All [bondOrder] bonds at1 at2 [to distance]

                  All triangles at1 at2 at3

                  The first option constrains all bonds between atoms
                  at1 at2 to a certain length, while the second -
                  bonds at1-at2 and at2-at3 and the angle between
                  them.

                  The [bondOrder] can be a number or a string such as
                  single, double, triple or aromatic. If it's omitted
                  then all bonds between specified atoms will be
                  constrained. Atom names are case-sensitive and they
                  must be as they are in the Atoms block, or an
                  asterisk '*' denoting any atom. The distance, if
                  present, must be in Angstrom. If it is omitted then
                  the bond length from the initial geometry is used.

                  Important: only the bonds present in the system at
                  certain points of the simulation (at the start or
                  right after adding/removing atoms) can be
                  constrained, which means that the bonds may need to
                  be specified in the System block.

                  Warning: the triangles constraint should be used
                  with care because each constrained bond or angle
                  means removing one degree of freedom from the
                  dynamics. When there are too many constraints (for
                  example, "All triangles H C H" in methane) some of
                  them may be linearly dependent, which will lead to
                  an error in the temperature computation.

                  Valid examples:

                  All single bonds C C to 1.4

                  All bonds O H to 0.98

                  All bonds O H

                  All bonds H *

                  All triangles H * H

            "ConvergeR2"
               Type:
                  Float

               Default value:
                  1e-08

               Description:
                  Convergence criterion on the max squared difference,
                  in atomic units.

            "ConvergeRV"
               Type:
                  Float

               Default value:
                  1e-08

               Description:
                  Convergence criterion on the orthogonality of the
                  constraint and the relative atomic velocity, in
                  atomic units.

            "ExcludeRegion"
               Type:
                  String

               Default value:
               Description:
                  Exclude all atoms covered by this region expression
                  from all constraints. If both atoms of a bond belong
                  to ExcludeRegion, the bond will be kept
                  unconstrained, regardless of Shake%All or engine-
                  specific constraints.

            "Iterations"
               Type:
                  Integer

               Default value:
                  100

               Description:
                  Number of iterations.

            "ShakeInitialCoordinates"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Apply constraints before computing the first energy
                  and gradients.

         "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's
               behavior.

            "BerendsenApply"
               Type:
                  Multiple Choice

               Default value:
                  Global

               Options:
                  [Local, Global]

               GUI name:
                  Apply Berendsen

               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

               GUI name:
                  NHC chain length

               Description:
                  Number of individual thermostats forming the NHC
                  thermostat

            "Duration"
               Type:
                  Integer List

               GUI name:
                  Duration(s)

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

            "Region"
               Type:
                  String

               Default value:
                  *

               Description:
                  The identifier of the region to thermostat. The
                  default *** applies the thermostat to the entire
                  system. The value can by a plain region name, or a
                  region expression, e.g. **-myregion* to thermostat
                  all atoms that are not in myregion, or
                  *regionA+regionB* to thermostat the union of the
                  'regionA' and 'regionB'. Note that if multiple
                  thermostats are used, their regions may not overlap.

            "Tau"
               Type:
                  Float

               Unit:
                  Femtoseconds

               GUI name:
                  Damping constant

               Description:
                  The time constant of the thermostat.

            "Temperature"
               Type:
                  Float List

               Unit:
                  Kelvin

               GUI name:
                  Temperature(s)

               Description:
                  The target temperature of the thermostat.

                  You can specify multiple temperatures (separated by
                  spaces). In that case the Duration field specifies
                  how many steps to use for the transition from one T
                  to the next T (using a linear ramp). For NHC
                  thermostat, the temperature may not be zero.

            "Type"
               Type:
                  Multiple Choice

               Default value:
                  None

               Options:
                  [None, Berendsen, NHC]

               GUI name:
                  Thermostat

               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.

            "EngineResultsFreq"
               Type:
                  Integer

               Default value:
                  0

               GUI name:
                  Engine results frequency

               Description:
                  Write MDStep*.rkf files with engine-specific results
                  once every N steps. Setting this to zero disables
                  writing engine results files except for one file at
                  the end of the simulation. If this is set to a
                  negative value, the value of Checkpoint%Frequency
                  will be used instead.

            "ExitConditionFreq"
               Type:
                  Integer

               GUI name:
                  Exit condition frequency

               Description:
                  Check the exit conditions every N steps. By default
                  this is done every SamplingFreq steps.

            "PrintFreq"
               Type:
                  Integer

               GUI name:
                  Printing frequency

               Description:
                  Print current thermodynamic properties to the output
                  every N steps. By default this is done every
                  SamplingFreq steps.

            "SamplingFreq"
               Type:
                  Integer

               Default value:
                  100

               GUI name:
                  Sample frequency

               Description:
                  Write the molecular geometry (and possibly other
                  properties) to the ams.rkf file once every N steps.

            "TProfileGridPoints"
               Type:
                  Integer

               Default value:
                  0

               Description:
                  Number of points in the temperature profile. If
                  TProfileGridPoints > 0, a temperature profile along
                  each of the three lattice axes will be written to
                  the .rkf file. The temperature at a given profile
                  point is calculated as the total temperature of all
                  atoms inside the corresponding slice of the
                  simulation box, time-averaged over all MD steps
                  since the previous snapshot.​ By default, no profile
                  is generated.

            "WriteBonds"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write detected bonds to the .rkf file.

            "WriteCharges"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write current atomic point charges (if available) to
                  the .rkf file. Disable this to reduce trajectory
                  size if you do not need to analyze charges.

            "WriteCoordinates"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write atomic coordinates to the .rkf file.

            "WriteEngineGradients"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Write atomic gradients (negative of the atomic
                  forces, as calculated by the engine) to the History
                  section of ams.rkf.

            "WriteMolecules"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write the results of molecule analysis to the .rkf
                  file.

            "WriteVelocities"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write velocities to the .rkf file. Disable this to
                  reduce trajectory size if you do not need to analyze
                  the velocities.

      "NMolDynStepsFactor"
         Type:
            Integer

         Description:
            If the number of MD steps for the metadynamics and regular
            MD are not explicitly set in the respecive blocks, then
            the number of steps determined from the flexibility of the
            system will be multiplied by this value.

      "Temperatures"
         Type:
            Float List

         Default value:
            [298.0, 798.0]

         Unit:
            Kelvin

         Description:
            The minimum and maximum temperature of the annealing
            simulation. The simulation will start at the highest
            temperature, and cool down to the lowest.

      "UseShake"
         Type:
            Bool

         Default value:
            No

         Description:
            Constrain all -H bonds with shake. If turned on, the MD
            timestep is automatically increased.

   "AdjustInputBonds"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If geometry optimization of the initial conformer results in
         bond changes, adjust the reference connectivity. If the
         changes are too severe, the calculation will stop.

   "CREST"
      Type:
         Block

      Description:
         Options for the CREST generator. The CREST generator performs
         a set of metadynamics simulations (using the METADYNAMICS
         generator), then a set of MD simulations (using the MD
         expander), and finally it does a combinatorial expansion of
         the generated conformers using the GC expander. This sequence
         is repeated in an iterative fashion until the lowest energy
         conformer no longer changes.

      "ConvergenceQualityCrude"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [Normal, Good, VeryGood, Excellent, None]

         Description:
            The tightness of the convergence of the crude geometry
            pre-optimizations. If set to none it will be selected two
            levels below ConvergenceQuality.

      "ConvergenceQualityTight"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [Normal, Good, VeryGood, Excellent, None]

         Description:
            The tightness of the convergence of the final geometry
            optimizations. If set to none it will be selected the same
            as ConvergenceQuality.

      "GCStep"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Wether or not to include the combinatorial expansion of
            the conformers using the GC Generator. For big systems
            this step can be very time consuming. By default it is set
            to True.

      "NCycles"
         Type:
            Integer

         Default value:
            10

         Description:
            The maximum number of CREST cycles (by default the number
            is 10). If the lowest conformer energy converges before
            then, Crest exits.

      "NMolDynStepsFactor"
         Type:
            Integer

         Description:
            If the number of MD steps for the metadynamics and regular
            MD are not explicitly set in the respecive blocks, then
            the number of steps determined from the flexibility of the
            system will be multiplied by this value.

      "UseShake"
         Type:
            Bool

         Default value:
            Yes

         Description:
            Wether or not SHAKE should be turned on in the MD and
            Metadynamics simulations. If this is turned on, the MD
            timestep is automatically increased (from 2 to 5 fs).

   "METADYNAMICS"
      Type:
         Block

      Description:
         Produces conformers by running a set of CREST-RMSD
         metadynamics simulations with different biases, extracting
         snapshots, and optimizing those.

      "ConvergenceQualityCrude"
         Type:
            Multiple Choice

         Default value:
            none

         Options:
            [normal, good, verygood, excellent, none]

         Description:
            The tightness of the convergence of the crude geometry
            pre-optimizations. If set to none it will be selected two
            levels below ConvergenceQuality.

      "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. Default values will be ignored.

         "Checkpoint"
            Type:
               Block

            Description:
               Sets the frequency for storing the entire MD state
               necessary for restarting the calculation.

            "Frequency"
               Type:
                  Integer

               Default value:
                  1000

               GUI name:
                  Checkpoint frequency

               Description:
                  Write the MD state to the Molecule and MDResults
                  sections on ams.rkf once every N steps. Setting this
                  to zero disables checkpointing during the
                  simulation, but one checkpoint at the very end of
                  the simulation will always be written.

                  NOTE: This no longer controls the frequency of
                  writing MDStep*.rkf files, set
                  Trajectory%EngineResultsFreq instead.

            "WriteProperties"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Honor top-level Properties input block when writing
                  engine results files.

                  DEPRECATED: This input option will be removed in
                  AMS2026 and will be considered always enabled. If
                  you rely on it being disabled, please contact SCM
                  support.

         "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.

            "RandomVelocitiesMethod"
               Type:
                  Multiple Choice

               Default value:
                  Exact

               Options:
                  [Exact, Boltzmann, Gromacs]

               GUI name:
                  Velocity randomization method

               Description:
                  Specifies how are random velocities generated. Three
                  methods are available.

                  Exact: Velocities are scaled to exactly match set
                  random velocities temperature.

                  Boltzmann: Velocities are not scaled and sample
                  Maxwell-Boltzmann distribution. However, the
                  distribution is not corrected for constraints.

                  Gromacs: Velocities are scaled to match set random
                  velocities temperature, but removal of net momentum
                  is performed only after the scaling. Resulting
                  kinetic energy is lower based on how much net
                  momentum the system had.

            "Temperature"
               Type:
                  Float

               Unit:
                  Kelvin

               GUI name:
                  Initial temperature

               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.

                  AMSinput will use the first temperature of the first
                  thermostat as default.

            "Type"
               Type:
                  Multiple Choice

               Default value:
                  Random

               Options:
                  [Zero, Random, FromFile, Input]

               GUI name:
                  Initial velocities

               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
                  AMSinput.

            "Values"
               Type:
                  Non-standard block

               Description:
                  This block specifies the velocity of each atom, in
                  Angstrom/fs, 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

            GUI name:
               Number of steps

            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:
                  Yes

               GUI name:
                  : Angular momentum

               Description:
                  Remove overall angular momentum of the system. This
                  option is ignored for 2D and 3D-periodic systems,
                  and disabled by default for systems which are not
                  translationally invariant (for example when frozen
                  atoms are present).

            "CenterOfMass"
               Type:
                  Bool

               Default value:
                  No

               GUI name:
                  : Center of mass

               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:
                  Yes

               GUI name:
                  Preserve: Total momentum

               Description:
                  Remove overall (linear) momentum of the system. This
                  is disabled by default for systems which are not
                  translationally invariant (for example when frozen
                  atoms are present).

         "Print"
            Type:
               Block

            Description:
               This block controls the printing of additional
               information to stdout.

            "System"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Print the chemical system before and after the
                  simulation.

            "Velocities"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Print the atomic velocities before and after the
                  simulation.

         "Restart"
            Type:
               String

            GUI name:
               Restart from

            Description:
               The path to the ams.rkf file from which to restart the
               simulation.

         "Shake"
            Type:
               Block

            Description:
               Parameters of the Shake/Rattle algorithm.

            "All"
               Type:
                  String

               Recurring:
                  True

               GUI name:
                  Constrain all

               Description:
                  Constraint description in one the following formats:

                  All [bondOrder] bonds at1 at2 [to distance]

                  All triangles at1 at2 at3

                  The first option constrains all bonds between atoms
                  at1 at2 to a certain length, while the second -
                  bonds at1-at2 and at2-at3 and the angle between
                  them.

                  The [bondOrder] can be a number or a string such as
                  single, double, triple or aromatic. If it's omitted
                  then all bonds between specified atoms will be
                  constrained. Atom names are case-sensitive and they
                  must be as they are in the Atoms block, or an
                  asterisk '*' denoting any atom. The distance, if
                  present, must be in Angstrom. If it is omitted then
                  the bond length from the initial geometry is used.

                  Important: only the bonds present in the system at
                  certain points of the simulation (at the start or
                  right after adding/removing atoms) can be
                  constrained, which means that the bonds may need to
                  be specified in the System block.

                  Warning: the triangles constraint should be used
                  with care because each constrained bond or angle
                  means removing one degree of freedom from the
                  dynamics. When there are too many constraints (for
                  example, "All triangles H C H" in methane) some of
                  them may be linearly dependent, which will lead to
                  an error in the temperature computation.

                  Valid examples:

                  All single bonds C C to 1.4

                  All bonds O H to 0.98

                  All bonds O H

                  All bonds H *

                  All triangles H * H

            "ConvergeR2"
               Type:
                  Float

               Default value:
                  1e-08

               Description:
                  Convergence criterion on the max squared difference,
                  in atomic units.

            "ConvergeRV"
               Type:
                  Float

               Default value:
                  1e-08

               Description:
                  Convergence criterion on the orthogonality of the
                  constraint and the relative atomic velocity, in
                  atomic units.

            "ExcludeRegion"
               Type:
                  String

               Default value:
               Description:
                  Exclude all atoms covered by this region expression
                  from all constraints. If both atoms of a bond belong
                  to ExcludeRegion, the bond will be kept
                  unconstrained, regardless of Shake%All or engine-
                  specific constraints.

            "Iterations"
               Type:
                  Integer

               Default value:
                  100

               Description:
                  Number of iterations.

            "ShakeInitialCoordinates"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Apply constraints before computing the first energy
                  and gradients.

         "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's
               behavior.

            "BerendsenApply"
               Type:
                  Multiple Choice

               Default value:
                  Global

               Options:
                  [Local, Global]

               GUI name:
                  Apply Berendsen

               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

               GUI name:
                  NHC chain length

               Description:
                  Number of individual thermostats forming the NHC
                  thermostat

            "Duration"
               Type:
                  Integer List

               GUI name:
                  Duration(s)

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

            "Region"
               Type:
                  String

               Default value:
                  *

               Description:
                  The identifier of the region to thermostat. The
                  default *** applies the thermostat to the entire
                  system. The value can by a plain region name, or a
                  region expression, e.g. **-myregion* to thermostat
                  all atoms that are not in myregion, or
                  *regionA+regionB* to thermostat the union of the
                  'regionA' and 'regionB'. Note that if multiple
                  thermostats are used, their regions may not overlap.

            "Tau"
               Type:
                  Float

               Unit:
                  Femtoseconds

               GUI name:
                  Damping constant

               Description:
                  The time constant of the thermostat.

            "Temperature"
               Type:
                  Float List

               Unit:
                  Kelvin

               GUI name:
                  Temperature(s)

               Description:
                  The target temperature of the thermostat.

                  You can specify multiple temperatures (separated by
                  spaces). In that case the Duration field specifies
                  how many steps to use for the transition from one T
                  to the next T (using a linear ramp). For NHC
                  thermostat, the temperature may not be zero.

            "Type"
               Type:
                  Multiple Choice

               Default value:
                  None

               Options:
                  [None, Berendsen, NHC]

               GUI name:
                  Thermostat

               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.

            "EngineResultsFreq"
               Type:
                  Integer

               Default value:
                  0

               GUI name:
                  Engine results frequency

               Description:
                  Write MDStep*.rkf files with engine-specific results
                  once every N steps. Setting this to zero disables
                  writing engine results files except for one file at
                  the end of the simulation. If this is set to a
                  negative value, the value of Checkpoint%Frequency
                  will be used instead.

            "ExitConditionFreq"
               Type:
                  Integer

               GUI name:
                  Exit condition frequency

               Description:
                  Check the exit conditions every N steps. By default
                  this is done every SamplingFreq steps.

            "PrintFreq"
               Type:
                  Integer

               GUI name:
                  Printing frequency

               Description:
                  Print current thermodynamic properties to the output
                  every N steps. By default this is done every
                  SamplingFreq steps.

            "SamplingFreq"
               Type:
                  Integer

               Default value:
                  100

               GUI name:
                  Sample frequency

               Description:
                  Write the molecular geometry (and possibly other
                  properties) to the ams.rkf file once every N steps.

            "TProfileGridPoints"
               Type:
                  Integer

               Default value:
                  0

               Description:
                  Number of points in the temperature profile. If
                  TProfileGridPoints > 0, a temperature profile along
                  each of the three lattice axes will be written to
                  the .rkf file. The temperature at a given profile
                  point is calculated as the total temperature of all
                  atoms inside the corresponding slice of the
                  simulation box, time-averaged over all MD steps
                  since the previous snapshot.​ By default, no profile
                  is generated.

            "WriteBonds"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write detected bonds to the .rkf file.

            "WriteCharges"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write current atomic point charges (if available) to
                  the .rkf file. Disable this to reduce trajectory
                  size if you do not need to analyze charges.

            "WriteCoordinates"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write atomic coordinates to the .rkf file.

            "WriteEngineGradients"
               Type:
                  Bool

               Default value:
                  No

               Description:
                  Write atomic gradients (negative of the atomic
                  forces, as calculated by the engine) to the History
                  section of ams.rkf.

            "WriteMolecules"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write the results of molecule analysis to the .rkf
                  file.

            "WriteVelocities"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Write velocities to the .rkf file. Disable this to
                  reduce trajectory size if you do not need to analyze
                  the velocities.

      "NCycles"
         Type:
            Integer

         Default value:
            5

         Description:
            The maximum number of cycles of metadynamics simulations.
            The generator stops when either this number is reached, or
            the conformer set is stable.

      "NMolDynStepsFactor"
         Type:
            Integer

         Description:
            If the number of MD steps for the metadynamics and regular
            MD are not explicitly set in the respecive blocks, then
            the number of steps determined from the flexibility of the
            system will be multiplied by this value.

      "NWidthsHeights"
         Type:
            Integer List

         Default value:
            [4, 3]

         Description:
            The number of different Gaussian widths and heights
            respectively used in the metadynamics simulations. By
            default 4 different widths are used and 3 different
            heights, resulting in 12 different metadynamics
            simulations.

      "SimulationSuccessFraction"
         Type:
            Float

         Default value:
            0.4

         Description:
            The fraction of planned metadynamics steps that has to
            have succeeded in order for the metadynamics iteration to
            be considered a success.

      "UseShake"
         Type:
            Bool

         Default value:
            No

         Description:
            Constrain all -H bonds with shake. If turned on, the MD
            timestep is automatically increased.

   "MaxEnergy"
      Type:
         Float

      Unit:
         kcal/mol

      Description:
         Threshold for filtering out high-energy conformers. If the
         relative energy of a conformer with respect to the lowest
         conformer is larger than this value, the conformer will be
         discarded.

   "Method"
      Type:
         Multiple Choice

      Default value:
         RDKit

      Options:
         [RDKit, CREST, ANNEALING]

      GUI name:
         Generator method

      Description:
         Method used to generate the conformers.

         The RDKit generator is based on random distance matrix
         method. This is the recommended (and default) method.

         The CREST Generator uses a multi-step workflow with meta-
         dynamics simulations to explore the conformers space of a
         molecule. This can be a powerful conformer search method, but
         it is generally computationally expensive compared to the
         RDKit generator.

         The ANNEALING generator performs a simulated annealing
         simulation to explore conformer space.

   "Preoptimization"
      Type:
         Block

      Description:
         If this block is enabled geometries will be preoptimized.
         After preoptimization the high energy conformers will be
         discarded, and then from the remaining set the unoptimized
         geometries will be optimized at higher level. This is to
         prevent the preoptimizer from collapsing different conformers
         into a single false minimum. As a result, preoptimization is
         only useful if MaxEnergy is chosen low.

      "Enable"
         Type:
            Bool

         Default value:
            No

         Description:
            Perform preoptimization at a low level of accuracy.

      "Engine"
         Type:
            Block

         Description:
            The engine specifics to be used for preoptimization.

      "PreoptFactor"
         Type:
            Integer

         Default value:
            2

         Description:
            This factor is multiplied with MaxEnergy, to determine
            which high energy conformers can be discarded after
            preoptimization.

   "RDKit"
      Type:
         Block

      Description:
         Options for the RDKit generator. This generator produces
         initial guesses for conformers using the RDKit ETKDG method,
         followed by AMS geometry optimizations.

      "InitialNConformers"
         Type:
            Integer

         GUI name:
            Initial no. of conformers

         Description:
            Number of geometries initially created by RDKit, before
            AMS geometry optimization and filtering. If not set, the
            number will be automatically set, based on the number of
            rotational bonds.

      "MaxConfs"
         Type:
            Integer

         Default value:
            5000

         Description:
            If InitialNConformers is not set, then the number of
            conformers will be automatically set, with a maximum of
            MaxConfs.

      "MinConfs"
         Type:
            Integer

         Default value:
            10

         Description:
            If InitialNConformers is not set, then the number of
            conformers will be automatically set, with a minimum of
            MinConfs.

      "NconfsEstimationFactor"
         Type:
            Integer

         Default value:
            100

         Description:
            If InitialNConformers is not set, then the number of
            conformers will be automatically set based on the number
            of rotational bonds. The resulting number is then
            multiplied by this factor (default: 100), to ensure that
            enough conformers will be created.

   "RDKitETKDG"
      Type:
         Block

      Description:
         Settings for the call to RDKits ETKDG conformer generator
         tool.

      "BestRMSDThreshold"
         Type:
            Float

         Default value:
            -1.0

         Description:
            After ETKDG conformer generation by RDKit, RDKit can be
            used to remove duplicates via the BestRMS algorithm. This
            filter does exactly the same as the RMSD equivalence
            detector in the Equivalence block.

      "ConstrainedAtoms"
         Type:
            Integer List

         Description:
            The indices of the atoms to constrain during ETKDG
            conformer generation.

      "Forcefield"
         Type:
            Multiple Choice

         Default value:
            None

         Options:
            [None, UFF, MMFF]

         Description:
            The name of the RDKit forcefield to use for geometry
            optimization at the end of ETKDG conformer generation (by
            default no geometry optimization is performed). Using the
            RDKit internal optimization may make the subsequent
            geometry optimizations with AMS faster.

      "Parallel"
         Type:
            Bool

         Default value:
            No

         Description:
            Experimental: Parallelize the RDKit generation step by
            calling the RDKit conformer generation method in parallel
            from multiple processes.

      "RMSDThreshold"
         Type:
            Float

         Default value:
            -1.0

         Description:
            Root Mean Square deviation threshold for removing
            similar/equivalent conformations during the RDKit ETKDG
            procedure. By default there is no pruning (value: -1).

      "UseExpTorsionAnglePrefs"
         Type:
            String

         Default value:
            default

         Description:
            Impose experimental torsion angle preferences in RDKit
            ETKDG conformer generation. By default the RDKit version
            determines whether or not to switch this on.

   "RNGSeed"
      Type:
         Integer

      Description:
         Initial guesses for conformers can be randomly generated by
         RDKit, using the ETKDG algorithm. For reproducibility, a
         random number seed can be provided here.

   "TORSION"
      Type:
         Block

      Description:
         Options for the TorsionGenerator, which generates geometries
         by enumerative rotation around rotatable bonds. This is the
         slowest of all generator, and quickly becomes infeasible for
         large systems. Currently does not work for systems with
         interconnected rings.

      "Dtheta"
         Type:
            Float

         Default value:
            60.0

         Description:
            The angle over which the bonds are rotated, in order to
            create a new conformer.

"GeometryOptimization"
   Type:
      Block

   Description:
      Some options / details regarding the optimization procedure.

   "ConvergenceQuality"
      Type:
         Multiple Choice

      Default value:
         VeryGood

      Options:
         [Normal, Good, VeryGood, Excellent]

      GUI name:
         Convergence

      Description:
         The tightness of the convergence of the geometry
         optimizations. Lower quality levels may lead to badly
         converged geometries being classified as distinct conformers.

   "GeometryOptimization"
      Type:
         Block

      Description:
         Configures details of the geometry optimization and
         transition state searches.

      "CalcPropertiesOnlyIfConverged"
         Type:
            Bool

         Default value:
            Yes

         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.

      "Convergence"
         Type:
            Block

         Description:
            Convergence is monitored for up to 4 quantities: the
            energy change, the Cartesian gradients, the Cartesian step
            size, and for lattice optimizations the stress energy per
            atom. Convergence criteria can be specified separately for
            each of these items.

         "Energy"
            Type:
               Float

            Default value:
               1e-05

            Unit:
               Hartree

            Value Range:
               value > 0

            GUI name:
               Energy convergence

            Description:
               The criterion for changes in the energy. The energy is
               considered converged when the change in energy is
               smaller than this threshold times the number of atoms.

         "Gradients"
            Type:
               Float

            Default value:
               0.001

            Unit:
               Hartree/Angstrom

            Value Range:
               value > 0

            GUI name:
               Gradient convergence

            Description:
               Threshold for nuclear gradients.

         "Quality"
            Type:
               Multiple Choice

            Default value:
               Custom

            Options:
               [VeryBasic, Basic, Normal, Good, VeryGood, Custom]

            GUI name:
               Convergence

            Description:
               A quick way to change convergence thresholds: 'Good'
               will reduce all thresholds by an order of magnitude
               from their default value. 'VeryGood' will tighten them
               by two orders of magnitude. 'Basic' and 'VeryBasic'
               will increase the thresholds by one or two orders of
               magnitude respectively.

         "Step"
            Type:
               Float

            Default value:
               0.01

            Unit:
               Angstrom

            Value Range:
               value > 0

            GUI name:
               Step convergence

            Description:
               The maximum Cartesian step allowed for a converged
               geometry.

         "StressEnergyPerAtom"
            Type:
               Float

            Default value:
               0.0005

            Unit:
               Hartree

            Value Range:
               value > 0

            Description:
               Threshold used when optimizing the lattice vectors. The
               stress is considered 'converged' when the maximum value
               of stress_tensor * cell_volume / number_of_atoms is
               smaller than this threshold (for 2D and 1D systems, the
               cell_volume is replaced by the cell_area and
               cell_length respectively).

      "CoordinateType"
         Type:
            Multiple Choice

         Default value:
            Auto

         Options:
            [Auto, Delocalized, Cartesian]

         GUI name:
            Optimization space

         Description:
            Select the type of coordinates in which to perform the
            optimization. 'Auto' automatically selects the most
            appropriate CoordinateType for a given Method.

            If 'Auto' is selected, Delocalized coordinates will be
            used for the Quasi-Newton method, while Cartesian
            coordinates will be used for all other methods.

      "Dimer"
         Type:
            Block

         Description:
            Options for the Dimer method for transition state search.

         "AngleThreshold"
            Type:
               Float

            Default value:
               1.0

            Unit:
               Degree

            Description:
               The rotation is considered converged when the the
               rotation angle falls below the specified threshold.

         "DimerDelta"
            Type:
               Float

            Default value:
               0.01

            Unit:
               Angstrom

            Description:
               Euclidian distance between the midpoint and the
               endpoint.

         "ExtrapolateForces"
            Type:
               Bool

            Default value:
               Yes

            Description:
               Set to false to call engine to calculate forces at the
               extrapolated rotation angle instead of extrapolating
               them.

         "LBFGSMaxVectors"
            Type:
               Integer

            Default value:
               10

            Description:
               Max number of vectors for the L-BFGS algorithm to save.

         "MaxRotationIterations"
            Type:
               Integer

            Default value:
               10

            Description:
               Maximum number of rotation iterations for a single
               translation step.

         "Region"
            Type:
               String

            Default value:
               *

            Description:
               Include only atoms of the specified region(s) in the
               rotations, which allows searching for a transition
               state involving selected atoms only.

         "RotationTrustRadius"
            Type:
               Float

            Default value:
               0.1

            Unit:
               Angstrom

            Description:
               L-BFGS trust radius during rotation iterations.

         "TranslationTrustRadius"
            Type:
               Float

            Default value:
               0.1

            Unit:
               Angstrom

            Description:
               L-BFGS trust radius during translation iterations.

      "EngineAutomations"
         Type:
            Block

         Description:
            The optimizer can change some settings of the engine,
            based for instance on the error.

            The idea is to allow the engine to be a bit quicker at the
            start, and more accurate towards the end.

            Automations are always engine specific.

         "Enabled"
            Type:
               Bool

            Default value:
               Yes

            Description:
               Whether or not automations are enabled at all.

         "Gradient"
            Type:
               Block

            Recurring:
               True

            Description:
               A gradient-based automation.

            "FinalValue"
               Type:
                  Float

               Description:
                  This value will be used whenever the gradient is
                  less than GradientLow

            "HighGradient"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  Hartree/Angstrom

               Description:
                  Defines a large gradient. When the actual gradient
                  is between GradientHigh and GradientLow a linear
                  interpolation scheme is used for kT (on a log
                  scale).

            "InitialValue"
               Type:
                  Float

               Description:
                  This value will be used at the first geometry, and
                  whenever the gradient is higher than GradientHigh

            "LowGradient"
               Type:
                  Float

               Default value:
                  1.0

               Unit:
                  Hartree/Angstrom

               Description:
                  Defines a small gradient, see GradientHigh

            "UseLogInterpolation"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Whether to use interpolation on a log (y) scale or
                  not

            "Variable"
               Type:
                  String

               Default value:
               Description:
                  variable to be tweaked for the engine.

         "Iteration"
            Type:
               Block

            Recurring:
               True

            Description:
               Geometry step based automation.

            "FinalValue"
               Type:
                  Float

               Description:
            "FirstIteration"
               Type:
                  Integer

               Default value:
                  1

               Description:
                  When the actual gradient is between the first and
                  last iteration, a linear interpolation is used.

            "InitialValue"
               Type:
                  Float

               Description:
                  This value will be used when the iteration number is
                  smaller or equal to FirstIteration

            "LastIteration"
               Type:
                  Integer

               Default value:
                  10

               Description:
                  Where the automation should reach the FinalValue

            "UseLogInterpolation"
               Type:
                  Bool

               Default value:
                  Yes

               Description:
                  Whether to use interpolation on a log (y) scale or
                  not

            "Variable"
               Type:
                  String

               Default value:
               Description:
                  variable to be tweaked for the engine.

      "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).

         "AllowOverallRotation"
            Type:
               Bool

            Default value:
               Yes

            Description:
               Whether or not the system is allowed to freely rotate
               during the optimization. This is relevant when
               optimizing structures in the presence of external
               fields.

         "AllowOverallTranslation"
            Type:
               Bool

            Default value:
               No

            Description:
               Whether or not the system is allowed to translate
               during the optimization. This is relevant when
               optimizing structures in the presence of external
               fields.

         "MapAtomsToUnitCell"
            Type:
               Bool

            Default value:
               No

            Description:
               Map the atoms to the central cell at each geometry
               step.

         "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.0

            Unit:
               Femtoseconds

            Description:
               Maximum time step used for the integration. For ReaxFF
               and APPLE&P, this value is reduced by 50%.

         "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:
               Fictitious 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.

      "HessianFree"
         Type:
            Block

         Description:
            Configures details of the Hessian-free (conjugate
            gradients or L-BFGS) geometry optimizer.

         "Step"
            Type:
               Block

            Description:
            "MaxCartesianStep"
               Type:
                  Float

               Default value:
                  0.1

               Unit:
                  Angstrom

               Description:
                  Limit on a single Cartesian component of the step.

            "MinRadius"
               Type:
                  Float

               Default value:
                  0.0

               Unit:
                  Angstrom

               Description:
                  Minimum value for the trust radius.

            "TrialStep"
               Type:
                  Float

               Default value:
                  0.0005

               Unit:
                  Angstrom

               Description:
                  Length of the finite-difference step when
                  determining curvature. Should be smaller than the
                  step convergence criterion.

            "TrustRadius"
               Type:
                  Float

               Default value:
                  0.2

               Unit:
                  Angstrom

               Description:
                  Initial value of the trust radius.

      "InitialHessian"
         Type:
            Block

         Description:
            Options for initial model Hessian when optimizing systems
            with the Quasi-Newton method.

         "File"
            Type:
               String

            GUI name:
               Initial Hessian from

            Description:
               KF file containing the initial Hessian (or the results
               dir. containing it). 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, Calculate,
               CalculateWithFastEngine]

            GUI name:
               Initial Hessian

            Description:
               Select the type of initial Hessian. Auto: let the
               program pick an initial model Hessian. UnitMatrix:
               simplest initial model Hessian, just a unit matrix in
               the optimization coordinates. Swart: model Hessian from
               M. Swart. FromFile: load the Hessian from the results
               of a previous calculation (see InitialHessian%File).
               Calculate: compute the initial Hessian (this may be
               computationally expensive and it is mostly recommended
               for TransitionStateSearch calculations).
               CalculateWithFastEngine: compute the initial Hessian
               with a faster engine.

      "KeepIntermediateResults"
         Type:
            Bool

         Default value:
            No

         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

         Value Range:
            value >= 0

         GUI name:
            Maximum number of iterations

         Description:
            The maximum number of geometry iterations allowed to
            converge to the desired structure.

      "MaxRestarts"
         Type:
            Integer

         Default value:
            0

         Description:
            If a geometry optimization of a system with no symmetry
            operators (or with explicitly disabled symmetry:
            "UseSymmetry False") and enabled PES point
            characterization converges to a transition state (or
            higher order saddle point), it can be restarted
            automatically after a small displacement along the
            imaginary vibrational mode. In case the restarted
            optimization again does not find a minimum, this can
            happen multiple times in succession. This keyword sets the
            maximum number of restarts. The default value is 0, so the
            automatic restarting is disabled by default.

      "Method"
         Type:
            Multiple Choice

         Default value:
            Auto

         Options:
            [Auto, Quasi-Newton, FIRE, L-BFGS, ConjugateGradients,
            Dimer]

         GUI name:
            Optimization method

         Description:
            Select the optimization algorithm employed for the
            geometry relaxation. Currently supported are:

            the Hessian-based Quasi-Newton-type BFGS algorithm,

            the fast inertial relaxation method (FIRE),

            the limited-memory BFGS method,

            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:
            No

         Description:
            Whether to also optimize the lattice for periodic
            structures. This is currently supported with the Quasi-
            Newton, FIRE, and L-BFGS optimizers.

      "PretendConverged"
         Type:
            Bool

         Default value:
            No

         Description:
            Normally a non-converged geometry optimization is
            considered an error. If this keyword is set to True, the
            optimizer will only produce a warning and still claim that
            the optimization is converged. (This is mostly useful for
            scripting applications, where one might want to consider
            non-converged optimizations still successful jobs.)

      "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

               Description:
                  Initial value of the trust radius.

            "VaryTrustRadius"
               Type:
                  Bool

               Description:
                  Whether to allow the trust radius to change during
                  optimization. By default True during energy
                  minimization and False during transition state
                  search.

         "UpdateTSVectorEveryStep"
            Type:
               Bool

            Default value:
               Yes

            GUI name:
               Update TSRC vector every step

            Description:
               Whether to update the TS reaction coordinate at each
               step with the current eigenvector.

      "RestartDisplacement"
         Type:
            Float

         Default value:
            0.05

         Unit:
            Angstrom

         Description:
            If a geometry optimization of a system with no symmetry
            operators (or with explicitly disabled symmetry:
            "UseSymmetry False") and enabled PES point
            characterization converges to a transition state (or
            higher order saddle point), it can be restarted
            automatically after a small displacement along the
            imaginary vibrational mode. This keywords sets the size of
            the displacement for the furthest moving atom.

   "Keep"
      Type:
         Multiple Choice

      Default value:
         None

      Options:
         [None, all]

      Description:
         Keep all the output files of the geometry optimizations. If
         set to 'all', must be used in combination with
         Output%KeepWorkDir. This will automatically set UseAMSWorker
         to False.

   "MaxConvergenceTime"
      Type:
         Multiple Choice

      Default value:
         Default

      Options:
         [Default, High]

      Description:
         The number of iterations for the geometry optimization, based
         on the number of atoms in the system. The default value is
         the general AMS value for geometry optimization. Often, for
         conformer generation, it needs to be set higher.

   "MaxOptimizations"
      Type:
         Integer

      Default value:
         1000

      Description:
         Set a maximum to the number of geometries accepted for
         optimization at once, per AMSWorker (so should be multiplied
         by the number of cores used). If not set, the disc size
         requirements can become too large.

   "OptimizationMethod"
      Type:
         Multiple Choice

      Default value:
         Quasi-Newton

      Options:
         [Auto, Quasi-Newton, FIRE, L-BFGS, ConjugateGradients, Dimer]

      Description:
         Select the optimization algorithm employed for the geometry
         relaxation. Currently supported are:

         the Hessian-based Quasi-Newton-type BFGS algorithm,

         the fast inertial relaxation method (FIRE),

         the limited-memory BFGS method,

         and the conjugate gradients method. The default is Quasi-
         Newton, which gives the most reliable results for conformers.
         The Auto method leaves it to the AMS GeometryOptimization
         task to select a method.

   "UseAMSWorker"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Whether the set of optimizations should be run via the
         AMSWorkerPool or via regular AMSJobs.

   "WriteGeometries"
      Type:
         Block

      Description:
         Determines if and where optimized geometries will be written
         to file during optimization. When the AMSWorker is used, then
         the write interval depends on MaxOptimizations. If enabled,
         must be used in combination with Output%KeepWorkDir.

      "Dirname"
         Type:
            String

         Default value:
            conf_tmpdir

         Description:
            The name of the folder that should contain the optimized
            geometries.

      "Enabled"
         Type:
            Bool

         Default value:
            No

         Description:
            Enables or disables the periodic writing of optimized
            geometries to file

"InputConformersSet"
   Type:
      String

   Recurring:
      True

   Description:
      The path to a file containing a set of conformers.

      The file should be either an 'conformers.rkf' file (i.e. the
      results file of conformers), a concatenated .xyz file, a .sdf
      file, or even .dcd file. In the case of a .dcd file, an
      additional System block is required. If the specified file does
      not contain energies in the AMS conformers format (as produced
      by the conformers tool), all conformer energies will be set to
      zero.

      You can specify multiple input conformers sets by including the
      InputConformersSet keyword multiple times.

"InputMaxConfs"
   Type:
      Integer

   Description:
      The maximum number of conformers to carry forward when loading
      conformer sets.  If this input is not specified, this limit will
      not be imposed.

"InputMaxEnergy"
   Type:
      Float

   Unit:
      kcal/mol

   Description:
      Threshold for filtering out high-energy conformers when loading
      conformers sets using the InputConformerSet keyword. Conformers
      with an larger relative energy will not be loaded.

"LoadSystem"
   Type:
      Block

   Recurring:
      True

   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. It may
         also be the results directory containing it.

   "Section"
      Type:
         String

      Default value:
         Molecule

      Description:
         The section on the KF file from which to load the system.

"Output"
   Type:
      Block

   Description:
      Options regarding the output and result files.

   "KeepWorkDir"
      Type:
         Bool

      Default value:
         No

      Description:
         Do not remove the working directories after the conformer
         generation is finished.

   "rkf"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Save the final conformers in .rkf format. The file
         'conformers.rkf' will be located in the results directory.
         You can visualize this file using the AMSMovie GUI module.

   "sdf"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Save the final conformers in .sdf format. The file
         'conformers.sdf' will be located in the results directory.

   "xyz"
      Type:
         Bool

      Default value:
         Yes

      Description:
         Save the final conformers in .xyz format. The file
         'conformers.xyz' will be located in the results directory.

"Restraints"
   Type:
      Block

   Description:
      The Restraints block allows to add soft constraints to the
      system. A restraint is a potential energy function (a spring)
      attached to a certain coordinate, for example, an interatomic
      distance, with its minimum at the specified optimal value. A
      restraint is defined using one or two parameters: the
      ForceConstant and, for some types, the F(Inf) value. The
      ForceConstant parameter corresponds to second derivative of the
      restraint potential energy d2V(x)/dx^2 for any x (harmonic
      restraints) or only at at x=0 (other restraints). Here, x is a
      deviation from the restraint's optimal value.

   "Angle"
      Type:
         String

      Recurring:
         True

      Description:
         Specify three atom indices i j k followed by an angle in
         degrees and, optionally, by the ForceConstant (default is 0.3
         in a.u.), profile type and F(Inf) (in a.u.). This restraint
         will try to keep the i-j-k angle at the given value. For
         periodic systems this restraint follows the minimum image
         convention.

   "DifDist"
      Type:
         String

      Recurring:
         True

      Description:
         Specify four atom indices i j k l followed by the distance in
         Angstrom and, optionally, by the ForceConstant (default is
         1.0 in a.u.), profile type and F(Inf) (in a.u.). This
         restraint will try to keep the difference R(ij)-R(kl) at the
         given value. For periodic systems this restraint follows the
         minimum image convention.

   "Dihedral"
      Type:
         String

      Recurring:
         True

      Description:
         Specify four atom indices i j k l followed by an angle in
         degrees and, optionally, by the ForceConstant (default is 0.1
         in a.u.), profile type and F(Inf) (in a.u.). This restraint
         will try to keep the i-j-k-l dihedral angle at the given
         value. For periodic systems this restraint follows the
         minimum image convention.

   "Distance"
      Type:
         String

      Recurring:
         True

      Description:
         Specify two atom indices followed by the distance in Angstrom
         and, optionally, by the ForceConstant (default is 1.0 in
         a.u.), profile type and F(Inf) (in a.u.). This restraint will
         try to keep the distance between the two specified atoms at
         the given value. For periodic systems this restraint follows
         the minimum image convention.

   "FInfinity"
      Type:
         Float

      Default value:
         1.0

      GUI name:
         Default F(inf)

      Description:
         Specify the default asymptotic value for the restraint force
         for the Hyperbolic and Erf profiles, in Hartree/Bohr or
         Hartree/radian.

         A per-restraint value can be specified after the profile type
         on the corresponding restraint line.

   "Profile"
      Type:
         Multiple Choice

      Default value:
         Harmonic

      Options:
         [Harmonic, Hyperbolic, Erf, GaussianWell]

      GUI name:
         Default restraint profile

      Description:
         Select the default type of restraint profile.

         The harmonic profile is most suitable for geometry
         optimizations but may result is very large forces that can be
         problematic in molecular dynamic.

         For MD simulations the Hyperbolic or Erf may be more suitable
         because the restraint force is bounded by a user-defined
         value.

         A per-restraint profile type can be specified after the
         ForceConstant value on the corresponding restraint line.

   "SumDist"
      Type:
         String

      Recurring:
         True

      Description:
         Specify four atom indices i j k l followed by the distance in
         Angstrom and, optionally, by the ForceConstant (default is
         1.0 in a.u.), profile type and F(Inf) (in a.u.). This
         restraint will try to keep the sum R(ij)+R(kl) at the given
         value. For periodic systems this restraint follows the
         minimum image convention.

   "Units"
      Type:
         Multiple Choice

      Default value:
         Default

      Options:
         [Default, MD]

      GUI name:
         Units

      Description:
         Change units for energy, force and force constant values from
         the default (atomic units) to those often used in the MD
         community (based on kcal/mol and Angstrom). Units for the
         optimal distances are not affected and are always Angstrom.

"RNGSeed"
   Type:
      Integer

   Description:
      Initial seed for the (pseudo)random number generator. If this is
      unset, the generator will be seeded randomly from external
      sources of entropy and the generated conformers will be non-
      deterministic.

"System"
   Type:
      Block

   Recurring:
      True

   Description:
      Specification of the chemical system. For some applications more
      than one system may be present in the input. In this case, all
      systems except one must have a non-empty string ID specified
      after the System keyword. The system without an ID is considered
      the main one.

   "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. Each line should contain two atom
         indices, followed by the bond order (1, 1.5, 2, 3 for single,
         aromatic, double and triple bonds) and (optionally) the cell
         shifts for periodic systems. May be used by MM engines and
         for defining constraints. If the system is periodic and none
         of the bonds have the cell shift defined then AMS will
         attempt to determine them following the minimum image
         convention.

   "Charge"
      Type:
         Float

      Default value:
         0.0

      GUI name:
         Total charge

      Description:
         The system's total charge in atomic units.

   "ElectrostaticEmbedding"
      Type:
         Block

      Description:
         Container for electrostatic embedding options, which can be
         combined.

      "ElectricField"
         Type:
            Float List

         Unit:
            V/Angstrom

         Description:
            External homogeneous electric field with three Cartesian
            components: ex, ey, ez, the default unit being V/Å.

            In atomic units: Hartree/(e bohr) = 51.422 V/Angstrom; the
            relation to SI units is: 1 Hartree/(e bohr) = 5.14 ... e11
            V/m.

            Supported by the engines adf, band, dftb and mopac.

            For periodic systems the field may only have nonzero
            components orthogonal to the direction(s) of periodicity
            (i.e. for 1D periodic system the x-component of the
            electric field should be zero, while for 2D periodic
            systems both the x and y components should be zero. This
            options cannot be used for 3D periodic systems.

      "MultipolePotential"
         Type:
            Block

         Description:
            External point charges (and dipoles).

         "ChargeModel"
            Type:
               Multiple Choice

            Default value:
               Point

            Options:
               [Point, Gaussian]

            Description:
               A multipole may be represented by a point (with a
               singular potential at its location) or by a spherical
               Gaussian distribution.

         "ChargeWidth"
            Type:
               Float

            Default value:
               -1.0

            Description:
               The width parameter in a.u. in case a Gaussian charge
               model is chosen. A negative value means that the width
               will be chosen automatically.

         "Coordinates"
            Type:
               Non-standard block

            Description:
               Positions and values of the multipoles, one per line.
               Each line has the following format:

               x y z q, or

               x y z q µx µy µz.

               Here x, y, z are the coordinates in Å, q is the charge
               (in atomic units of charge) and µx, µy, µz are the
               (optional) dipole moment components (in atomic units,
               i.e. e*Bohr).

               Periodic systems are not supported.

   "FractionalCoords"
      Type:
         Bool

      Default value:
         No

      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 the geometry from a file (instead of from Atoms and
         Lattice 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.

   "Modify"
      Type:
         Block

      Description:
         Modifications to make to the chemical system after
         construction. This block is read like a script and the
         modifications applied top to bottom.

      "EnableAtomAttributes"
         Type:
            Multiple Choice

         Options:
            [gui, adf, band, forcefield, dftb, reaxff, qe]

         Recurring:
            True

         Description:
            Enables an atomic attribute group. This is only necessary
            if you want a group enabled, but no atom in the input is
            using any attribute from that group.

      "GuessBonds"
         Type:
            Bool

         Recurring:
            True

         Description:
            Guesses bonds based on the atomic elements and the
            geometry. Keeps existing bonds.

      "LatticeStrain"
         Type:
            Float List

         Recurring:
            True

         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.

      "MapAtomsToUnitCell"
         Type:
            Float List

         Recurring:
            True

         Description:
            For periodic systems the atoms will be moved to the
            central unit cell where all their fractional coordinates
            are in the range [start_range,start_range+1). No mapping
            will take place along non-periodic directions. If just a
            single number is given, it corresponds to start_range. If
            multiple numbers are given, they should match the number
            of lattice vectors and will be used as start ranges along
            the individual lattice vectors. If no number is given at
            all, the mapping will be done to the [-0.5:0.5) cell.

      "PerturbCoordinates"
         Type:
            Float

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Perturb the atomic coordinates by adding random numbers
            between [-PerturbCoordinates,PerturbCoordinates] to each
            Cartesian component. This can be useful if you want to
            break the symmetry of your system (e.g. for a geometry
            optimization).

      "PerturbLattice"
         Type:
            Float

         Recurring:
            True

         Description:
            Perturb the lattice vectors by applying random strain with
            matrix elements between [-PerturbLattice,PerturbLattice].
            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

         Recurring:
            True

         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).

      "SuperCellTrafo"
         Type:
            Integer List

         Recurring:
            True

         Description:
            Create a supercell of the input system (only possible for
            periodic systems) \vec{a}_i' = \sum_j T_{ij} \vec{a}_j.
            The integer numbers represent the supercell transformation
            T_{ij}: 1 number for 1D PBC, 4 numbers for 2D PBC
            corresponding to a 2x2 matrix (order:
            (1,1),(1,2),(2,1),(2,2)) and 9 numbers for 3D PBC
            corresponding to a 3x3 matrix (order:
            (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)).

      "Symmetrize"
         Type:
            Bool

         Recurring:
            True

         Description:
            Symmetrizes a system, using either the
            "symmetrize_molecule" or "symmetrize_cell" method,
            depending on periodicity.

      "SymmetrizeMoleculeTo"
         Type:
            String

         Recurring:
            True

         Description:
            Symmetrizes a molecule to a particular symmetry given by a
            Schoenflies symbol. Symmetrizes the atomic coordinates to
            machine precision, but does NOT rototranslate the molecule
            in any way. If the symmetrization fails, an error will be
            raised.

      "Translate"
         Type:
            Float List

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Translate all atoms by a vector.

"Task"
   Type:
      Multiple Choice

   Default value:
      Generate

   Options:
      [Generate, Optimize, Filter, Score, Expand]

   Description:
      The task to be performed by the Conformers tool.

      'Generate': given a molecule, generate a set of conformers.
      Note: this task will automatically optimize, filter and score
      the conformers.

      'Optimize': given a previously generated set of conformers,
      optimize, filter and score the structures using the specified
      engine.

      'Filter': given one or more previously generated set of
      conformers, merge them into a single conformer set and filter
      out duplicate conformers. Note: this will not optimize or re-
      score the conformers.

      'Score' given one or more previously generated set of
      conformers, re-score them by computing the energy using the
      specified engine. Note: this will only do a single point
      calculation, and will not optimize the structures.

      In case of 'Optimize', 'Filter' and 'Score' you can specify the
      input conformer set(s) using the 'InputConformersSet' keyword.


fcf
---

See FCF manual page


oled-deposition
---------------

"Box"
   Type:
      Block

   Description:
      Specifications of the box into which the material is deposited.

   "Size"
      Type:
         Float List

      Default value:
         [60.0, 60.0, 120.0]

      Unit:
         Angstrom

      GUI name:
         Box size

      Description:
         Specify the desired size of the box. The final deposited box
         may have a different size. The x- and y-axis are
         perpendicular to the direction of deposition, so these may be
         regarded as the width of the growing layer. The z-axis is the
         direction along which the deposition happens, so this
         determines the thickness of the deposited layer. Note that
         the x- and y-axis will be ignored if a custom substrate is
         used: the are of the box is then determined by the lattice of
         the substrate. The z-axis can still be freely chosen, but
         should be large enough that there is enough space for the
         substrate itself and to deposit more molecules on top of it.

   "Substrate"
      Type:
         Multiple Choice

      Default value:
         Graphene

      Options:
         [Graphene, Custom]

      Description:
         The substrate on which to grow the layer.

   "SubstrateSystem"
      Type:
         String

      GUI name:
         Custom substrate

      Description:
         String ID of a named [System] to be used as a substrate.
         (This is only used when the Substrate key is set to Custom.)

"Deposition"
   Type:
      Block

   Description:
      Specifies the details of how molecules are deposited.

   "ConstrainHXBonds"
      Type:
         Bool

      Default value:
         Yes

      GUI name:
         Constrain H-* bonds

      Description:
         Constrain the bond length for all H-* bonds (i.e. any bond to
         a hydrogen atom). Doing this allows choosing a larger time
         step. If this option is disabled, the TimeStep needs to be
         reduced manually.

   "Frequency"
      Type:
         Integer

      Default value:
         10000

      Description:
         The frequency in MD steps at which new molecules will be
         added to the system.

   "NumMolecules"
      Type:
         Integer

      Description:
         The number of molecules that we will try to deposit. If not
         specified the number will be determined automatically such
         that the box becomes approximately full.

   "Temperature"
      Type:
         Float

      Default value:
         600.0

      Description:
         The temperature at which the deposition happens.

   "TimeStep"
      Type:
         Float

      Default value:
         1.0

      Unit:
         Femtoseconds

      Description:
         The time difference per step.

"LAMMPSOffload"
   Type:
      Block

   Description:
      Offload the calculation to LAMMPS via AMSPipe.

   "Enabled"
      Type:
         Bool

      Default value:
         No

      Description:
         Enable offloading the force field evaluation to LAMMPS
         instead of handling it internally in AMS.

   "UseGPU"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Use GPU

      Description:
         Accelerate LAMMPS calculations using a GPU. Requires a LAMMPS
         library built with the GPU package.

   "UseGPUForKSpace"
      Type:
         Bool

      Default value:
         Yes

      Description:
         When UseGPU is enabled, also use the GPU to accelerate
         reciprocal space electrostatic interactions. Disabling this
         can improve performance on less powerful GPUs.

   "UseGPUForNeighbor"
      Type:
         Bool

      Default value:
         Yes

      Description:
         When UseGPU is enabled, also use the GPU to accelerate
         neighbor searches. Disabling this can improve performance on
         less powerful GPUs.

   "UseOpenMP"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Use OpenMP

      Description:
         Parallelize LAMMPS calculations using OpenMP threading.
         Requires a LAMMPS library built with the OMP package.

"LoadSystem"
   Type:
      Block

   Recurring:
      True

   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. It may
         also be the results directory containing it.

   "Section"
      Type:
         String

      Default value:
         Molecule

      Description:
         The section on the KF file from which to load the system.

"Molecule"
   Type:
      Block

   Recurring:
      True

   GUI name:
      Molecules

   Description:
      Specification of the molecule to be deposited.

   "MoleFraction"
      Type:
         Float

      Default value:
         1.0

      GUI name:
         Molar fraction

      Description:
         The relative occurrence of the molecule with regard to other
         deposited species. Only relevant for mixed molecule
         depositions.

   "SystemName"
      Type:
         String

      GUI name:
         Molecule

      Description:
         String ID of a named [System] to be inserted. The lattice
         specified with this System, if any, is ignored and the main
         system's lattice is used instead.

"RestartWorkdir"
   Type:
      String

   Description:
      Uses the data from the working directory of a previously run
      deposition workflow for restarting. Under the hood this uses the
      normal rerun-prevention available in PLAMS: it may reuse results
      from old jobs instead of running them again.

"System"
   Type:
      Block

   Recurring:
      True

   Description:
      Specification of the chemical system. For some applications more
      than one system may be present in the input. In this case, all
      systems except one must have a non-empty string ID specified
      after the System keyword. The system without an ID is considered
      the main one.

   "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. Each line should contain two atom
         indices, followed by the bond order (1, 1.5, 2, 3 for single,
         aromatic, double and triple bonds) and (optionally) the cell
         shifts for periodic systems. May be used by MM engines and
         for defining constraints. If the system is periodic and none
         of the bonds have the cell shift defined then AMS will
         attempt to determine them following the minimum image
         convention.

   "Charge"
      Type:
         Float

      Default value:
         0.0

      GUI name:
         Total charge

      Description:
         The system's total charge in atomic units.

   "ElectrostaticEmbedding"
      Type:
         Block

      Description:
         Container for electrostatic embedding options, which can be
         combined.

      "ElectricField"
         Type:
            Float List

         Unit:
            V/Angstrom

         Description:
            External homogeneous electric field with three Cartesian
            components: ex, ey, ez, the default unit being V/Å.

            In atomic units: Hartree/(e bohr) = 51.422 V/Angstrom; the
            relation to SI units is: 1 Hartree/(e bohr) = 5.14 ... e11
            V/m.

            Supported by the engines adf, band, dftb and mopac.

            For periodic systems the field may only have nonzero
            components orthogonal to the direction(s) of periodicity
            (i.e. for 1D periodic system the x-component of the
            electric field should be zero, while for 2D periodic
            systems both the x and y components should be zero. This
            options cannot be used for 3D periodic systems.

      "MultipolePotential"
         Type:
            Block

         Description:
            External point charges (and dipoles).

         "ChargeModel"
            Type:
               Multiple Choice

            Default value:
               Point

            Options:
               [Point, Gaussian]

            Description:
               A multipole may be represented by a point (with a
               singular potential at its location) or by a spherical
               Gaussian distribution.

         "ChargeWidth"
            Type:
               Float

            Default value:
               -1.0

            Description:
               The width parameter in a.u. in case a Gaussian charge
               model is chosen. A negative value means that the width
               will be chosen automatically.

         "Coordinates"
            Type:
               Non-standard block

            Description:
               Positions and values of the multipoles, one per line.
               Each line has the following format:

               x y z q, or

               x y z q µx µy µz.

               Here x, y, z are the coordinates in Å, q is the charge
               (in atomic units of charge) and µx, µy, µz are the
               (optional) dipole moment components (in atomic units,
               i.e. e*Bohr).

               Periodic systems are not supported.

   "FractionalCoords"
      Type:
         Bool

      Default value:
         No

      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 the geometry from a file (instead of from Atoms and
         Lattice 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.

   "Modify"
      Type:
         Block

      Description:
         Modifications to make to the chemical system after
         construction. This block is read like a script and the
         modifications applied top to bottom.

      "EnableAtomAttributes"
         Type:
            Multiple Choice

         Options:
            [gui, adf, band, forcefield, dftb, reaxff, qe]

         Recurring:
            True

         Description:
            Enables an atomic attribute group. This is only necessary
            if you want a group enabled, but no atom in the input is
            using any attribute from that group.

      "GuessBonds"
         Type:
            Bool

         Recurring:
            True

         Description:
            Guesses bonds based on the atomic elements and the
            geometry. Keeps existing bonds.

      "LatticeStrain"
         Type:
            Float List

         Recurring:
            True

         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.

      "MapAtomsToUnitCell"
         Type:
            Float List

         Recurring:
            True

         Description:
            For periodic systems the atoms will be moved to the
            central unit cell where all their fractional coordinates
            are in the range [start_range,start_range+1). No mapping
            will take place along non-periodic directions. If just a
            single number is given, it corresponds to start_range. If
            multiple numbers are given, they should match the number
            of lattice vectors and will be used as start ranges along
            the individual lattice vectors. If no number is given at
            all, the mapping will be done to the [-0.5:0.5) cell.

      "PerturbCoordinates"
         Type:
            Float

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Perturb the atomic coordinates by adding random numbers
            between [-PerturbCoordinates,PerturbCoordinates] to each
            Cartesian component. This can be useful if you want to
            break the symmetry of your system (e.g. for a geometry
            optimization).

      "PerturbLattice"
         Type:
            Float

         Recurring:
            True

         Description:
            Perturb the lattice vectors by applying random strain with
            matrix elements between [-PerturbLattice,PerturbLattice].
            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

         Recurring:
            True

         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).

      "SuperCellTrafo"
         Type:
            Integer List

         Recurring:
            True

         Description:
            Create a supercell of the input system (only possible for
            periodic systems) \vec{a}_i' = \sum_j T_{ij} \vec{a}_j.
            The integer numbers represent the supercell transformation
            T_{ij}: 1 number for 1D PBC, 4 numbers for 2D PBC
            corresponding to a 2x2 matrix (order:
            (1,1),(1,2),(2,1),(2,2)) and 9 numbers for 3D PBC
            corresponding to a 3x3 matrix (order:
            (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)).

      "Symmetrize"
         Type:
            Bool

         Recurring:
            True

         Description:
            Symmetrizes a system, using either the
            "symmetrize_molecule" or "symmetrize_cell" method,
            depending on periodicity.

      "SymmetrizeMoleculeTo"
         Type:
            String

         Recurring:
            True

         Description:
            Symmetrizes a molecule to a particular symmetry given by a
            Schoenflies symbol. Symmetrizes the atomic coordinates to
            machine precision, but does NOT rototranslate the molecule
            in any way. If the symmetrization fails, an error will be
            raised.

      "Translate"
         Type:
            Float List

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Translate all atoms by a vector.


oled-properties
---------------

"CoresPerJob"
   Type:
      Integer

   Default value:
      8

   Description:
      The number of CPU cores used for each job in the workflow.
      Combined with the total number of cores used (set by the "NSCM"
      environment variable or the "-n" command line argument), this
      indirectly determines the number of simultaneously running jobs.
      The default value should usually be a good choice. When changing
      this value, make sure you are using all allocated cores by
      setting a value that divides the total number of cores, as well
      as the number of cores on each node.

"Embedding"
   Type:
      Block

   Description:
      Configures details of how the environment is taken into account.

   "Charges"
      Type:
         Multiple Choice

      Default value:
         DFT

      Options:
         [DFTB, DFT]

      Description:
         Which atomic charges to use for the DRF embedding.

         * DFTB: Use the self-consistent Mulliken charges from a quick
           DFTB calculation with the GFN1-xTB model.

         * DFT: Use the MDC-D charges from a relatively quick DFT
           calculation using LDA and a DZP basis set.

   "Cutoff"
      Type:
         Float

      Default value:
         15.0

      Unit:
         Angstrom

      Description:
         The cutoff distance determining which molecules will be
         considered the environment of the central molecule. The
         maximum possible cutoff distance is half the length of the
         smallest lattice vector. The distance can be measured using
         different metrics, see the "Metric" keyword.

   "Metric"
      Type:
         Multiple Choice

      Default value:
         Atoms

      Options:
         [CoM, Atoms, Atoms_noH]

      Description:
         The metric used to calculate the distance between two
         molecules.

         * CoM: use the distance between the centers of mass of the
           two molecules.

         * Atoms: Use the distance between the two closest atoms of
           two molecules.

         * Atoms_noH: Use the distance between the closest non-
           hydrogen atoms of the two molecules.

   "Type"
      Type:
         Multiple Choice

      Default value:
         DRF

      Options:
         [None, DRF]

      Description:
         The type of embedding used to simulate the molecular
         environment.

"GW"
   Type:
      Block

   Description:
      Perform a GW calculation. G0W0 is the default for
      GW%SelfConsistency.

   "AdaptiveMixing"
      Type:
         Float List

      Description:
         Requests to use adaptive mixing instead of DIIS and sets the
         staring mixing parameter for mixing of Green's function in
         case of self-consistency.

         Adapative mixing is recommended in case a qsGW calculation
         does not converge with DIIS.

         It is ignored in non-selfconsistent calculation and
         overwritten by DIIS when DIIS is also present.

   "AnalyticalIntegration"
      Type:
         Block

      Description:
         Use analytical integration to calculate the self-energy. Very
         slow, unless the system is very small but useful to check the
         accuracy of the frequency integration

      "Enabled"
         Type:
            Bool

         Default value:
            No

         GUI name:
            analytical integration

         Description:
            Enable the calculation of the GW quasi-particle energies
            via analytical integration.

      "SpectralFunctionResolution"
         Type:
            Integer

         Default value:
            800

         Description:
            Number of points at which spectral function is evaluated.

      "TDA"
         Type:
            Bool

         Default value:
            No

         Description:
            Solve the linear response equations in the Tamm-Dancoff
            approximation.

      "eta"
         Type:
            Float

         Default value:
            0.001

         Description:
            Artificial (positive) broadening parameter for evaluation
            of self-energy in analytical integration.

            Ideally should be as small as possible but this might lead
            to convergence issues in partially self-consistent
            approaches.

            In this case, a value of up to 0.1 is possible.

   "Converge"
      Type:
         Block

      Description:
         Sets convergence criteria for the GW calculation in self-
         consistent case

      "Density"
         Type:
            Float List

         Default value:
            [1e-08, 1e-05]

         Description:
            First Criterion for self-consistency procedure to
            terminate.

            Criterion is the trace of the density matrix. Ignored in
            non-selfconsistent Calculation and in eigenvalue self-
            consistent GW

            It is possible to run a qsGW calculation with an inner SCF
            loop which updates the static part of the elf-energy only.
            This can be useful to accelerate the convergence in case
            linear mixing is used. It is not recommended to use linear
            mixing, so it is also not recommended to use that inner
            loop as well. The second number in this list specifies the
            convergence criterion for the inner SCF loop.

      "HOMO"
         Type:
            Float

         Default value:
            0.003

         Unit:
            eV

         GUI name:
            HOMO energy convergence

         Description:
            Criterion for self-consistency procedure to terminate.

            The self-consistent GW calculation terminates, when the
            difference between the HOMO QP energies between 2
            consecutive iterations is below this number.

            The LUMO energy converged faster than the HOMO energy so
            when the HOMO energy is converged according to this
            criterion, the LUMO energy will be converged as well.

            In non-selfconsistent Calculation, this criterion is
            ignored.

   "DIIS"
      Type:
         Integer

      Default value:
         10

      Description:
         Requests to use DIIS. This is the Default. Number of
         expansion coefficients can be requested as well. Ignored in
         non-selfconsistent calculation

   "Enabled"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Calculate GW quasi-particle energies

      Description:
         Enable the calculation of the GW quasi-particle energies.

   "LinearMixing"
      Type:
         Float List

      Description:
         Requests to use linear mixing instead of DIIS and sets the
         mixing parameter for linear mixing of Green's function in
         case of self-consistency.

         It is ignored in non-selfconsistent calculation and
         overwritten by DIIS when DIIS is also present.

   "LinearizeQPequations"
      Type:
         Bool

      Default value:
         No

      Description:
         Instead of solving the non-linear QP equations in a G0W0 (or
         evGW calculation) by bisection exacly, linearize them by
         first-order Taylor expansion.

         This is not recommended since it does not save computational
         time when used together with analytical continuation (as
         implemented in AMS). It might however be useful for
         benchmarking or for validating results.

         If the results os the linearization differ by a lot (for
         instance, more than 0.1 eV in frontier QP energies) from the
         non-linearized results, this might indicate that the GW
         calculation is not reliable.

   "Polarizability"
      Type:
         Multiple Choice

      Default value:
         RPA

      Options:
         [RPA, BSE, G4W1, G4V1, TDHF]

      Description:
         Sets the expression for the Polarizability used in the GW
         calculation.

         RPA is the Default and amounts to a standard GW calculation.

         BSE denotes screening in the Bethe-Salpeter-equation
         formalism.

   "PrintAllSolutions"
      Type:
         Bool

      Default value:
         No

      Description:
         Print out all solutions for all requested states. Detects
         multiple solutions of the QP equations.

   "PrintSpectralFunction"
      Type:
         Bool

      Default value:
         No

      Description:
         Plot the self-energy as a function of frequency.
         Automatically done in case of analytical continuation.
         However, this is expensive in the analytical integration
         formalism.

   "QPHamiltonian"
      Type:
         Multiple Choice

      Default value:
         KSF2

      Options:
         [KSF1, KSF2, SRG, LQSGW]

      Description:
         The quasi-particle Hamiltonian can be constructed in
         different ways.

         KSF1 refers to the original construction by Kotani, Van
         Schilfgaarde anf Faleev (KSF) which is also implemented in
         TURBOMOLE.

         KSF2 refers to an alternative construction by KSF.

         KSF1 is not recommended since it is numerically less stable
         than KSF2 in case analytical continuation is used (the
         default).

         In case the analytical integration algorithm is used, only
         KSF1 is implemented. Therefore, make sure that KSF1 is
         specified. The results are typically very similar.

         The QP energies at which the matrix elements are evaluated
         can be tweaked further, see the two subsequent keys: However,
         KSF2 is recommended since it typically leads to QP energies
         with the best agreement with experiment.

         Ignored when not a quasi-particle self-consistent GW
         calculation is performed

   "ScissorShift"
      Type:
         Bool

      Default value:
         No

      Description:
         Only calculate the HOMO and LUMO QP energies and shift the
         remaining QP energies by the same amount.

         This is a rather crude approximation and not recommended.

         It might again be useful for benchmarking purposes.

   "SelfConsistency"
      Type:
         Multiple Choice

      Default value:
         G0W0

      Options:
         [G0W0, EVGW0, EVGW, QSGW0, QSGW]

      Description:
         Sets the level of self-consistency in a GW calculation.

         G0W0 calculates a one-shot, perturbative correction to the KS
         eigenvalues.

         In evGW and evGW0, the quasi-particle energies are updated
         until self-consistency is reached.

         evGW0 requests that the Green's function is evaluated self-
         consistently but not the screened interaction.

         In qsGW, the density is updated as well, however, the self-
         energy is mapped to a static effective potential and the
         Dyson equation is solved by diagonalization instead of
         inversion. The results of a qsGW are independent of the
         choice of the underlying exchange-correlation functional and
         are usually the most accurate ones.

         The same is done in qsGW0, but the screened interaction is
         not updated.

   "SelfEnergy"
      Type:
         Multiple Choice

      Default value:
         GW

      Options:
         [HF, GW, G3W2, SOSEX, GWGamma, G3W2dynamic, GWGammaInf,
         GWGammaInfDyn]

      Description:
         Controls the form of the self-energy.

         GW is the default and corresponds to the standard GW
         calculation.

         G3W2 is a GW calculation plus a perturbative second-order
         statically screened exchange correction (second order
         expansion in the self-energy). Note, that there the self-
         energy is always static.

   "nIterations"
      Type:
         Integer List

      Default value:
         [10]

      GUI name:
         Number of iterations

      Description:
         The maximum number of iterations within the (partially or
         fully) self-consistent GW calculation has to converge.

         Ignored when Formalism is set to G0W0

   "nLowest"
      Type:
         Integer

      Default value:
         1

      GUI name:
         N Lowest

      Description:
         Number of lowest occupied QP levels to be evaluated,
         overwrites nStates'

   "nStates"
      Type:
         Integer

      Default value:
         5

      GUI name:
         N states

      Description:
         Number of Quasiparticle States to be printed to output.

         The default is 5 states which in this case means that min(5,
         Number of particle states) occupied and min(5, Number of hole
         states) hole states are printed. The whole list of states can
         be printed by setting this parameter to -1'

"LoadSystem"
   Type:
      Block

   Recurring:
      True

   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. It may
         also be the results directory containing it.

   "Section"
      Type:
         String

      Default value:
         Molecule

      Description:
         The section on the KF file from which to load the system.

"LogProgressEvery"
   Type:
      Float

   Default value:
      600.0

   Unit:
      Seconds

   Description:
      How often to print progress information to the logfile.

"MBPT"
   Type:
      Block

   Description:
      Technical aspects of the MP2 algorithm.

   "Dependency"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If true, to improve numerical stability, almost linearly-
         dependent combination of basis functions are removed from the
         Green's function that are used in the MBPT equations.
         Disabling this key is strongly discouraged. Its value can
         however be changed. The key to adjust this value is
         RiHartreeFock%DependencyThreshold

   "ExcludeCore"
      Type:
         Bool

      Description:
         If active, excludes core states from the calculation of the
         optimal imaginary time and frequency grids.

         The core states are still included in all parts of the
         calculations.

         In case a frozen care calculation is performed, this key is
         ignored.

         For MP2 and double hybrid calculation, it defaults to false.
         For RPA and GW calculations, it defaults to true.

   "FitSetQuality"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, VeryBasic, Basic, Normal, Good, VeryGood]

      Description:
         Specifies the fit set to be used in the MBPT calculation.

         'Normal' quality is generally sufficient for basis sets up to
         and including TZ2P.

         For larger basis sets (or for benchmarking purposes) a
         'VeryGood' fit set is recommended. Note that the
         FitSetQuality heavily influences the computational cost of
         the calculation.

         If not specified or 'Auto', the RIHartreeFock%FitSetQuality
         is used.

   "Formalism"
      Type:
         Multiple Choice

      Default value:
         Auto

      Options:
         [Auto, RI, LT, All]

      Description:
         Specifies the formalism for the calculation of the MP2
         correlation energy.

         'LT' means Laplace Transformed MP2 (also referred to as AO-
         PARI-MP2),

         'RI' means that a conventional RI-MP2 is carried out.

         If 'Auto', LT will be used in case of DOD double hybrids and
         SOS MP2, and RI will be used in all other cases.

         'All' means that both RI and LT formalisms are used in the
         calculation.

         For a RPA or GW calculation, the formalism is always LT,
         irrespective of the formalism specified with this key.

   "FrequencyGridType"
      Type:
         Multiple Choice

      Default value:
         LeastSquare

      Options:
         [LeastSquare, GaussLegendre]

      Description:
         Use Gauss-legendre grid for imaginary frequency integration
         in RPA and GW calculations instead of the usually used Least-
         Square optimized ones. Has the advantage that it can be
         systematically converged and an arbitrary number of grid
         points can be used. Typically more grid points will be needed
         to get the same level of accuracy. However, the convergence
         of the results with the size of the grid can be more
         systematic. These grids can only be used when Formalism is
         set to RI.

   "IntegrationQuality"
      Type:
         Multiple Choice

      Options:
         [VeryBasic, Basic, Normal, Good, VeryGood]

      Description:
         Specifies the integration quality to be used in the MBPT
         calculation. If not specified, the
         RIHartreeFock%IntegrationQuality is used.

   "SigmaFunctionalParametrization"
      Type:
         Multiple Choice

      Default value:
         S1re

      Options:
         [W1, W2, S1, S2, S1re]

      Description:
         Only relevant if a sigma-functional calculation is performed.
         Possible choices for the parametrization of the sigma-
         functional. Not all options are supported for all
         functionals.

   "ThresholdQuality"
      Type:
         Multiple Choice

      Options:
         [VeryBasic, Basic, Normal, Good, VeryGood, Excellent]

      Description:
         Controls the distances between atomic centers for which the
         product of two basis functions is not fitted any more.
         Especially for spatially extended, large systems, 'VERYBASIC'
         and 'BASIC' can lead to large computational savings, but the
         fit is also more approximate. If not specified, the
         RIHartreeFock%ThresholdQuality is used.

   "UseScaledZORA"
      Type:
         Bool

      Default value:
         Yes

      Description:
         If true, use the scaled ZORA orbital energies instead of the
         ZORA orbital energies in the MBPT equations.

   "frozencore"
      Type:
         Bool

      Default value:
         No

      Description:
         Freeze core states in correlation part of MBPT calculation

   "nCore"
      Type:
         Integer

      Default value:
         0

      GUI name:
         Number of core levels

      Description:
         Number of core states which will be excluded from the
         correlated calculation.

         Will be ignored if frozencore is false.

         In case nothing is specified, the number of core levels will
         be determined automatically.

         Needs to be smaller than the number of occupied states.

   "nFreqIntegration"
      Type:
         Integer

      Default value:
         32

      GUI name:
         N freq points for G3W2 integration

      Description:
         Number of imaginary frequency points for G3W2 integration

   "nFrequency"
      Type:
         Integer

      Default value:
         12

      GUI name:
         N freq points

      Description:
         Number of imaginary frequency points. This key is only
         relevant for RPA and GW and will be ignored if used in an AO-
         PARI-MP2 calculation. 12 Points is the default for a RPA
         calculation. It is technically possible to use a different
         number of imaginary frequency points than for imaginary time.
         The maximum number of points which can be requested for
         imaginary frequency integration is 42. Important note: The
         computation time and memory requirements roughly scale
         linearly with the number of imaginary frequency points.
         However, memory can be an issue for RPA and GW when the
         number of imaginary frequency points is high. In case a job
         crashes, it is advised to increase the number of nodes since
         the necessary memory distributes over all nodes.

   "nLambda"
      Type:
         Integer

      Default value:
         1

      GUI name:
         Number of lambda points

      Description:
         Size of coupling constant integration grid for SOSEX variants
         in RPA. Default is 4 points

   "nTime"
      Type:
         Integer

      GUI name:
         Number of time points

      Description:
         Number of imaginary time points (only relevant in case the
         Laplace Transformed (LT) formalism is used).

         In the many-body-perturbation theory module in ADF, the
         polarizability (or Kohn-Sham density response function) is
         evaluated in imaginary time to exploit sparsity in the AO
         basis. For MP2, this is often referred to as a Laplace
         transform. For MP2, 9 points are the default. This is a safe
         choice, guaranteeing accuracies higher than 1 Kj/mol for most
         systems (For many simple organic systems, 6 points are
         sufficient for good accuracy).

         Only for systems with a very small HOMO-LUMO gap or low-lying
         core states (heavy elements starting from the 4th row of the
         periodic table) more points might be necessary.

         In principle, the same considerations apply for RPA and GW as
         well, however, the accuracy requirements are somewhat higher
         and 12 point are the default for RPA. In a GW calculation,
         the number of points is adjusted according to the numerical
         quality. Using less than 9 points is strongly discouraged
         except for the simplest molecules.

         In ADF2019, it can happen that the algorithm determining the
         imaginary time grid does not converge. In this case, the
         usual reason is that the number of points is too small and
         more points need to be specified. Starting from AMS2020, this
         does not happen any more. In case the imaginary time grid
         does not converge, the number of points is automatically
         adjusted until it does.

         The computation time of AO-PARI-MP2, RPA, and GW scales
         linearly with the number of imaginary time points.

   "useGreenXgrids"
      Type:
         Bool

      Default value:
         No

      Description:
         Use GreenX library to generate grid points. This is
         recommended for larger number of grid points (> 20). Up to 34
         points can be requested.

"NumAdditionalOrbitalEnergies"
   Type:
      Integer

   Default value:
      1

   Description:
      The number of additional orbital energies to write to the HDF5
      file. A value of N means to write everything up to HOMO-N and
      LUMO+N.

"NumExcitations"
   Type:
      Integer

   Default value:
      1

   Description:
      The number of exited states to calculate. By default the S_1 and
      T_1 states will be calculated. The calculation of excited states
      is currently only supported for systems with a closed-shell
      ground state.

"NumSelectedMoleculesPerSpecies"
   Type:
      Integer

   Description:
      Number of molecules per species to calculate properties for.
      Around 50 molecules per species should be enough to estimate
      distribution means and standard deviations as input for the
      Bumblebee KMC code. Mutually exclusive with the
      "SelectedMolecules" keyword. If neither this key nor
      "SelectedMolecules" is present, all molecules will be selected.

"OccupationSmearing"
   Type:
      Multiple Choice

   Default value:
      Ions

   Options:
      [None, Ions, All]

   Description:
      Determines for which systems the electron smearing feature in
      ADF will be used. If enabled, the molecular orbital occupations
      will be smeared out with a 300K Fermi-Dirac distribution. This
      makes SCF convergence easier, as the occupation of energetically
      close orbitals does not jump when their energetic order flips.
      See the ADF manual for details. It is recommended to keep this
      option enabled for the ionic systems, which are more likely to
      suffer from difficult SCF convergence.

"Relax"
   Type:
      Multiple Choice

   Default value:
      All

   Options:
      [None, Neutral, All]

   Description:
      Which geometries to relax prior to taking the energy differences
      for the calculation of ionization potential and electron
      affinity. The relaxation is done at the DFTB level using the
      GFN1-xTB model Hamiltonian with electrostatic embedding in a UFF
      environment.

      * None: Use the geometries directly from the input.

      * Neutral: Relax the uncharged molecule and use its optimized
        geometry for the neutral as well as the ionic systems. This
        gives (approximately) the vertical ionization potential and
        electron affinity.

      * All: Individually relax the neutral systems and the ions
        before calculating the total energies. This gives
        (approximately) the adiabatic ionization potential and
        electron affinity.

"Restart"
   Type:
      String

   Description:
      The HDF5 file from a previous calculation on the same
      morphology. Data already calculated on the restart file will
      just be copied over and not be recalculated.

"SelectedMolecules"
   Type:
      Integer List

   Description:
      Indices of the molecules to calculate properties for. Note that
      indexing starts at 0. Mutually exclusive with the
      "NumSelectedMoleculesPerSpecies" keyword. If neither this key
      nor "NumSelectedMoleculesPerSpecies" is present, all molecules
      will be selected.

"StoreResultFiles"
   Type:
      Multiple Choice

   Default value:
      Failed

   Options:
      [None, Failed, All]

   Description:
      Whether to keep the full result files from all the individual
      jobs. By default the result files from all jobs for a particular
      molecule will be deleted after all relevant results have been
      extracted and stored on the HDF5 file. Note that keeping the
      full results for all molecules can easily require hundreds of
      gigabytes of storage space.

"System"
   Type:
      Block

   Recurring:
      True

   Description:
      Specification of the chemical system. For some applications more
      than one system may be present in the input. In this case, all
      systems except one must have a non-empty string ID specified
      after the System keyword. The system without an ID is considered
      the main one.

   "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. Each line should contain two atom
         indices, followed by the bond order (1, 1.5, 2, 3 for single,
         aromatic, double and triple bonds) and (optionally) the cell
         shifts for periodic systems. May be used by MM engines and
         for defining constraints. If the system is periodic and none
         of the bonds have the cell shift defined then AMS will
         attempt to determine them following the minimum image
         convention.

   "Charge"
      Type:
         Float

      Default value:
         0.0

      GUI name:
         Total charge

      Description:
         The system's total charge in atomic units.

   "ElectrostaticEmbedding"
      Type:
         Block

      Description:
         Container for electrostatic embedding options, which can be
         combined.

      "ElectricField"
         Type:
            Float List

         Unit:
            V/Angstrom

         Description:
            External homogeneous electric field with three Cartesian
            components: ex, ey, ez, the default unit being V/Å.

            In atomic units: Hartree/(e bohr) = 51.422 V/Angstrom; the
            relation to SI units is: 1 Hartree/(e bohr) = 5.14 ... e11
            V/m.

            Supported by the engines adf, band, dftb and mopac.

            For periodic systems the field may only have nonzero
            components orthogonal to the direction(s) of periodicity
            (i.e. for 1D periodic system the x-component of the
            electric field should be zero, while for 2D periodic
            systems both the x and y components should be zero. This
            options cannot be used for 3D periodic systems.

      "MultipolePotential"
         Type:
            Block

         Description:
            External point charges (and dipoles).

         "ChargeModel"
            Type:
               Multiple Choice

            Default value:
               Point

            Options:
               [Point, Gaussian]

            Description:
               A multipole may be represented by a point (with a
               singular potential at its location) or by a spherical
               Gaussian distribution.

         "ChargeWidth"
            Type:
               Float

            Default value:
               -1.0

            Description:
               The width parameter in a.u. in case a Gaussian charge
               model is chosen. A negative value means that the width
               will be chosen automatically.

         "Coordinates"
            Type:
               Non-standard block

            Description:
               Positions and values of the multipoles, one per line.
               Each line has the following format:

               x y z q, or

               x y z q µx µy µz.

               Here x, y, z are the coordinates in Å, q is the charge
               (in atomic units of charge) and µx, µy, µz are the
               (optional) dipole moment components (in atomic units,
               i.e. e*Bohr).

               Periodic systems are not supported.

   "FractionalCoords"
      Type:
         Bool

      Default value:
         No

      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 the geometry from a file (instead of from Atoms and
         Lattice 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.

   "Modify"
      Type:
         Block

      Description:
         Modifications to make to the chemical system after
         construction. This block is read like a script and the
         modifications applied top to bottom.

      "EnableAtomAttributes"
         Type:
            Multiple Choice

         Options:
            [gui, adf, band, forcefield, dftb, reaxff, qe]

         Recurring:
            True

         Description:
            Enables an atomic attribute group. This is only necessary
            if you want a group enabled, but no atom in the input is
            using any attribute from that group.

      "GuessBonds"
         Type:
            Bool

         Recurring:
            True

         Description:
            Guesses bonds based on the atomic elements and the
            geometry. Keeps existing bonds.

      "LatticeStrain"
         Type:
            Float List

         Recurring:
            True

         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.

      "MapAtomsToUnitCell"
         Type:
            Float List

         Recurring:
            True

         Description:
            For periodic systems the atoms will be moved to the
            central unit cell where all their fractional coordinates
            are in the range [start_range,start_range+1). No mapping
            will take place along non-periodic directions. If just a
            single number is given, it corresponds to start_range. If
            multiple numbers are given, they should match the number
            of lattice vectors and will be used as start ranges along
            the individual lattice vectors. If no number is given at
            all, the mapping will be done to the [-0.5:0.5) cell.

      "PerturbCoordinates"
         Type:
            Float

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Perturb the atomic coordinates by adding random numbers
            between [-PerturbCoordinates,PerturbCoordinates] to each
            Cartesian component. This can be useful if you want to
            break the symmetry of your system (e.g. for a geometry
            optimization).

      "PerturbLattice"
         Type:
            Float

         Recurring:
            True

         Description:
            Perturb the lattice vectors by applying random strain with
            matrix elements between [-PerturbLattice,PerturbLattice].
            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

         Recurring:
            True

         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).

      "SuperCellTrafo"
         Type:
            Integer List

         Recurring:
            True

         Description:
            Create a supercell of the input system (only possible for
            periodic systems) \vec{a}_i' = \sum_j T_{ij} \vec{a}_j.
            The integer numbers represent the supercell transformation
            T_{ij}: 1 number for 1D PBC, 4 numbers for 2D PBC
            corresponding to a 2x2 matrix (order:
            (1,1),(1,2),(2,1),(2,2)) and 9 numbers for 3D PBC
            corresponding to a 3x3 matrix (order:
            (1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)).

      "Symmetrize"
         Type:
            Bool

         Recurring:
            True

         Description:
            Symmetrizes a system, using either the
            "symmetrize_molecule" or "symmetrize_cell" method,
            depending on periodicity.

      "SymmetrizeMoleculeTo"
         Type:
            String

         Recurring:
            True

         Description:
            Symmetrizes a molecule to a particular symmetry given by a
            Schoenflies symbol. Symmetrizes the atomic coordinates to
            machine precision, but does NOT rototranslate the molecule
            in any way. If the symmetrization fails, an error will be
            raised.

      "Translate"
         Type:
            Float List

         Unit:
            angstrom

         Recurring:
            True

         Description:
            Translate all atoms by a vector.

"TransferIntegrals"
   Type:
      Block

   Description:
      Configures the details of the calculation of electron and hole
      transfer integrals.

   "Exclude"
      Type:
         Block

      Description:
         Configures which dimers NOT to calculate transfer integrals
         for.

      "Cutoff"
         Type:
            Float

         Default value:
            4.0

         Unit:
            Angstrom

         GUI name:
            Exclude beyond

         Description:
            Exclude dimers for which the distance is larger than this
            threshold. Acts as a quick pre-screening to reduce the
            number of dimers to calculate transfer integrals for.

      "Metric"
         Type:
            Multiple Choice

         Default value:
            Atoms

         Options:
            [CoM, Atoms, Atoms_noH]

         Description:
            The metric used to calculate the distance between two
            molecules.

            * CoM: use the distance between the centers of mass of the
              two molecules.

            * Atoms: Use the distance between the two closest atoms of
              two molecules.

            * Atoms_noH: Use the distance between the closest non-
              hydrogen atoms of the two molecules.

   "Include"
      Type:
         Block

      Description:
         Configures which dimers transfer integrals are calculated
         for.

      "Cutoff"
         Type:
            Float

         Default value:
            4.0

         Unit:
            Angstrom

         GUI name:
            Include within

         Description:
            Transfer integrals will be calculated for all molecule
            pairs within a cutoff distance from each other. This
            distance can be measured using different metrics, see the
            corresponding "Metric" keyword.

      "Metric"
         Type:
            Multiple Choice

         Default value:
            Atoms

         Options:
            [CoM, Atoms, Atoms_noH]

         Description:
            The metric used to calculate the distance between two
            molecules.

            * CoM: use the distance between the centers of mass of the
              two molecules.

            * Atoms: Use the distance between the two closest atoms of
              two molecules.

            * Atoms_noH: Use the distance between the closest non-
              hydrogen atoms of the two molecules.

   "Type"
      Type:
         Multiple Choice

      Default value:
         Fast

      Options:
         [None, Fast, Full]

      Description:
         The method used for the calculation of the transfer
         integrals.
