HyperdynamicsBondDistortion

class HyperdynamicsBondDistortion(first_atom_tag, second_atom_tag, bond_minimum=None, bond_maximum=None, fuzz_factor=None)

Class for calculating bond distortions used in a hyperdynamics simulation.

Parameters:
  • first_atom_tag (str) – Tag giving the first set of atoms that can possibly form a bond.

  • second_atom_tag (str) – Tag giving the second set of atoms that can possibly form a bond.

  • bond_minimum (PhysicalQuantity of type length) – The minimum length of the bond.

  • bond_maximum (PhysicalQuantity of type length) – The maximum length of the bond.

  • fuzz_factor (float) – The fuzz factor used in detecting bonds in the configuration.
    Default: 1.1

bondMaximum()
Returns:

The maximum bond length.

Return type:

PhysicalQuantity of type length

bondMinimum()
Returns:

The minimum bond length.

Return type:

PhysicalQuantity of type length

firstAtomTag()
Returns:

The first atom tag.

Return type:

str

fuzzFactor()
Returns:

The fuzz factor.

Return type:

float

numberOfVariables()
Returns:

The number of indexed geometric coordinates being accelerated

Return type:

int

secondAtomTag()
Returns:

The second atom tag.

Return type:

str

uniqueString()

Return a unique string representing the state of the object.

Usage Examples

General

Notes

The HyperdynamicsBondDistortion implements a distortion based on bonds between atoms. This distortion can be used in either a StaticHyperdynamics or CollectiveVariableHyperdynamics simulation.

The atoms whose bonds make up the distortion is given using the first_atom_tag and second_atom_tag arguments. These take the tags of two sets of atoms between which the relevant bonds are formed. These can be the same set of atoms or different sets. These sets should include all atoms of each type that can possibly have the types of bonds to be boosted. Whether or not a bias potential is applied between two atoms depends on whether or not a bond exists in the reference configuration. If the atoms are far enough apart that no bond exists between them, then they will not be included in the distortion bonds. By giving sets of atoms where bonds can possibly be formed it allows the bias to be reset after each reaction and for newly formed bonds to be included in the distortion.

The detection of the bonds is controlled with the fuzz_factor keyword argument. Atoms must be closer than the sum of the covalent radii times the fuzz factor to be considered bonded. The default value is 1.1, which is the general bond finding default.

The bond length at the equilibrium structure and transition state are also given with the bond_minimum and bond_maximum keyword arguments respectively. A bond minimum is always required. The bond maximum is optional, and can be given as None in cases where the reaction does not have a well defined transition state.

In the case where a transition state bond length is given, the distortion \(\chi\) can be given as:

\[\begin{split}\chi = \begin{cases} 0 & r \leq r_{min} \\ \frac{r - r_{min}}{r_{max}-r_{min}} & r_{min} < r < r_{max} \\ 1 & r \geq r_{max} \\ \end{cases}\end{split}\]

In cases where no maximum is given the distortion is given as:

\[\begin{split}\chi = \begin{cases} 0 & r \leq r_{min} \\ \frac{r - r_{min}}{r_{min}} & r > r_{min} \\ \end{cases}\end{split}\]

In the first case the distortion is limited to between 0 and 1. In the second case the distortion has no upper limit. In this case a distortion cutoff should be used in the hyperdynamics simulation to ensure that the resulting global distortion is between 0 and 1.