sponge.function.calc_angle_pbc
- sponge.function.calc_angle_pbc(position_a: Tensor, position_b: Tensor, position_c: Tensor, pbc_box: Tensor, keepdims: bool = False)[source]
Compute angle \(\angle{ABC}\) formed by the position coordinates of three positions \(A\), \(B\) and \(C\) at periodic boundary condition.
- Parameters
position_a (Tensor) – Tensor of shape \((..., D)\) . Data type is float. D means 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\).
pbc_box (Tensor) – Tensor of shape \((D)\) or \((B, D)\) . Data type is float. B means batchsize, i.e. number of walkers in simulation Size of PBC box \(\vec{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
angle (Tensor), a tensor of shape \((...)\) or \((..., 1)\) . Data type is float.
- Supported Platforms:
Ascend
GPU
Examples
>>> import mindspore as ms >>> from mindspore import Tensor >>> import numpy as np >>> from sponge.function import calc_angle_pbc >>> crd = Tensor(np.random.random((3, 3)), ms.float32) >>> pbc_box = Tensor([[3, 3, 3]], ms.float32) >>> calc_angle_pbc(crd[0], crd[1], crd[2], pbc_box) >>> Tensor(shape=[1], dtype=Float32, value= [ 6.17621064e-01])