Velocity Verlet

This symplectic integrator implements the velocity-Verlet algorithm for Hamiltonian dynamics (NVE ensemble), see J. Chem. Phys. 76, 637 (1982).

The algorithm consists of a first half-step

\[\begin{split}\vec{v}\Bigl(t + \frac{\tau}{2}\Bigr) &= \vec{v}\Bigl(t\Bigr) + \frac{\tau}{2} \frac{\vec{F}\left(t\right)}{m} \\ \vec{r}\Bigl(t + \tau\Bigr) &= \vec{r}\Bigl(t\Bigr) + \tau \vec{v}\Bigl(t + \frac{\tau}{2}\Bigr)\end{split}\]

and a second half-step

\[\vec{v}\Bigl(t + \tau\Bigr) = \vec{v}\Bigl(t + \frac{\tau}{2}\Bigr) + \frac{\tau}{2} \frac{\vec{F}\left(t + \tau\right)}{m}\]
class halmd.mdsim.integrators.verlet(args)

Construct velocity-Verlet integrator for given system of particles.

Parameters:
set_timestep(timestep)

Set integration time step in MD units.

Parameters:

timestep (number) – integration timestep

This method forwards to halmd.mdsim.clock.set_timestep(), to ensure that all integrators use an identical time step.

timestep

Integration time step in MD units.

label

Label of integrator instance.

disconnect()

Disconnect integrator from core and profiler.

integrate()

Calculate first half-step (propagate velocities and positions).

By default this function is connected to halmd.mdsim.core.on_integrate().

prepend_integrate()

Update forces if necessary and lock data.

By default this function is connected to halmd.mdsim.core.on_prepend_integrate().

append_integrate()

Release force lock.

By default this function is connected to halmd.mdsim.core.on_append_integrate().

finalize()

Calculate second half-step (propagate velocities).

By default this function is connected to halmd.mdsim.core.on_finalize().