sponge.function.calc_distance_pbc
- sponge.function.calc_distance_pbc(position_a: Tensor, position_b: Tensor, pbc_box: Tensor = None, keepdims: bool = False)[source]
Compute distance between position \(A\) and \(B\) at perodic bundary 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\).
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
distance (Tensor), a tensor of shape \((...)\) or \((..., 1)\). Data type is float.
- Supported Platforms:
Ascend
GPU
Examples
>>> import mindspore as ms >>> from mindspore import Tensor >>> from sponge.function import calc_distance_pbc >>> tensor_a = Tensor([[1, 2, 3], [4, 5, 6]], ms.float32) >>> tensor_b = Tensor([[1, 2, 4], [6, 8, 10]], ms.float32) >>> pbc_box = Tensor([[3, 3, 3]], ms.float32) >>> calc_distance_pbc(tensor_a, tensor_b, pbc_box) Tensor(shape=[2], dtype=Float32, value= [ 1.00000000e+00, 1.41421354e+00])