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
。
- property use_pbc
是否使用周期性边界条件。
- 返回:
bool。是否使用周期性边界条件。