sponge.function.GetVector

查看源文件
class sponge.function.GetVector(use_pbc: bool = None)[源代码]

获取有或者没有PBC box的向量。

参数:
  • use_pbc (bool) - 计算向量时是否使用周期性边界条件。 如果给出 None ,它将根据是否提供了 pbc_box 来决定是否使用周期性边界条件。默认值: None

样例:

>>> 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)[源代码]

获取向量。

参数:
  • initial (Tensor) - 起始位置的坐标。张量的shape为 \((B, ..., D)\) 。 B表示batchsize,例如,模拟中的步行者数量。D表示仿真系统的空间维度。通常为3。 数据类型为float。

  • terminal (Tensor) - 终止位置的坐标。张量的shape为 \((B, ..., D)\)。数据类型为float。

  • pbc_box (Tensor) - 张量的shape为 \((B, D)\)。数据类型为float。默认值: None

calc_vector_nopbc(initial: Tensor, terminal: Tensor, pbc_box: Tensor = None)[源代码]

在没有周期性边界条件的情况下获取向量。

参数:
  • initial (Tensor) - 起始位置的坐标。张量的shape为 \((B, ..., D)\) 。 B表示batchsize,例如,模拟中的步行者数量。D表示仿真系统的空间维度。通常为3。 数据类型为float。

  • terminal (Tensor) - 终止位置的坐标。张量的shape为 \((B, ..., D)\)。数据类型为float。

  • pbc_box (Tensor) - 张量的shape为 \((B, D)\)。数据类型为float。默认值: None

calc_vector_pbc(initial: Tensor, terminal: Tensor, pbc_box: Tensor = None)[源代码]

在有周期性边界条件的情况下获取向量。

参数:
  • initial (Tensor) - 起始位置的坐标。张量的shape为 \((B, ..., D)\) 。 B表示batchsize,例如,模拟中的步行者数量。D表示仿真系统的空间维度。通常为3。 数据类型为float。

  • terminal (Tensor) - 终止位置的坐标。张量的shape为 \((B, ..., D)\)。数据类型为float。

  • pbc_box (Tensor) - 张量的shape为 \((B, D)\)。数据类型为float。默认值: None

set_pbc(use_pbc: bool)[源代码]

设定是否使用周期性边界条件。

参数:
  • use_pbc (bool) - 是否使用周期性边界条件。默认值: None

property use_pbc

是否使用周期性边界条件。

返回:

bool。是否使用周期性边界条件。