sponge.colvar.Atoms

查看源文件
class sponge.colvar.Atoms(index: Union[Tensor, ndarray, List[int]], batched: bool = False, keep_in_box: bool = False, dimension: int = 3, name: str = 'atoms')[源代码]

Atoms Cell是AtomsBase的一个子类,它使用原子索引数组进行初始化。

在初始化时,Atoms Cell接受一个原子索引数组作为输入,这个数组可以是对所有行走器都通用的,也可以对每个行走器都有一个单独的索引。

要设置一个通用的原子索引,将 batched 设置为 False ,其中 index 的shape与 Atoms Cell的shape相同,即 (a_1, a_2, … , a_n) ,返回的张量的shape为 (B, a_1, a_2, … , a_n, D) 。其中B是批量大小,即模拟中的步行者数量。{a_i}是特定原子的维度。D是仿真系统的维度。通常为3。

要为每个行走器设置单独的原子索引,将 batched 设置为 True。在这种情况下,index 的shape为 (B, a_1, a_2, … , a_n) ,而 Atoms Cell的shape为 (a_1, a_2, … , a_n) 。原子索引的batch size B 应与模拟系统的batch size相同。Atoms Cell返回的张量的shape为 (B, a_1, a_2, … , a_n, D) 。

参数:
  • index (Union[Tensor, ndarray, List[int]]) - 特定原子的索引数组。张量的shape为 (a_1, a_2, …, a_n) 或 (B, a_1, a_2, …, a_n) ,数据类型为int。

  • batched (bool) - 索引的第一个维度是否为批大小。默认值: False

  • keep_in_box (bool) - 是否在PBC box中替换坐标。默认值: False

  • dimension (int) - 仿真系统的空间维度。默认值:3。

  • name (str) - Colvar的名称。默认值:'atoms'。

支持平台:

Ascend GPU

样例:

>>> import mindspore as ms
>>> import numpy as np
>>> from mindspore import Tensor
>>> from sponge.colvar import Atoms
>>> crd = Tensor(np.random.random((4, 3)), ms.float32)
>>> crd
Tensor(shape=[4, 3], dtype=Float32, value=
[[ 2.47492954e-01,  9.78153408e-01,  1.44034222e-01],
[ 2.36211464e-01,  3.35842371e-01,  8.39536846e-01],
[ 8.82235169e-01,  5.98322928e-01,  6.68052316e-01],
[ 7.17712820e-01,  4.72498119e-01,  1.69098437e-01]])
>>> atom_1 = Atoms(0)
>>> atom_1(crd)
Tensor(shape=[1, 3], dtype=Float32, value=
[[ 2.47492954e-01,  9.78153408e-01,  1.44034222e-01]])
reshape(input_shape: tuple)[源代码]

重新排列原子的shape。