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