Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 4.1 KB

README.md

File metadata and controls

56 lines (42 loc) · 4.1 KB

Linux Build Status Windows Build status Anaconda Badge Downloads Badge Documentation Status

Various Python tools for OpenMM

Integrators

This repository contains a number of additional integrators for OpenMM in openmmtools.integrators, including

  • MTSIntegrator - a multiple timestep integrator
  • DummyIntegrator - a "dummy" integrator that does not update positions
  • GradientDescentMinimizationIntegrator - a simple gradient descent minimizer (without line search)
  • VelocityVerletIntegrator - a velocity Verlet integrator
  • AndersenVelocityVerletIntegrator - a velocity Verlet integrator with Andersen thermostat using per-particle collisions
  • MetropolisMonteCarloIntegrator - a Metropolis Monte Carlo integrator that uses Gaussian displacement trials
  • HMCIntegrator - a hybrid Monte Carlo (HMC) integrator
  • GHMCIntegrator - a generalized hybrid Monte Carlo (GHMC) integrator
  • VVVRIntegrator - a velocity Verlet with velocity randomization (VVVR) integrator

Test system suite

The openmmtools.testsystems module contains a large suite of test systems---including many with simple exactly-computable properties---that can be used to test molecular simulation algorithms

Markov chain Monte Carlo proposal schemes and move compositions

An implementation of an MCMCMove encodes how to propagate an OpenMM System to generate a new sample. Different MCMCMoves can be combined for more advanced schemes.

  • LangevinDynamicsMove: Langevin dynamics segment as a (pseudo) Monte Carlo move (WARNING: Does not preserve the true target distribution.).
  • HMCMove: Assigns velocities from the Maxwell-Boltzmann distribution and propagate through velocity Verlet steps.
  • GHMCMove: Generalized hybrid Monte Carlo Markov chain Monte Carlo.
  • MonteCarloBarostatMove: Attempts to update the box volume using Metropolis-Hastings Monte Carlo updates.
  • SequenceMove: Combine multiple MCMCMoves to apply in sequence at each iteration.
  • WeightedMove: At each iteration, select one MCMCMoves to apply from a set with given probability.

States

The module openmmtools.states contains classes to maintain a consistent state of the simulation.

  • ThermodynamicState: Represent and manipulate the thermodynamic state of OpenMM Systems and Contexts.
  • SamplerState: Represent and cache the state of the simulation that changes when the System is integrated.
  • CompoundThermodynamicState: Extend the ThermodynamicState to handle parameters other than temperature and pressure through the implementations of the IComposableState abstract class.

Cache

The module openmmtools.cache implements a shared LRU cache for Context objects that tries to minimize the number of Context in memory at the same time.

  • LRUCache: A simple LRU cache with a dictionary-like interface. It supports a maximum capacity and expiration.
  • ContextCache: A LRU cache for OpenMM Context objects.
  • global_context_cache: A shared ContextCache that minimizes the number of Context creations when employing MCMCMoves.

OpenMM testing scripts

scripts/ contains a script that may be useful in testing your OpenMM installation is installed:

  • test-openmm-platforms will test the various platforms available to OpenMM to ensure that all systems in openmmtools.testsystems give consistent potential energies. If differences in energies in excess of ENERGY_TOLERANCE (default: 0.06 kcal/mol) are detected, these systems will be serialized to XML for further debugging.

This is installed onto the command line when the repository is installed.