sponge.function.calc_distance

View Source On Gitee
sponge.function.calc_distance(position_a: Tensor, position_b: Tensor, pbc_box: Tensor = None, keepdims: bool = False)[source]

Compute distance between position \(A\) and \(B\).

Parameters
  • position_a (Tensor) – Tensor of shape \((..., D)\). Data type is float. 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. 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
>>> tensor_a = Tensor([[1, 2, 3], [4, 5, 6]], ms.float32)
>>> tensor_b = Tensor([[1, 2, 4], [6, 8, 10]], ms.float32)
>>> calc_distance(tensor_a, tensor_b)
Tensor(shape=[2], dtype=Float32, value= [ 1.00000000e+00,  5.38516474e+00])
>>> pbc_box = Tensor([[3, 3, 3]], ms.float32)
>>> calc_distance(tensor_a, tensor_b, pbc_box)
>>> Tensor(shape=[2], dtype=Float32, value= [ 1.00000000e+00,  1.41421354e+00])