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