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