sponge.function.calc_torsion_pbc

View Source On Gitee
sponge.function.calc_torsion_pbc(position_a: Tensor, position_b: Tensor, position_c: Tensor, position_d: Tensor, pbc_box: Tensor, keepdims: bool = False)[source]

Compute torsion angle A-B-C-D formed by four positions A, B, C and D at periodic boundary condition.

Parameters
  • position_a (Tensor) – Tensor of shape (...,D). Data type is float. D is spatial dimension of the simulation system. Usually is 3. Position coordinate of point A.

  • position_b (Tensor) – Tensor of shape (...,D). Data type is float. Position coordinate of point B.

  • position_c (Tensor) – Tensor of shape (...,D). Data type is float. Position coordinate of point C.

  • position_d (Tensor) – Tensor of shape (...,D). Data type is float. Position coordinate of point D.

  • pbc_box (Tensor) – Tensor of shape (D) or (B,D). Data type is float. B is batchsize, i.e. number of walkers in simulation Size of PBC box L.

  • keepdims (bool) – If this is set to True, the last axis will be left in the result as dimensions with size one. Default: False.

Returns

torsion (Tensor), a tensor of shape (...) or (...,1). Data type is float.

Supported Platforms:

Ascend GPU

Examples

>>> import mindspore as ms
>>> import numpy as np
>>> from mindspore import Tensor
>>> from sponge.function import calc_torsion_pbc
>>> crd = Tensor(np.random.random((4, 3)), ms.float32)
>>> pbc_box = Tensor([[3, 3, 3]], ms.float32)
>>> calc_torsion_pbc(crd[0], crd[1], crd[2], crd[3], pbc_box)
Tensor(shape=[1], dtype=Float32, value= [-2.33294296e+00])