sponge.control.LeapFrog

View Source On Gitee
class sponge.control.LeapFrog(system: Molecule, thermostat: Thermostat = None, barostat: Barostat = None, constraint: Constraint = None, **kwargs)[source]

A leap-frog integrator based on "middle scheme" developed by Jian Liu, et al. It is a subclass of sponge.control.Integrator.

Reference Zhang, Z.; Yan, K; Liu, X.; Liu, J. A Leap-Frog Algorithm-based Efficient Unified Thermostat Scheme for Molecular Dynamics [J]. Chinese Science Bulletin, 2018, 63(33).

Parameters
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 LeapFrog
>>> system = Molecule(template='water.tip3p.yaml')
>>> controller = LeapFrog(system)