java.lang.Object
ffx.algorithms.dynamics.integrators.Integrator
ffx.algorithms.dynamics.integrators.Respa

public class Respa extends Integrator
Respa performs multiple time step molecular dynamics using the reversible reference system propagation algorithm (r-RESPA) via a Verlet core with the potential split into fast- and slow-evolving portions.

The inner RESPA loop is position Verlet.

D. D. Humphreys, R. A. Friesner and B. J. Berne, "A Multiple-Time-Step Molecular Dynamics Algorithm for Macromolecules", Journal of Physical Chemistry, 98, 6885-6892 (1994)

X. Qian and T. Schlick, "Efficient Multiple-Time-Step Integrators with Distance-Based Force Splitting for Particle-Mesh-Ewald Molecular Dynamics Simulations", Journal of Chemical Physics, 115, 4019-4029 (2001)

Since:
1.0
Author:
Gaurav Chattree
  • Constructor Details

    • Respa

      public Respa(SystemState state)
      Initialize Respa multiple time step molecular dynamics.
      Parameters:
      state - The molecular dynamics state to be operated on.
  • Method Details

    • getHalfStepEnergy

      public double getHalfStepEnergy()
      Get the potential energy of the fast degrees of freedom.
      Returns:
      The potential energy of the fast degrees of freedom.
    • postForce

      public void postForce(double[] gradient)
      Integrator post-force evaluation operation.

      The Respa full-step integration operation.

      Specified by:
      postForce in class Integrator
      Parameters:
      gradient - the gradient for the post-force operation.
    • preForce

      public void preForce(Potential potential)
      Integrator pre-force evaluation operation.

      Performs the inner RESPA loop via position Verlet.

      Specified by:
      preForce in class Integrator
      Parameters:
      potential - the Potential this integrator operates on.
    • setInnerTimeSteps

      public void setInnerTimeSteps(int n)
      Set inner Respa number of time steps.
      Parameters:
      n - Number of inner time steps (must be greater than or equal to 2).
    • setTimeStep

      public void setTimeStep(double dt)
      Set the time step.

      Set outer Respa time step.

      Specified by:
      setTimeStep in class Integrator
      Parameters:
      dt - the time step (psec).
    • toString

      public String toString()
      Overrides:
      toString in class Object