Conformers

Conformers is a flexible tool for conformer generation. It implements the RDKit [1], CREST [2] and Simulated Annealing conformer generation methods and can be combined with any AMS engine.

Tip

You can use Conformers from the Graphical User Interface or from python with PLAMS.

Overview

This is a simple example showing how to generate conformers of ethanol:

#!/bin/sh

$AMSBIN/conformers << EOF

   Task Generate

   System
      Atoms
         C -4.537101 -0.602542 -0.008859
         C -3.601843 -1.804345  0.037274
         O -2.267293 -1.387375 -0.058902
         H -4.301877  0.096761  0.821305
         H -5.588912 -0.942676  0.095614
         H -4.425039 -0.071643 -0.977931
         H -3.829607 -2.474689 -0.818032
         H -3.766077 -2.377916  0.977441
         H -2.012143 -1.043722  0.837186
      End
   End

   Engine ForceField
   EndEngine
EOF

The most important input options are:

  • Task: the task for the Conformers tool. Here we simply Generate a set of conformers starting from an initial structure. See the Tasks section for more information.

  • System: in the System block we specify the initial structure of the molecule for which you want to generate conformers, in this case an ethanol molecule.

  • Engine: during the conformers generation, atomistic calculations will be executed under the hood to compute energy and forces. With the engine block you can specify which atomistic engine to use and the options for the engine.

Tip

By default, the computationally fast (but not very accurate) ForceField engine is used to compute energy and forces. If you need more accurate geometries and energies for your conformers, you can specify a more accurate (but slow) engine in the generation step. Alternatively, you can use the Optimize, Filter and Score tasks to efficiently get accurate geometries and energies while keeping the computational cost to a minimum. See Workflow for an example.

When running the script above, a folder called conformers.results will be created and the generated conformers will be saved in there (in .xyz and .rkf formats). See the general Input, execution and output section for more information.

Main Input Options

Tasks

You can specify the task for the Conformers tool via the Task input option:

Task [Generate | Optimize | Filter | Score | Expand]

The main (and default) Task is Generate: given an initial structure, the Conformers tool will generate a set of conformers.

The other tasks, described below, can be used to refine or combine previously generated conformer sets. The Workflow example shows how the various tasks can be combined in a simple workflow to efficiently obtain accurate conformers.

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.

Input molecule(s)

For the Generate task you can use the System or LoadSystem blocks to specify the input molecule. See the System block documentation for a detailed description.

For the Optimize, Filter and Score tasks, you should instead provide the results of a previously run Conformers calculation as input via the InputConformersSet keyword. See also the Constraints, Restraints, Walls section.

InputConformersSet string
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) or a concatenated .xyz file. You can specify multiple input conformers sets by including the InputConformersSet keyword multiple times.

When loading conformers using the InputConformersSet key, you can optionally specify the InputMaxEnergy option:

InputMaxEnergy float
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.

A similar option is the InputMaxConfs key, which will use only the \(k\) lowest energy conformers for an integer input \(k\):

InputMaxConfs integer
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.

Engine

With the Engine block you can specify which atomistic engine to use and the options for the engine. See the AMS engine documentation for more info.

If no engine block is specified, the ForceField engine (with the UFF force field) will be used as default.

Generators

Three different methods of conformer generation are implemented: RDKit [1], CREST [2] and ANNEALING. The default generation method is RDKit.

You can select which method to use in the Generator block:

Generator
   Method [RDKit | CREST | ANNEALING]
End
Generator
Type:

Block

Description:

Options for the conformer generator.

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.

Input options for the various methods can be specified in their respective input blocks. See the section Other input options for the complete set of input options.

Conformers Equivalence

An important aspect of conformers generation is the reduction of a set of geometries into a set of unique conformers. As the Conformer tool generates new potential conformers, it needs to be able to determine whether a structure is a new conformer (in which case it is added to the list of unique conformers) or whether is simply a slightly different geometry of an already observed conformer (in which case, the structure is discarded).

The conformer tool therefore needs a procedure that, given two geometries, is able to discriminate between the following situations:

  • the two geometries correspond to the same conformer

  • the two geometries correspond to distinct conformers

In the Equivalence block various options related to this equivalence procedure can be specified.

Equivalence
   Method [AMS | TFD | RMSD | CREST]
End
Equivalence
Type:

Block

Description:

Options for the procedure determining whether two structures are equivalent or distinct conformers.

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.

Input options for the various methods can be specified in their respective input blocks. See the section Other input options for the complete set of input options.

Filtering

The Conformers tool can automatically filter out conformers based on some criteria, e.g. it will discard high energy conformers.

The filtering options can be specified in the Filter block:

Filter
   MaxEnergy float
   RemoveNonMinima Yes/No
End
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!

Constraints, Restraints, Walls

The Conformers tool can be used in combination with Constraints (constraints), Restraints (restraints), and EngineAddons (engine addons).

The constraints fix the specified degrees of freedom to certain values, while the restraints restricts the specified degrees of freedom to be near the specified values using an added potential energy function. The engine add-ons cover a wide range of functionality, but the most important one for conformers is the WallPotential, which adds a spherical repulsive potential around the origin, trapping the atoms inside.

It is discouraged to use the RDKit Generate method (the default) in combination with constraints and restraints. The RDKit Generate method consists of two steps:

  1. Call to RDKit ETKGD method for initial conformer generation

  2. Geometry optimization of all conformer candidates with an AMS engine

Step 1 does not accept constraints, restraints, or engine add-ons, and therefore too many undesirable conformers will be passed to the constrained optimizer.

It is possible to use constraints in the RDKit ETKDG procedure as well, but they are limited to fixed atoms, and have to be set manually in the Generator block.

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

