Langevin¶
- class hoomd.md.methods.Langevin(filter, kT, tally_reservoir_energy=False, default_gamma=1.0, default_gamma_r=(1.0, 1.0, 1.0))¶
Bases:
Method
Langevin dynamics.
- Parameters:
filter (hoomd.filter.filter_like) – Subset of particles to apply this method to.
kT (hoomd.variant.variant_like) – Temperature of the simulation \([\mathrm{energy}]\).
tally_reservoir_energy (bool) – When True, track the energy exchange between the thermal reservoir and the particles. Defaults to False \([\mathrm{energy}]\).
default_gamma (float) – Default drag coefficient for all particle types \([\mathrm{mass} \cdot \mathrm{time}^{-1}]\).
default_gamma_r ([
float
,float
,float
]) – Default rotational drag coefficient tensor for all particles \([\mathrm{mass} \cdot \mathrm{length}^{2} \cdot \mathrm{time}^{-1}]\).
Langevin
integrates particles forward in time according to the Langevin equations of motion, modelling a canonical ensemble (NVT).The translational degrees of freedom follow:
\[ \begin{align}\begin{aligned}m \frac{d\vec{v}}{dt} &= \vec{F}_\mathrm{C} - \gamma \cdot \vec{v} + \vec{F}_\mathrm{R}\\\langle \vec{F}_\mathrm{R} \rangle &= 0\\\langle |\vec{F}_\mathrm{R}|^2 \rangle &= 2 d kT \gamma / \delta t\end{aligned}\end{align} \]where \(\vec{F}_\mathrm{C}\) is the force on the particle from all potentials and constraint forces, \(\gamma\) is the drag coefficient, \(\vec{v}\) is the particle’s velocity, \(\vec{F}_\mathrm{R}\) is a uniform random force, and \(d\) is the dimensionality of the system (2 or 3). The magnitude of the random force is chosen via the fluctuation-dissipation theorem to be consistent with the specified drag and temperature, \(kT\).
About axes where \(I^i > 0\), the rotational degrees of freedom follow:
\[ \begin{align}\begin{aligned}I \frac{d\vec{\omega}}{dt} &= \vec{\tau}_\mathrm{C} - \gamma_r \cdot \vec{\omega} + \vec{\tau}_\mathrm{R}\\\langle \vec{\tau}_\mathrm{R} \rangle &= 0,\\\langle \tau_\mathrm{R}^i \cdot \tau_\mathrm{R}^i \rangle &= 2 k T \gamma_r^i / \delta t,\end{aligned}\end{align} \]where \(\vec{\tau}_\mathrm{C} = \vec{\tau}_\mathrm{net}\), \(\gamma_r^i\) is the i-th component of the rotational drag coefficient (
gamma_r
), \(\tau_\mathrm{R}^i\) is a component of the uniform random torque, \(\vec{\omega}\) is the particle’s angular velocity and \(I\) is the the particle’s moment of inertia. The magnitude of the random torque is chosen via the fluctuation-dissipation theorem to be consistent with the specified drag and temperature, \(kT\).Langevin
numerically integrates the translational degrees of freedom using Velocity-Verlet and the rotational degrees of freedom with a scheme based on Kamberaj 2005.The attributes
gamma
andgamma_r
set the translational and rotational damping coefficients, respectively, by particle type.Example:
langevin = hoomd.md.methods.Langevin(filter=hoomd.filter.All(), kT=1.5) simulation.operations.integrator.methods = [langevin]
Members inherited from
AutotunedObject
:- property kernel_parameters¶
Kernel parameters.
Read more...
- property is_tuning_complete¶
Check if kernel parameter tuning is complete.
Read more...
- tune_kernel_parameters()¶
Start tuning kernel parameters.
Read more...
Members defined in
Langevin
:- filter¶
Subset of particles to apply this method to.
- Type:
- kT¶
Temperature of the simulation \([\mathrm{energy}]\).
Examples:
langevin.kT = 1.0
langevin.kT = hoomd.variant.Ramp( A=2.0, B=1.0, t_start=0, t_ramp=1_000_000 )
- Type:
- tally_reservoir_energy¶
When True, track the energy exchange between the thermal reservoir and the particles.
Example:
langevin.tally_reservoir_energy = True
- Type:
- gamma¶
The drag coefficient for each particle type \([\mathrm{mass} \cdot \mathrm{time}^{-1}]\).
Example:
langevin.gamma["A"] = 0.5
- Type:
TypeParameter[
particle type
,float
]
- gamma_r¶
The rotational drag coefficient tensor for each particle type \([\mathrm{mass} \cdot \mathrm{length}^{2} \cdot \mathrm{time}^{-1}]\).
Example:
langevin.gamma_r["A"] = [1.0, 2.0, 3.0]
- property reservoir_energy¶
Energy absorbed by the reservoir \([\mathrm{energy}]\).
Set
tally_reservoir_energy
toTrue
to track the reservoir energy.Example:
langevin.tally_reservoir_energy = True logger.add(obj=langevin, quantities=["reservoir_energy"])
Warning
When continuing a simulation, the energy of the reservoir will be reset to zero.
(
Loggable
: category=”scalar”)