Bussi¶
- class hoomd.md.methods.thermostats.Bussi(kT, tau=0.0)¶
Bases:
Thermostat
The Bussi-Donadio-Parrinello thermostat.
- Parameters:
kT (hoomd.variant.variant_like) – Temperature set point for the thermostat \([\mathrm{energy}]\).
tau (float) – Thermostat time constant \([\mathrm{time}]\). Defaults to 0.
Bussi
controls the system temperature by separately rescaling the velocity and angular momenta by the factor \(\alpha\) sampled from the canonical distribution.When
tau
is 0, the stochastic evolution of system is instantly thermalized and \(\alpha\) is given by:\[\alpha = \sqrt{\frac{g_N kT}{K}}\]where \(K\) is the instantaneous kinetic energy of the corresponding translational or rotational degrees of freedom, \(N\) is the number of degrees of freedom, and \(g_N\) is a random value sampled from the distribution \(\mathrm{Gamma}(N, 1)\):
\[f_N(g) = \frac{1}{\Gamma(N)} g^{N-1} e^{-g}.\]When
tau
is non-zero, the kinetic energies decay to equilibrium with the given characteristic time constant and \(\alpha\) is given by:\[\alpha = \sqrt{e^{\delta t / \tau} + (1 - e^{\delta t / \tau}) \frac{(2 g_{N-1} + n^2) kT}{2 K} + 2 n \sqrt{e^{\delta t / \tau} (1-e^{\delta t / \tau}) \frac{kT}{2 K}}}\]where \(\delta t\) is the step size and \(n\) is a random value sampled from the normal distribution \(\mathcal{N}(0, 1)\).
See also
Example:
bussi = hoomd.md.methods.thermostats.Bussi( kT=1.5, tau=simulation.operations.integrator.dt * 20 ) simulation.operations.integrator.methods[0].thermostat = bussi
- kT¶
Temperature set point for the thermostat \([\mathrm{energy}]\).
Examples:
bussi.kT = 1.0
bussi.kT = hoomd.variant.Ramp(A=1.0, B=2.0, t_start=0, t_ramp=1_000_000)