sponge.partition.GridNeighbours
- class sponge.partition.GridNeighbours(cutoff: float, coordinate: Tensor, pbc_box: Tensor = None, atom_mask: Tensor = None, exclude_index: Tensor = None, num_neighbours: int = None, cell_capacity: int = None, num_cell_cut: int = 1, cutoff_scale: float = 1.2, cell_cap_scale: float = 1.25, grid_num_scale: float = 1.5)[源代码]
网格计算近邻表。
- 参数:
cutoff (float) - 截止距离。
coordinate (Tensor) - Tensor,shape为 \((B, A, D)\)。数据类型为 float32。模拟系统中原子的位置坐标。
pbc_box (Tensor,可选) - Tensor,shape为 \((B, D)\)。数据类型为 float32。周期性边界条件的盒子大小。默认值:
None
。atom_mask (Tensor,可选) - Tensor,shape为 \((B, A)\)。数据类型为 bool。系统中原子的掩码。默认值:
None
。exclude_index (Tensor,可选) - Tensor,shape为 \((B, A, Ex)\)。数据类型为 int32。可以从近邻表中排除的邻近原子的索引。默认值:
None
。num_neighbours (int,可选) - 邻近原子的数量。如果给定
None
,则该值将根据邻近网格与总网格数的比例计算。默认值:None
。cell_capacity (int,可选) - 网格单元中原子的容量。如果给定
None
,则该值将乘以初始坐标时网格单元中最大原子数的因子。默认值:None
。num_cell_cut (int,可选) - 根据截止距离对网格单元进行细分的数量。默认值:
1
。cutoff_scale (float,可选) - 缩放截止距离的因子。默认值:
1.2
。cell_cap_scale (float,可选) - 缩放 cell_capacity 的因子。默认值:
1.25
。grid_num_scale (float,可选) - 通过网格比例计算 num_neighbours 的缩放因子。如果 num_neighbours 不为
None
,则不会使用。默认值:1.5
。
说明
B: 模拟walkers的数量。
A: 系统中原子的数量。
N: 邻近原子的数量。
D: 位置坐标的维度。
Ex: 最多排除的邻近原子数量。
- 支持平台:
Ascend
GPU
样例:
>>> import sponge >>> from sponge.partition import GridNeighbours >>> import mindspore >>> from mindspore import Tensor >>> coordinate = Tensor([[[0.0, 0.0, 0.0], [0.0, 0.0, 1.0]]]) >>> grid_neighbours = GridNeighbours(0.5, coordinate) >>> grid_neighbours(coordinate) (Tensor(shape=[1, 2, 2], dtype=Int32, value= [[[0, 1], [0, 1]]]), Tensor(shape=[1, 2, 2], dtype=Bool, value= [[[False, True], [ True, False]]]))