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