Integrators

openmmtools.integrators provides a number of high quality integrators implemented using OpenMM’s CustomIntegrator facility.

The integrators provided in the openmmtools.integrators package subclass the OpenMM CustomIntegrator, providing a more full-featured Pythonic class wrapping the Swig-wrapped CustomIntegrator.

Warning

OpenMM’s CompoundIntegrator caches OpenMM Integrator objects, but can only return the SWIG-wrapped base integrator object if you call CompoundIntegrator.getIntegrator() or CompoundIntegrator.getCurrentIntegrator(). If you want to hold onto one of the Python subclasses we make available in openmmtools.integrators, you will need to cache the original Python integrator you create. You can still use either integrator.step() call, but you MUST MAKE SURE THAT INTEGRATOR IS SELECTED currently in CompoundIntegrator.setCurrentIntegrator(index) before calling integrator.step() or else the behavior is undefined.

Langevin integrators

The entire family of Langevin integrators described by Trotter splittings of the propagator is available. These integrators also support multiple-timestep force splittings and Metropolization. In addition, we provide special subclasses for several popular classes of Langevin integrators.

Note

We highly recommend the excellent geodesic BAOAB (g-BAOAB) integrator of Leimkuhler and Matthews for all equilibrium simulations where only equilibrium configurational properties are of interest. This integrator (g-BAOAB) has extraordinarily good properties for biomolecular simulation.

LangevinIntegrator
VVVRIntegrator
BAOABIntegrator
GeodesicBAOABIntegrator
GHMCIntegrator

Nonequilibrium integrators

These integrators are available for nonequilibrium switching simulations, and provide additional features for measuring protocol, shadow, and total work.

NonequilibriumLangevinIntegrator
AlchemicalNonequilibriumLangevinIntegrator
ExternalPerturbationLangevinIntegrator

Miscellaneous integrators

Other miscellaneous integrators are available.

MTSIntegrator
DummyIntegrator
GradientDescentMinimizationIntegrator
VelocityVerletIntegrator
AndersenVelocityVerletIntegrator
NoseHooverChainVelocityVerletIntegrator
MetropolisMonteCarloIntegrator
HMCIntegrator

Mix-ins

A number of useful mix-ins are provided to endow integrators with additional features.

PrettyPrintableIntegrator
ThermostatedIntegrator

Base classes

New integrators can inherit from these base classes to inherit extra features

ThermostatedIntegrator
NonequilibriumLangevinIntegrator