Brownian dynamics via Euler-Maruyama scheme¶
This module implements an integrator for (fully overdamped) Brownian dynamics of spherical particles, using the Euler–Maruyama scheme:
where \(\vec R_i(t)\) and \(\vec F_i(t)\) are the position and force vectors of particle \(i\) at time \(t\), \(D_i\) is its diffusion constant, and the \(\vec N_i\) are independent random vectors, normally distributed with unit variance. The temperature of the (virtual) solvent is \(T\) and \(\tau\) is the timestep.
Note
This implementation does not include motion due to particle velocities.
- class halmd.mdsim.integrators.brownian_euler(args)¶
Construct Brownian integrator
- Parameters:
args (table) – keyword arguments
args.particle – instance of
halmd.mdsim.particle
args.box – instance of
halmd.mdsim.box
args.timestep (number) – integration timestep (defaults to
halmd.mdsim.clock.timestep
)args.diffusion (table) – vector with diffusion constants \(D_i\) per species
args.temperature (number) – solvent temperature
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.
- set_temperature(temperature)¶
Set solvent temperature.
- Parameters:
temperature (number) – temperature value
- timestep¶
Integration time step.
- diffusion¶
Diffusion constants \(D_i\) for each particle species.
- temperature¶
Solvent temperature (acting as a heat bath).
- disconnect()¶
- label¶
Label of integrator instance.
Disconnect integrator from core and profiler.
- integrate()¶
Perform the integration step and update particle positions. By default, this function is connected to
halmd.mdsim.core.on_integrate()
.