mindspore.ops.MDIterationLeapFrogLiujianWithMaxVel

class mindspore.ops.MDIterationLeapFrogLiujianWithMaxVel(atom_numbers, half_dt, dt, exp_gamma, max_vel)[source]

One step of classical leap frog algorithm to solve the finite difference Hamiltonian equations of motion for certain system, using Langevin dynamics with Liu’s thermostat scheme, but with an maximum velocity limit. Assume the number of atoms is n and the target control temperature is T.

Detailed iteration formula can be found in this paper: A unified thermostat scheme for efficient configurational sampling for classical/quantum canonical ensembles via molecular dynamics. DOI: 10.1063/1.4991621.

Warning

This is an experimental prototype that is subject to change and/or deletion.

Parameters
  • atom_numbers (int32) – the number of atoms n.

  • dt (float32) – time step for finite difference.

  • half_dt (float32) – half of time step for finite difference.

  • exp_gamma (float32) – parameter in Liu’s dynamic, exp(-gamma_ln * dt).

  • max_vel (float32) – the maximum velocity limit.

Inputs:
  • inverse_mass (Tensor) - The inverse value of mass of each atom. The data type is float32 and the shape is \((n,)\).

  • sqrt_mass_inverse (Tensor) - The inverse sqrt of the mass in Liu’s dynamics of each atom. The data type is float32 and the shape is \((n,)\).

  • vel (Tensor) - The velocity of each atom. The data type is float32 and the shape is \((n, 3)\).

  • crd (Tensor) - The coordinate of each atom. The data type is float32 and the shape is \((n, 3)\).

  • frc (Tensor) - The force felt by each atom. The data type is float32 and the shape is \((n, 3)\).

  • acc (Tensor) - The acceleration of each atom. The data type is float32 and the shape is \((n, 3)\).

  • rand_state (Tensor) - Random state to generate random force. The data type is float32 and the shape is \((math.ceil(n * 3.0 / 4.0) * 16, )\).

  • rand_frc (Tensor) - The random forces. The data type is float32 and the shape is \((n, 3)\).

Outputs:
  • output (float32) - The output coordinate of each atom. The data type is float32 and the shape is \((n, 3)\).

Supported Platforms:

GPU