sponge.control.BerendsenThermostat
- 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
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
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
. Data type is float. Here is the number of walkers in simulation, is the number of atoms and is the spatial dimension of the simulation system, which is usually 3.velocity (Tensor) - Velocity. Tensor of shape
. Data type is float.force (Tensor) - Force. Tensor of shape
. Data type is float.energy (Tensor) - Energy. Tensor of shape
. Data type is float.kinetics (Tensor) - Kinetics. Tensor of shape
. Data type is float.virial (Tensor) - Virial. Tensor of shape
. Data type is float.pbc_box (Tensor) - Pressure boundary condition box. Tensor of shape
. Data type is float.step (int) - Simulation step. Default:
0
.
- Outputs:
coordinate, Tensor of shape
. Coordinate. Data type is float.velocity, Tensor of shape
. Velocity. Data type is float.force, Tensor of shape
. Force. Data type is float.energy, Tensor of shape
. Energy. Data type is float.kinetics, Tensor of shape
. Kinetics. Data type is float.virial, Tensor of shape
. Virial. Data type is float.pbc_box, Tensor of shape
. 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)