NVT ensemble

Overview

Nose Hoover thermostat NoseHooverNvt
Berendsen thermostat BerendsenNvt
Andersen thermostat AndersenNvt
Brownian dynamic thermostat BdNvt
NVT for rigid body NvtRigid
Brownian dynamic for rigid body BdNvtRigid

Nose Hoover thermostat

class NoseHooverNvt(all_info, group, comp_info, T, tauT)

The constructor of a NVT NoseHoover thermostat object for a group of particles.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
  • comp_info (ComputeInfo) – The object of calculation of collective information.
  • T (float) – The temperature.
  • tauT (float) – The thermostat coupling.
setT(float T)

specifies the temperature with a constant value.

setT(Variant vT)

specifies the temperature with a defined varying value by time step.

Example:

group = galamost.ParticleSet(all_info, 'all')
comp_info = galamost.ComputeInfo(all_info, group)
nh = galamost.NoseHooverNvt(all_info, group, comp_info, 1.0, 0.5)
app.add(nh)

Berendsen thermostat

class BerendsenNvt(all_info, group, comp_info, T, tauT)

The constructor of a NVT Berendsen thermostat object for a group of particles.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
  • comp_info (ComputeInfo) – The object of calculation of collective information.
  • T (float) – The temperature.
  • tauT (float) – The thermostat coupling parameter.
setT(float T)

specifies the temperature with a constant value.

setT(Variant vT)

specifies the temperature with a varying value by time steps.

Andersen thermostat

class AndersenNvt(all_info, group, T, gamma, seed)

The constructor of a NVT Andersen thermostat object for a group of particles.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
  • T (float) – The temperature.
  • gamma (float) – The collision frequency.
  • seed (int) – The seed of random number generator.
setT(float T)

specifies the temperature with a constant value.

setT(Variant vT)

specifies the temperature with a varying value by time steps.

Example:

an = galamost.AndersenNvt(all_info,group,1.0,10.0, 12345)
app.add(an)

Brownian dynamic thermostat

Description:

The particles are integrated forward in time according to the Langevin equations of motion:

\[ \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} \]
  • \(\gamma\) - gamma (unitless) - optional: defaults to 1.0

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, \(T\). When \(kT=0\), the random force \(\vec{F}_\mathrm{R}=0\).

class BdNvt(all_info, group, T, seed)

The constructor of a Brownian NVT thermostat object for a group of particles.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
  • T (float) – The temperature.
  • seed (int) – The seed of random number generator.
setGamma(float gamma)

specifies the gamma with a constant value.

setGamma(string type, float gamma)

specifies the gamma of a particle type.

setT(float T)

specifies the temperature with a constant value.

setT(Variant vT)

specifies the temperature with a varying value by time step.

Example:

group = galamost.ParticleSet(all_info, 'all')
bdnvt = galamost.BdNvt(all_info, group, 1.0, 123)
app.add(bdnvt)

NVT for rigid body

class NvtRigid(AllInfo all_info, ParticleSet group, float T, float tauT)

The constructor of a NVT thermostat object for rigid bodies.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
  • T (float) – The temperature.
  • tauT (float) – The thermostat coupling parameter.
setT(float T)

specifies the temperature with a fixed value.

setT(Variant vT)

pecifies the temperature with a varying value by time step.

Example:

bgroup = galamost.ParticleSet(all_info, 'body')
rigidnvt = galamost.NvtRigid(all_info, bgroup, 1.0, 10.0)
app.add(rigidnvt)

Brownian dynamic for rigid body

Please see Brownian dynamic thermostat for the theory.

class BdNvtRigid(all_info, group, T, seed)

The constructor of a Brownian NVT thermostat object for rigid bodies.

Parameters:
  • all_info (AllInfo) – The system information.
  • group (ParticleSet) – The group of particles.
  • T (float) – The temperature.
  • seed (int) – The seed of random number generator.
setGamma(float gamma)

specifies the gamma of Brownian method with a constant value.

setGamma(const std::string & type, float gamma)

specifies the gamma of Brownian method of a particle type.

setT(float T)

specifies the temperature with a constant value.

setT(Variant vT)

specifies the temperature with a varying value by time step.

Example:

bgroup = galamost.ParticleSet(all_info, 'body')
bdrigidnvt = galamost.BdNvtRigid(all_info, bgroup, 1.0, 123)
app.add(bdrigidnvt)