sponge.control.Barostat
- class sponge.control.Barostat(system: Molecule, pressure: float = 1, anisotropic: bool = False, control_step: int = 1, compressibility: float = 4.6e-05, time_constant: float = 1.0, **kwargs)[source]
Base class for barostat module in MindSPONGE, which is a subclass of
sponge.control.Controller
.The
sponge.control.Barostat
module is used for pressure coupling. It controls the atomic coordinates and the size of the PBC box of the system during the simulation process.- Parameters
system (
sponge.system.Molecule
) – Simulation system.pressure (float, optional) – Reference pressure \(P_{ref}\) in unit \(bar\) for pressure coupling. Default:
1.0
.anisotropic (bool, optional) – Whether to perform anisotropic pressure control. Default:
False
.control_step (int, optional) – Step interval for controller execution. Default:
1.0
.compressibility (float, optional) – Isothermal compressibility \(\beta\) in unit \(bar^{-1}\). Default:
4.6e-5
.time_constant (float, optional) – Time constant \(\tau_p\) in unit picosecond for pressure coupling. Default:
1.0
.
- 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 Barostat >>> system = Molecule(template='water.tip3p.yaml') >>> controller = Barostat(system)
- property compressibility: mindspore.common.tensor.Tensor
Isothermal compressibility.
- Returns
Tensor, isothermal compressibility.
- property pressure: mindspore.common.tensor.Tensor
Reference pressure.
- Returns
Tensor, reference pressure.
- pressure_scale(sim_press: Tensor, ref_press: Tensor, ratio: float = 1)[source]
Calculate the coordinate scale factor for pressure coupling.
- Parameters
sim_press (Tensor) – Current pressure.
ref_press (Tensor) – Reference pressure.
ratio (float, optional) – Ratio of pressure coupling. Default:
1.0
- Returns
Tensor, scale factor for pressure coupling.