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.
- Parameters:
args (table) – keyword arguments
args.particle – instance of
halmd.mdsim.particle
args.box – instance of
halmd.mdsim.box
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
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 in MD units.
- temperature¶
Temperature of Boltzmann distribution in MD units.
- interval¶
Coupling interval in steps.
The interval equals \(\left\lfloor\frac{1}{\nu \tau}\right\rceil\), with nominal coupling rate \(\nu\) and time-step \(\tau\).
- rate¶
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_temperature(temperature)¶
Set the temperature of the Boltzmann distribution to the given value.
- integrate()¶
Calculate first half-step.
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, or assign velocities from Boltzmann distribution.
By default this function is connected to
halmd.mdsim.core.on_finalize()
.
- label¶
Label of integrator instance.
- disconnect()¶
Disconnect integrator from core and profiler.