sponge.control.BerendsenThermostat

View Source On Gitee
class sponge.control.BerendsenThermostat(system: Molecule, temperature: float = 300, control_step: int = 1, time_constant: float = 0.5, scale_min: float = 0.8, scale_max: float = 1.25, **kwargs)[source]

A Berendsen (weak coupling) thermostat module, which is a subclass of sponge.control.Thermostat.

Reference Berendsen, H. J. C.; Postma, J. P. M.; van Gunsteren, W. F.; DiNola, A.; Haak, J. R.. Molecular Dynamics with Coupling to an External Bath [J]. The Journal of Chemical Physics, 1984, 81(8).

Parameters
  • ( (system) – class: sponge.system.Molecule): Simulation system.

  • temperature (float, optional) – Reference temperature \(T_{ref}\) in unit Kelvin for temperature coupling. Default: 300.0.

  • control_step (int, optional) – Step interval for controller execution. Default: 1.

  • time_constant (float, optional) – Time constant \(\tau_T\) in unit picosecond for temperature coupling. Default: 0.5.

  • scale_min (float, optional) – The minimum value to clip the velocity scale factor. Default: 0.8.

  • scale_max (float, optional) – The maximum value to clip the velocity scale factor. Default: 1.25.

Inputs:
  • coordinate (Tensor) - Coordinate. Tensor of shape \((B, A, D)\). Data type is float. Here \(B\) is the number of walkers in simulation, \(A\) is the number of atoms and \(D\) is the spatial dimension of the simulation system, which is usually 3.

  • velocity (Tensor) - Velocity. Tensor of shape \((B, A, D)\). Data type is float.

  • force (Tensor) - Force. Tensor of shape \((B, A, D)\). Data type is float.

  • energy (Tensor) - Energy. Tensor of shape \((B, 1)\). Data type is float.

  • kinetics (Tensor) - Kinetics. Tensor of shape \((B, D)\). Data type is float.

  • virial (Tensor) - Virial. Tensor of shape \((B, D)\). Data type is float.

  • pbc_box (Tensor) - Pressure boundary condition box. Tensor of shape \((B, D)\). Data type is float.

  • step (int) - Simulation step. Default: 0.

Outputs:
  • coordinate, Tensor of shape \((B, A, D)\). Coordinate. Data type is float.

  • velocity, Tensor of shape \((B, A, D)\). Velocity. Data type is float.

  • force, Tensor of shape \((B, A, D)\). Force. Data type is float.

  • energy, Tensor of shape \((B, 1)\). Energy. Data type is float.

  • kinetics, Tensor of shape \((B, D)\). Kinetics. Data type is float.

  • virial, Tensor of shape \((B, D)\). Virial. Data type is float.

  • pbc_box, Tensor of shape \((B, D)\). Periodic boundary condition box. Data type is float.

Supported Platforms:

Ascend GPU

Examples

>>> from sponge import Molecule
>>> from sponge.control import BerendsenThermostat
>>> system = Molecule(template='water.tip3p.yaml')
>>> controller = BerendsenThermostat(system)
set_time_step(dt)[source]

Set simulation time step

Parameters

dt (float) – Simulation time step