sponge.function.calc_torsion_pbc

查看源文件
sponge.function.calc_torsion_pbc(position_a: Tensor, position_b: Tensor, position_c: Tensor, position_d: Tensor, pbc_box: Tensor, keepdims: bool = False)[源代码]

在有周期性边界条件的情况下计算由四个位置A,B,C,D形成的扭转角。

参数:
  • position_a (Tensor) - 位置a,shape为 \((..., D)\) ,D是模拟系统的维度。

  • position_b (Tensor) - 位置b,shape为 \((..., D)\)

  • position_c (Tensor) - 位置c,shape为 \((..., D)\)

  • position_d (Tensor) - 位置d,shape为 \((..., D)\)

  • pbc_box (Tensor) - PBC box,shape为 \((D)\)\((B, D)\) ,B是Batch size。

  • keepdims (bool) - 设置为 True 的话,最后一个维度会保留,默认值 False

返回:

Tensor。计算所得扭转角。shape为 \((...)\)\((..., 1)\)

支持平台:

Ascend GPU

样例:

>>> 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])