StaticHyperdynamics

class StaticHyperdynamics(distortions, temperature=None, global_exponent=None, global_cut=None, potential_barrier=None, reaction_steps=None, optimize_new_state=None, measurement_frequency=None, tracked_atoms_tag=None, allow_no_variables=None)

Hook function implementing static hyperdynamics.

Parameters:
  • distortions (Sequence of HyperdynamicsBaseDistortion) – The geometric distortions used to create the collective variable.

  • temperature (PhysicalQuantity of type temperature) – The temperature of the simulation, used for calculating the hypertime.
    Default: 300 Kelvin

  • global_exponent (float) – The exponent used to create the global distortion.
    Default: 6

  • global_cut – The value of the global distortion at the transition state. This can be used to set the position of the transition state where individual distortions do not range from 0 to 1. One example of this is when using a bond distortion without a maximum bond length.
    Default: 1

  • potential_barrier (PhysicalQuantity of type energy) – The barrier height at the transition state.
    Default: 0.1 eV

  • reaction_steps (int) – The number of steps at the maximum collective variable before a reaction takes place.
    Default: 5000

  • optimize_new_state (bool) – Optimize the configuration before setting new distortions after a reaction is detected.
    Default: True

  • measurement_frequency (int) – The step frequency with which measurements are added to the trajectory.
    Default: 10

  • tracked_atoms_tag (str) – Tag giving the indices of atoms for which the position is measured during the simulation. None results in no atoms being tracked.
    Default: None

  • allow_no_variables (bool) – Continue in cases where no variables are found for acceleration. The simulation continues the number of reaction steps without bias before trying again to find variables to accelerate.
    Default: True

allowNoVariables()
Returns:

True if the simulation continues in cases where no variables are found for acceleration.

Return type:

bool

callInterval()
Returns:

The call interval of this hook function.

Return type:

int

distortions()
Returns:

The geometric distortions used to create the collective variable.

Return type:

Sequence of HyperdynamicsBaseDistortion

globalCut()
Returns:

The value of the global distortion at the transition state.

Return type:

float

globalExponent()
Returns:

The global exponent used in the collective variable.

Return type:

float

measurementFrequency()
Returns:

The step frequency with which measurements are saved to the trajectory.

Return type:

int

numberOfVariables()
Returns:

The total number of geometric coordinates being accelerated. If the geometric coordinates are not set with a configuration None is returned.

Return type:

int | None

optimizeNewState()
Returns:

True if the configuration is optimized before setting new distortions.

Return type:

bool

potentialBarrier()
Returns:

The barrier height at the transition state.

Return type:

PhysicalQuantity of type energy

reactionSteps()
Returns:

The number of steps at the maximum collective variable before a reaction takes place.

Return type:

int

temperature()
Returns:

The simulation temperature.

Return type:

PhysicalQuantity of type temperature

trackedAtomsTag()
Returns:

The tag for the atoms that are tracked during the simulation.

Return type:

str

uniqueString()

Return a unique string representing the state of the object.

Notes

Hyperdynamics is a method for sampling rare events using molecular dynamics. In hyperdynamics a bias potential is added to degrees of freedom separating different states. The bias potential aids in lowering the energy barrier between these states, allowing the system to sample different states more freely. In this way the biased degrees of freedom move at elevated temperature, while the rest of the system moves at the simulation temperature. The acceleration factor given to the system by the bias potential can be calculated as the ensemble average of the bias potential. When this boost factor is multiplied by the simulation time it gives the effective sampling time, known as the hypertime.

In using the hypertime to estimate reaction rates, it is important that the bias potential is not applied at the transition state. If bias is applied both at the reactant and transition state it obscures the relative free energy barrier between two states. This can lead to errors in estimations of the rate constant. This also applies to kinetic based processes such as diffusion.

StaticHyperdynamics is very similar to CollectiveVariableHyperdynamics[1]. Both methods construct a collective variable in the same way to which a bias potential is applied. In StaticHyperdynamics a simple linear bias potential is used rather than using Gaussians to build up an effective bias potential. This makes the simulation simpler at the cost of requiring some knowledge of the potential energy hypersurface around the transition state. In particular the heights of the likely transition state barrier is needed.

In StaticHyperdynamics the bias potential can be given as:

\[\Delta V(\eta) = \Delta V^{max}\left(1 - \eta\right)\]

Here \(\Delta V^{max}\) is the maximum height of the bias potential and \(\eta\) is the collective variable. This bias potential places the largest bias at the equilibrium structure and decreases the bias to zero at the transition state. The maximum height of the bias potential is given with the potential_barrier keyword argument.

All other arguments function in the same way as they do in CollectiveVariableHyperdynamics. The same measurements are also added to the trajectory during the simulation.