sponge.function.calc_vector_pbc

View Source On Gitee
sponge.function.calc_vector_pbc(initial: Tensor, terminal: Tensor, pbc_box: Tensor)[source]

Compute vector from initial point to terminal point at perodic bundary condition.

Parameters
  • initial (Tensor) – Tensor of shape \((..., D)\), where \(D\) is the spatial dimension of the simulation system (usually 3). Data type is float. Position coordinate of initial point

  • terminal (Tensor) – Tensor of shape \((..., D)\). Data type is float. Position coordinate of terminal point

  • pbc_box (Tensor) – Tensor of shape \((D)\) or \((B, D)\), where \(B\) is the batchsize (i.e., number of walkers in simulation). Data type is float. Size of PBC box.

Returns

vector (Tensor), a tensor of shape \((..., D)\). Data type is float.

Supported Platforms:

Ascend GPU

Examples

>>> import mindspore as ms
>>> import numpy as np
>>> from mindspore import Tensor
>>> from sponge.function import calc_vector_pbc
>>> crd = Tensor(np.random.random((4, 3)), ms.float32)
>>> pbc_box = Tensor([[3, 3, 3]], ms.float32)
>>> calc_vector_pbc(crd[0], crd[1], pbc_box)
Tensor(shape=[1, 3], dtype=Float32, value=
[[ 6.60338998e-02,  1.31848425e-01,  2.01904625e-01]])