Overview
.. py:class:: NoseHooverNVT(all_info, group, comp_info, T, tauT) The constructor of a NVT NoseHoover thermostat object for a group of particles. :param AllInfo all_info: The system information. :param ParticleSet group: The group of particles. :param ComputeInfo comp_info: The object of calculation of collective information. :param float T: The temperature. :param float tauT: The thermostat coupling. .. py:function:: setT(float T) specifies the temperature with a constant value. .. py:function:: setT(Variant vT) specifies the temperature with a defined varying value by time step. Example:: group = gala.ParticleSet(all_info, 'all') comp_info = gala.ComputeInfo(all_info, group) nh = gala.NoseHooverNVT(all_info, group, comp_info, 1.0, 0.5) app.add(nh)
.. py:class:: BerendsenNVT(all_info, group, comp_info, T, tauT) The constructor of a NVT Berendsen thermostat object for a group of particles. :param AllInfo all_info: The system information. :param ParticleSet group: The group of particles. :param ComputeInfo comp_info: The object of calculation of collective information. :param float T: The temperature. :param float tauT: The thermostat coupling parameter. .. py:function:: setT(float T) specifies the temperature with a constant value. .. py:function:: setT(Variant vT) specifies the temperature with a varying value by time steps.
.. py:class:: AndersenNVT(all_info, group, T, gamma, seed) The constructor of a NVT Andersen thermostat object for a group of particles. :param AllInfo all_info: The system information. :param ParticleSet group: The group of particles. :param float T: The temperature. :param float gamma: The collision frequency. :param int seed: The seed of random number generator. .. py:function:: setT(float T) specifies the temperature with a constant value. .. py:function:: setT(Variant vT) specifies the temperature with a varying value by time steps. Example:: an = gala.AndersenNVT(all_info,group,1.0,10.0, 12345) app.add(an)
Description:
The particles are integrated forward in time according to the Langevin equations of motion:
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
- \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.
.. py:class:: LangevinNVT(all_info, group, T, seed) The constructor of a Langevin NVT thermostat object for a group of particles. :param AllInfo all_info: The system information. :param ParticleSet group: The group of particles. :param float T: The temperature. :param int seed: The seed of random number generator. .. py:function:: setGamma(float gamma) specifies the gamma with a constant value. .. py:function:: setGamma(string type, float gamma) specifies the gamma of a particle type. .. py:function:: setT(float T) specifies the temperature with a constant value. .. py:function:: setT(Variant vT) specifies the temperature with a varying value by time step. Example:: group = gala.ParticleSet(all_info, 'all') lnvt = gala.LangevinNVT(all_info, group, 1.0, 123) app.add(lnvt)
.. py:class:: NVTRigid(AllInfo all_info, ParticleSet group, float T, float tauT) The constructor of a NVT thermostat object for rigid bodies. :param AllInfo all_info: The system information. :param ParticleSet group: The group of particles. :param float T: The temperature. :param float tauT: The thermostat coupling parameter. .. py:function:: setT(float T) specifies the temperature with a fixed value. .. py:function:: setT(Variant vT) pecifies the temperature with a varying value by time step. Example:: bgroup = gala.ParticleSet(all_info, 'body') rigidnvt = gala.NVTRigid(all_info, bgroup, 1.0, 10.0) app.add(rigidnvt)
Please see :ref:`langevin-nvt` for the theory.
.. py:class:: LangevinNVTRigid(all_info, group, T, seed) The constructor of a Langevin NVT thermostat object for rigid bodies. :param AllInfo all_info: The system information. :param ParticleSet group: The group of particles. :param float T: The temperature. :param int seed: The seed of random number generator. .. py:function:: setGamma(float gamma) specifies the gamma of Langevin method with a constant value. .. py:function:: setGamma(const std::string & type, float gamma) specifies the gamma of Langevin method of a particle type. .. py:function:: setT(float T) specifies the temperature with a constant value. .. py:function:: setT(Variant vT) specifies the temperature with a varying value by time step. Example:: bgroup = gala.ParticleSet(all_info, 'body') lrigidnvt = gala.LangevinNVTRigid(all_info, bgroup, 1.0, 123) app.add(lrigidnvt)