Velocity Verlet with Boltzmann distribution

This integrator combines the velocity-Verlet algorithm and the Boltzmann velocity distribution. At a periodic interval, the velocities are assigned from a Boltzmann velocity distribution in the second integration half-step.

This integrator is especially useful for cooling or heating a system to a nominal temperature. After an assignment from the Boltzmann distribution, the centre of mass velocity is shifted to exactly zero, and the velocities are rescaled to exactly the nominal temperature.

class halmd.mdsim.integrators.verlet_nvt_boltzmann(args)

Construct integrator for given system of particles.

  • args (table) – keyword arguments
  • args.particle – instance of halmd.mdsim.particle
  • – instance of
  • args.timestep (number) – integration time step (defaults to halmd.mdsim.clock.timestep)
  • args.temperature (number) – temperature of Boltzmann distribution
  • args.rate (number) – nominal coupling rate

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.


Integration time step in MD units.


Temperature of Boltzmann distribution in MD units.


Coupling interval in steps.

The interval equals \left\lfloor\frac{1}{\nu \tau}\right\rceil, with nominal coupling rate \nu and time-step \tau.


Effective coupling rate per time in MD units.

The effective coupling rate equals \frac{1}{\Delta s\, \tau}, with coupling interval \Delta s and time-step \tau.


Set the temperature of the Boltzmann distribution to the given value.


Calculate first half-step.

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


Calculate second half-step, or assign velocities from Boltzmann distribution.

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


Disconnect integrator from core and profiler.