sponge.function.calc_torsion

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

计算由四个位置A,B,C,D形成的扭转角。

参数:
  • position_a (Tensor) - 位置a,shape为 \((..., D)\),数据类型为float。

  • position_b (Tensor) - 位置b,shape为 \((..., D)\),数据类型为float。

  • position_c (Tensor) - 位置c,shape为 \((..., D)\),数据类型为float。

  • position_d (Tensor) - 位置d,shape为 \((..., D)\),数据类型为float。

  • pbc_box (Tensor) - PBC box,shape为 \((D)\)\((B, D)\),其中B表示batch size,D表示模拟系统的维度,一般为3,数据类型为float。PBC box尺寸为 \(\vec{L}\)。默认值 "None"

  • keepdims (bool) - 如果被设置为 "True",则最后一个轴将作为大小为 1 的维度保留在结果中。默认值 "False"

返回:

Tensor。计算所得扭转角。shape为 \((...)\) 或者 \((..., 1)\) ,数据类型为float。

支持平台:

Ascend GPU

支持平台:

Ascend GPU

样例:

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