mindspore.ops.MDIterationLeapFrog

class mindspore.ops.MDIterationLeapFrog(*args, **kwargs)[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. 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.

Parameters
  • float4_numbers (int32) – total length to store random numbers.

  • 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, equals exp(-gamma_ln * dt), where gamma_ln is the firction factor in Langvin dynamics.

  • max_velocity (float32) – the upper limit of velocity, when the veclocity overflows, scale it to the upper limit.

  • is_max_velocity (int32) – whether the max velocity control is open or not.

Inputs:
  • mass_inverse (Tensor, float32) - [n,], the inverse value of mass of each atom.

  • sqrt_mass (Tensor, float32) - [n,], the inverse square root value of effect mass in Liu’s dynamics of each atom.

Outputs:
  • vel (Tensor, float32) - [n, 3], the velocity of each atom.

  • crd (Tensor, float32) - [n, 3], the coordinate of each atom.

  • frc (Tensor, float32) - [n, 3], the force felt by each atom.

  • acc (Tensor, float32) - [n, 3], the acceleration of each atom.

Supported Platforms:

GPU