Updated README.md with MCMC classes and global cache
@@ -22,6 +22,15 @@ This repository contains a number of additional integrators for OpenMM in `openm
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
+## Monte Carlo moves
+An implementation of an `MCMCMove` encodes how to propagate an OpenMM `System` to generate a new sample. Different `MCMCMove`s can be combined for more advanced schemes.
+- `LangevinDynamicsMove`: Langevin dynamics segment as a (pseudo) Monte Carlo move.
+- `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 Monte Carlo updates.
+- `SequenceMove`: Combine multiple `MCMCMove`s to apply in sequence at each iteration.
+- `WeightedMove`: At each iteration, select one `MCMCMove`s to apply from a set with given probability.
+
## States
The module `openmmtools.states` contains classes to maintain a consistent state of the simulation.
@@ -34,6 +43,7 @@ The module `openmmtools.states` contains classes to maintain a consistent state
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 `MCMCMove`s.
## OpenMM testing scripts
