mindspore.ops.NeighborListRefresh
- class mindspore.ops.NeighborListRefresh(grid_numbers, atom_numbers, not_first_time, nxy, excluded_atom_numbers, cutoff_square, half_skin_square, cutoff_with_skin, half_cutoff_with_skin, cutoff_with_skin_square, refresh_interval=20, cutoff=10.0, skin=2.0, max_atom_in_grid_numbers=64, max_neighbor_numbers=800, forced_update=0, forced_check=0)[source]
Update (or construct if first time) the Verlet neighbor list for the calculation of short-ranged force.
Warning
This is an experimental prototype that is subject to change and/or deletion.
- Parameters
grid_numbers (int32) – the total number of grids divided G.
atom_numbers (int32) – the number of atoms n.
not_first_time (int32) – whether to construct the neighbor list first time or not.
nxy (int32) – the total number of grids divided in xy plane.
excluded_atom_numbers (int32) – the total atom numbers in the excluded list E.
cutoff_square (float32) – the cutoff square distance for short-range force calculation.
half_skin_square (float32) – the maximum square value of the distance atom allowed to move between two updates.
cutoff_with_skin (float32) – cutoff + skin, indicates the radius of the neighbor list for each atom.
half_cutoff_with_skin (float32) – cutoff_with_skin/2.
cutoff_with_skin_square (float32) – the square value of cutoff_with_skin.
refresh_interval (int32) – the number of iteration steps between two updates of neighbor list. Default: 20.
cutoff (float32) – the cutoff distance for short-range force calculation. Default: 10.0.
skin (float32) – the maximum value of the distance atom allowed to move. Default: 2.0.
max_atom_in_grid_numbers (int32) – the maximum number of atoms in one grid k. Default: 64.
max_neighbor_numbers (int32) – The maximum number of neighbors m. Default: 800.
forced_update (int32) – the flag that decides whether to force an update. Default: 0.
forced_check (int32) – the flag that decides whether to force an check. Default: 0.
- Inputs:
atom_numbers_in_grid_bucket (Tensor) - The number of atoms in each grid bucket. The data type is int32 and the shape is \((G,)\).
bucket (Tensor) - (Tensor) - The atom indices in each grid bucket. The data type is int32 and the shape is \((G, k)\).
crd (Tensor) - The coordinates of each atom. The data type is float32 and the shape is \((n, 3)\).
box_length (Tensor) - The box length of the simulation box. The data type is float32 and the shape is \((3,)\).
grid_n (Tensor) - The number of grids divided of 3 dimensions of the simulation box. The data type is int32 and the shape is \((3,)\).
grid_length_inverse (Tensor) - The inverse value of grid length. The data type is float32 and the shape is \((3,)\).
atom_in_grid_serial (Tensor) - The grid index for each atom. The data type is int32 and the shape is \((n,)\).
old_crd (Tensor) - The coordinates before update of each atom. The data type is float32 and the shape is \((n, 3)\).
crd_to_uint_crd_cof (Tensor) - The scale factor between the unsigned int coordinate and the real one. The data type is float32 and the shape is \((3,)\).
uint_crd (Tensor) - The unsigned int coordinates value fo each atom. The data type is unsigned int32 and the shape is \((n, 3)\).
gpointer (Tensor) - The nearest neighbor grids (including self) of each grid. The data type is int32 and the shape is \((G, 125)\).
nl_atom_numbers (Tensor) - The number of atoms in neighbor list of each atom. The data type is int32 and the shape is \((n,)\).
nl_atom_serial (Tensor) - The indices of atoms in neighbor list of each atom. The data type is int32 and the shape is \((n, m)\).
uint_dr_to_dr_cof (Tensor) - The scale factor. The data type is float32 and the shape is \((3,)\).
excluded_list_start (Tensor) - The start excluded index in excluded list for each atom. The data type is int32 and the shape is \((n,)\).
excluded_list (Tensor) - The contiguous join of excluded list of each atom. The data type is int32 and the shape is \((E,)\).
excluded_numbers (Tensor) - The number of atom excluded in excluded list for each atom. The data type is int32 and the shape is \((n,)\).
need_refresh_flag (Tensor) - Whether the neighbor list of each atom need update or not. The data type is int32 and the shape is \((1,)\).
refresh_count (Union[Tensor, Scalar]) - Count how many iteration steps have passed since last update. The data type is int32 and the shape is \((1,)\) or \(()\).
- Outputs:
res (Tensor) - The return value after updating successfully. The data type is float32 and the shape is \((1,)\).
- Supported Platforms:
GPU