mindspore.ops.BondForceWithAtomVirial

class mindspore.ops.BondForceWithAtomVirial(*args, **kwargs)[source]

Calculate bond force and the virial coefficient caused by simple harmonic bond for each atom together.

The calculation formula of the force part is the same as operator BondForce(). The Virial part is as follows:

\[dr = (x_1-x_2, y_1-y_2, z_1-z_2)\]
\[virial = |dr|*(|dr| - r_0)*k\]
Parameters
  • atom_numbers (int32) – the number of atoms n.

  • bond_numbers (int32) – the number of harmonic bonds m.

Inputs:
  • uint_crd_f (Tensor, uint32 ) - [n, 3], the unsigned int coordinate value of each atom.

  • scaler_f (Tensor, float32) - [3,], the 3-D scale factor (x, y, z), between the real space float coordinates and the unsigned int coordinates.

  • atom_a (Tensor, int32) - [m,], the first atom index of each bond.

  • atom_b (Tensor, int32) - [m,], the second atom index of each bond.

  • bond_k (Tensor, float32) - [m,], the force constant of each bond.

  • bond_r0 (Tensor, float32) - [m,], the equlibrium length of each bond.

Outputs:
  • frc_f (Tensor, float32) - [n, 3], same as operator BondForce().

  • atom_v (Tensor, float32) - [n,], the accumulated virial coefficient for each atom.

Supported Platforms:

GPU