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
-
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 , with nominal coupling rate and time-step .
-
rate
¶ Effective coupling rate per time in MD units.
The effective coupling rate equals , with coupling interval and time-step .
-
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()
.
-
finalize
()¶ Calculate second half-step, or assign velocities from Boltzmann distribution.
By default this function is connected to
halmd.mdsim.core.on_finalize()
.
-
disconnect
()¶ Disconnect integrator from core and profiler.