Bussi¶
- class hoomd.md.methods.thermostats.Bussi(kT, tau=0.0)¶
Bases:
ThermostatThe 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.
Bussicontrols the system temperature by separately rescaling the velocity and angular momenta by the factor \(\alpha\) sampled from the canonical distribution.When
tauis 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
tauis 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)