Skip to content

Instantly share code, notes, and snippets.

@saifthe1
Created October 29, 2013 07:46
Show Gist options
  • Save saifthe1/7210519 to your computer and use it in GitHub Desktop.
Save saifthe1/7210519 to your computer and use it in GitHub Desktop.
namespace OpenMM {
/**
* This is an Integrator which simulates a System using the velocity Verlet algorithm.
*/
class OPENMM_EXPORT VelocityVerletIntegrator : public Integrator {
public:
/**
* Create a VelocityVerletIntegrator.
*
* @param stepSize the step size with which to integrator the system (in picoseconds)
*/
VelocityVerletIntegrator(double stepSize);
/**
* Advance a simulation through time by taking a series of time steps.
*
* @param steps the number of time steps to take
*/
void step(int steps);
protected:
/**
* This will be called by the Context when it is created. It informs the Integrator
* of what context it will be integrating, and gives it a chance to do any necessary initialization.
* It will also get called again if the application calls reinitialize() on the Context.
*/
void initialize(ContextImpl& context);
/**
* Get the names of all Kernels used by this Integrator.
*/
std::vector<std::string> getKernelNames();
private:
ContextImpl* context;
Context* owner;
Kernel kernel;
};
} // namespace OpenMM
#endif /*OPENMM_VELOCITYVERLETINTEGRATOR_H_*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment