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.