The other Generate methods of the Conformers tool make use of both molecular dynamics simulations (Crest and Annealing) and geometry optimizations. Not all constraints are can be used in molecular dynamics simulations, so where possible constraints are automatically converted to the corresponding restraints.

Conformer Generation with Multiple Molecules

The wall potential described above can be used in combination with the Crest and Annealing methods to generate conformers for systems with multiple molecules. A simple example below demonstrates this for an acetic acid molecule in the presence of water. The radius of the spherical constraint is manually set to 4.5 Angstrom.

#!/bin/sh

"$AMSBIN/conformers" << eor
    Engine ForceField
    EndEngine
    Generator
        Method CREST
    End
    System
        Atoms
            C -5.168356138856709 -0.9040308913456915 -0.14509537743978
            C -3.674177007131515 -0.8549162177628133 -0.1466485108795087
            O -3.036130963738181 0.3677379219191289 -0.1592569297095029
            O -3.033827233992448 -1.897394223042741 -0.1762700959655665
            H -5.578445514437495 0.05058176564435996 0.2458678935590599
            H -5.524620190394747 -1.732922198697688 0.5010944819578638
            H -5.536566707641177 -1.061832129921519 -1.180309622581397
            H -2.058681010424327 0.197909193054116 -0.1773409518219506
            O -4.51655946130152 -4.444022963974381 0.9796661086035751
            H -4.406160106170592 -3.748388119201934 1.675984760241468
            H -5.428884582974359 -4.296939008632186 0.6238436183248668
        End
        BondOrders
          1 2 1.0
          1 5 1.0
          1 6 1.0
          1 7 1.0
          2 3 1.0
          2 4 2.0
          3 8 1.0
          9 10 1.0
          9 11 1.0
        End
    End
    EngineAddons
        WallPotential
            Enabled Yes
            Radius 4.5
        End
    End
eor

Examples

Workflow

During the conformers generation (i.e. the “generate” task), a large number of atomistic calculations will be executed under the hood. This can get computationally very expensive if an accurate engine (such as ADF) is used. This is why the default engine is the computationally fast (but not very accurate) ForceField engine.

By combining the Generate, Optimize and Score tasks you can build a simple workflow to get accurate geometries and energies while keeping the computational cost to a minimum.

A typical workflow might look like this:

  1. Generate a set of conformers using Task Generate with the fast but approximate ForceField engine

  2. Re-optimize the geometries generated in the previous step using Task Optimize with a more accurate engine (e.g. DFTB)

  3. Re-score the conformers using the using Task Score with an accurate engine (e.g. ADF)

#!/bin/sh

# Simple workflow:
# - generate an initial set of 1-bromo-3-chloropropane conformers with UFF (ForceField engine)
# - re-optimize the conformers with GFN1-xTB (DFTB engine)
# - re-score the GFN1-xTB-optimized conformers using DFT energies (ADF engine)

AMS_JOBNAME=generate_uff $AMSBIN/conformers << EOF

    Task Generate

    System
        Atoms
            Br     -4.16969843       2.48953245      -0.00000000
            C      -2.69926018       3.75062981      -0.00000000
            C      -1.36372383       3.00977020      -0.00000000
            C      -0.19648214       3.99512105       0.00000000
            Cl      1.35297276       3.11657146       0.00000000
            H      -2.78129583       4.39009878       0.90457474
            H      -2.78129583       4.39009878      -0.90457474
            H      -1.30112035       2.36381643      -0.90271681
            H      -1.30112035       2.36381643       0.90271681
            H      -0.24025734       4.63864134       0.90438917
            H      -0.24025734       4.63864134      -0.90438917
        End
    End

    Engine ForceField
        Type UFF
    EndEngine
EOF


AMS_JOBNAME=optimize_gfn1xtb $AMSBIN/conformers << EOF

    Task Optimize

    InputConformersSet generate_uff.results/conformers.rkf

    Engine DFTB
        Model GFN1-xTB
    EndEngine
EOF


AMS_JOBNAME=score_dft $AMSBIN/conformers << EOF

    Task Score

    InputConformersSet optimize_gfn1xtb.results/conformers.rkf

    # Here we use the default ADF settings. For real calculations, you 
    # should use a larger basis set (e.g. TZP) and a better XC functional

    Engine ADF
    EndEngine
EOF


echo "Final conformers:"
cat score_dft.results/conformers.xyz

References

Other input options

Here we document more advanced input options for the Conformer tool. See the section Main Input Options for the most important input option.

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.

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.

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 and engine-specific data to the respective .rkf files once every N steps.

WriteProperties
Type:

Bool

Default value:

No

Description:

Write the properties from the properties section to the ChecoPoint file once every N steps.

InitialVelocities
Type:

Block

Description:

Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.

File
Type:

String

Description:

AMS RKF file containing the initial velocities.

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.

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

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 the molecular geometry (and possibly other properties) to the .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.

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.

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.

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 and engine-specific data to the respective .rkf files once every N steps.

WriteProperties
Type:

Bool

Default value:

No

Description:

Write the properties from the properties section to the ChecoPoint file once every N steps.

InitialVelocities
Type:

Block

Description:

Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.

File
Type:

String

Description:

AMS RKF file containing the initial velocities.

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.

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

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 the molecular geometry (and possibly other properties) to the .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.

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.

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.

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 and engine-specific data to the respective .rkf files once every N steps.

WriteProperties
Type:

Bool

Default value:

No

Description:

Write the properties from the properties section to the ChecoPoint file once every N steps.

InitialVelocities
Type:

Block

Description:

Sets the frequency for printing to stdout and storing the molecular configuration on the .rkf file.

File
Type:

String

Description:

AMS RKF file containing the initial velocities.

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.

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

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 the molecular geometry (and possibly other properties) to the .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.

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.

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.

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.

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.

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.

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