mindspore.ops.PMEReciprocalForce

class mindspore.ops.PMEReciprocalForce(atom_numbers, beta, fftx, ffty, fftz, box_length_0, box_length_1, box_length_2)[source]

Calculate the reciprocal part of long-range Coulumb force using PME(Particle Meshed Ewald) method. Assume the number of atoms is n.

The detailed calculation formula of PME(Particle Meshed Ewald) method can be found in this paper: A Smooth Particle Mesh Ewald Method. DOI: 10.1063/1.470117.

Because there is a large amount of inputs and each of them are related, there is no way to construct Examples using random methods. For details, refer the webpage SPONGE in MindSpore.

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

  • beta (float32) – the PME beta parameter, determined by the non-bond cutoff value and simulation precision tolerance.

  • fftx (int32) – the number of points for Fourier transform in dimension X.

  • ffty (int32) – the number of points for Fourier transform in dimension Y.

  • fftz (int32) – the number of points for Fourier transform in dimension Z.

  • box_length_0 (float32) – the value of boxlength idx 0

  • box_length_1 (float32) – the value of boxlength idx 1

  • box_length_2 (float32) – the value of boxlength idx 2

Inputs:
  • uint_crd (Tensor) - The unsigned int coordinates value of each atom. The data type is uint32 and the shape is \((n, 3)\)

  • charge (Tensor) - The charge carried by each atom. The data type is float32 and the shape is \((n,)\)

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

Supported Platforms:

GPU