sponge.function.GetVector

View Source On Gitee
class sponge.function.GetVector(use_pbc: bool = None)[source]

The class to get vector with or without PBC box

Parameters

use_pbc (bool) – Whether to calculate vector under periodic boundary condition. If None is given, it will determine whether to use periodic boundary conditions based on whether the pbc_box is provided. Default: None .

Examples

>>> import mindspore as ms
>>> import numpy as np
>>> from sponge.function import GetVector
>>> from mindspore import Tensor
>>> crd = Tensor(np.random.random((4, 3)), ms.float32)
>>> pbc_box = Tensor([[0.5, 0.5, 0.5]], ms.float32)
>>> gd = GetVector(use_pbc=True)
>>> gd(crd[0], crd[1], pbc_box)
Tensor(shape=[1, 3], dtype=Float32, value=
[[ 5.14909625e-02, -4.62748706e-02, -1.20763242e-01]])
>>> gd = GetVector(use_pbc=False)
>>> gd(crd[0], crd[1])
Tensor(shape=[3], dtype=Float32, value= [ 5.14909625e-02,  4.53725129e-01, -1.20763242e-01])
calc_vector_default(initial: Tensor, terminal: Tensor, pbc_box: Tensor = None)[source]

get vector.

Parameters
  • initial (Tensor) – Tensor of shape \((B, ..., D)\) . B means batchsize, i.e. number of walkers in simulation. D means spatial dimension of the simulation system. Usually is 3. Data type is float. Coordinate of initial point

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

  • pbc_box (Tensor) – Tensor of shape \((B, D)\) . Data type is float. Default: None.

calc_vector_nopbc(initial: Tensor, terminal: Tensor, pbc_box: Tensor = None)[source]

get vector without perodic bundary condition.

Parameters
  • initial (Tensor) – Tensor of shape \((B, ..., D)\) . B means batchsize, i.e. number of walkers in simulation. D means spatial dimension of the simulation system. Usually is 3. Data type is float. Coordinate of initial point

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

  • pbc_box (Tensor) – Tensor of shape \((B, D)\) . Data type is float. Default: None.

calc_vector_pbc(initial: Tensor, terminal: Tensor, pbc_box: Tensor = None)[source]

get vector with perodic bundary condition.

Parameters
  • initial (Tensor) – Tensor of shape \((B, ..., D)\) . B means batchsize, i.e. number of walkers in simulation. D means spatial dimension of the simulation system. Usually is 3. Data type is float. Coordinate of initial point

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

  • pbc_box (Tensor) – Tensor of shape \((B, D)\) . Data type is float. Default: None.

set_pbc(use_pbc: bool)[source]

set whether to use periodic boundary condition.

Parameters

use_pbc (bool) – Whether to calculate vector under periodic boundary condition. Default: None.

property use_pbc: bool

whether to use periodic boundary condition

Returns

bool, whether to use periodic boundary condition