Library Layer¶
Core Objects¶
This class represents a molecular system. 

A Context stores the complete state of a simulation. 

A Platform defines an implementation of all the kernels needed to perform some calculation. 

A State object records a snapshot of the current state of a simulation at a point in time. 
Forces¶
The ATMForce class implements the Alchemical Transfer Method (ATM) for OpenMM. 

This class implements an implicit solvation force using the generalized Kirkwood/Grycuk model. 

This class implements the Amoeba multipole interaction. 

This class implements the Amoeba torsiontorsion interaction. 

This class models van der Waals forces in the AMOEBA force field. 

This class implements a nonbonded interaction between pairs of particles typically used along with AmoebaGeneralizedKirkwoodForce as part of an implicit solvent model. 

This class uses the Andersen method to maintain constant temperature. 

This class implements an interaction between pairs of dihedral angles. 

This class prevents the center of mass of a System from drifting. 

This class implements interactions between sets of three particles that depend on the angle between them. 

This class implements bonded interactions between pairs of particles. 

This class supports energy functions that depend on collective variables. 

This class is similar to CustomCompoundBondForce, but instead of applying forces between individual particles, it applies them between the centers of groups of particles. 

This class supports a wide variety of bonded interactions. 

This class implements an “external” force on particles. 

This class implements complex, multiple stage nonbonded interactions between particles. 

This class supports a wide variety of energy functions used to represent hydrogen bonding. 

This class supports a wide variety of nonbonded Nparticle interactions, where N is user specified. 

This class implements nonbonded interactions between particles. 

This class implements interactions between sets of four particles that depend on the torsion angle between them. 

This class implements forces that are specific to Drude oscillators. 

Force objects apply forces to the particles in a System, or alter their behavior in other ways. 

This class implements an implicit solvation force using the GBSAOBC model. 

This class implements the GayBerne anisotropic potential. 

This class implements an interaction between groups of three particles that varies harmonically with the angle between them. 

This class implements an interaction between pairs of particles that varies harmonically with the distance between them. 

This class implements all nonbonded interactions in the HIPPO force field: electrostatics, induction, charge transfer, dispersion, and repulsion. 

This class uses a Monte Carlo algorithm to adjust the size of the periodic box, simulating the effect of constant pressure. 

This class uses a Monte Carlo algorithm to adjust the size of the periodic box, simulating the effect of constant pressure. 

This class uses a Monte Carlo algorithm to adjust the size and shape of the periodic box, simulating the effect of constant pressure. 

This is a Monte Carlo barostat designed specifically for membrane simulations. 

This class implements nonbonded interactions between particles, including a Coulomb force to represent electrostatics and a LennardJones force to represent van der Waals interactions. 

This class implements an interaction between groups of four particles that varies periodically with the torsion angle between them. 

This class implements an interaction between groups of four particles that varies with the torsion angle between them according to the RyckaertBellemans potential. 

This is a force whose energy equals the root mean squared deviation (RMSD) between the current coordinates and a reference structure. 

This class is very similar to MonteCarloBarostat, but it is specifically designed for use with RPMDIntegrator. 
Integrators¶
AMDForceGroupIntegrator implements a single boost aMD integration algorithm. 

AMDIntegrator implements the aMD integration algorithm. 

This is an Integrator which simulates a System using Brownian dynamics. 

This class allows you to use multiple integration algorithms within a single simulation, switching back and forth between them. 

This is an Integrator that can be used to implemented arbitrary, user defined integration algorithms. 

A base class to encapsulate features common to Drude integrators. 

This Integrator simulates systems that include Drude particles. 

This Integrator simulates systems that include Drude particles. 

This is a leapfrog Verlet Integrator that simulates systems with Drude particles. 

DualAMDIntegrator implements a dual boost aMD integration algorithm. 

An Integrator defines a method for simulating a System by integrating the equations of motion. 

This is an Integrator which simulates a System using Langevin dynamics. 

This is an Integrator which simulates a System using Langevin dynamics, with the LFMiddle discretization (J. 

MTSIntegrator implements the rRESPA multiple time step integration algorithm. 

MTSLangevinIntegrator implements the BAOABRESPA multiple time step algorithm for constant temperature dynamics. 

This is an Integrator which simulates a System using one or more Nose Hoover chain thermostats, using the “middle” leapfrog propagation algorithm described in J. 

This is an Integrator which simulates a System using ring polymer molecular dynamics (RPMD). 

This is an error controlled, variable time step Integrator that simulates a System using Langevin dynamics. 

This is an error controlled, variable time step Integrator that simulates a System using the leapfrog Verlet algorithm. 

This is an Integrator which simulates a System using the leapfrog Verlet algorithm. 
Extras¶
This is a TabulatedFunction that computes a continuous one dimensional function. 

This is a TabulatedFunction that computes a continuous two dimensional function. 

This is a TabulatedFunction that computes a continuous three dimensional function. 

This is a TabulatedFunction that computes a discrete one dimensional function f(x). 

This is a TabulatedFunction that computes a discrete two dimensional function f(x,y). 

This is a TabulatedFunction that computes a discrete three dimensional function f(x,y,z). 

This is a VirtualSite that uses the locations of several other particles to compute a local coordinate system, then places the virtual site at a fixed location in that coordinate system. 

Given a Context, this class searches for a new set of particle positions that represent a local minimum of the potential energy. 

A MinimizationReporter can be passed to LocalEnergyMinimizer::minimize() to provide periodic information on the progress of minimization, and to give you the chance to stop minimization early. 

This class defines a chain of NoseHoover particles to be used as a heat bath to scale the velocities of a collection of particles subject to thermostating. 

This is the class used for all exceptions thrown by the C++ library. 

This is a VirtualSite that computes the particle location based on three other particles’ locations. 

A SerializationNode stores information about an object during serialization or deserialization. 

A SerializationProxy is an object that knows how to serialize and deserialize objects of a particular type. 

A TabulatedFunction uses a set of tabulated values to define a mathematical function. 

This is a VirtualSite that computes the particle location as a weighted average of three other particle’s locations. 

This is a VirtualSite that computes the particle location as a weighted average of two other particle’s locations. 

Vec3 is a 3element tuple that supports many math operations. 

A VirtualSite describes the rules for computing a particle’s position based on other particles. 

XmlSerializer is used for serializing objects as XML, and for reconstructing them again. 