Velocity Verlet with Andersen thermostat

This module implements the Verlet algorithm with the Andersen thermostat.

Warning

This integrator may cause a significant drift of the centre of mass velocity.

For heating or cooling a system to a nominal temperature before equilibration, we recommend the velocity-Verlet with Boltzmann distribution integrator.

class halmd.mdsim.integrators.verlet_nvt_andersen(args)

Construct velocity-Verlet with Andersen thermostat.

Parameters:
  • args (table) – keyword arguments

  • args.particle – instance of halmd.mdsim.particle

  • args.box – instance of halmd.mdsim.box

  • args.temperature (number) – temperature of heat bath

  • args.rate (number) – collision rate

  • args.timestep (number) – integration timestep (defaults to halmd.mdsim.clock.timestep)

  • args.label (string) – instance label (default: ``particle.label``)

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.

set_temperature(temperature)

Set temperature of heat bath.

Parameters:

temperature (number) – temperature of heat bath

temperature

Temperature of heat bath.

collision_rate

Collision rate with the heat bath.

label

Label of integrator instance.

disconnect()

Disconnect integrator from core and profiler.

integrate()

First leapfrog half-step of velocity-Verlet algorithm.

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().