mindspore.ops.NeighborListUpdate

class mindspore.ops.NeighborListUpdate(*args, **kwargs)[source]

Update (or construct if first time) the Verlet neighbor list for the calculation of short-ranged force. Assume the number of atoms is n, the number of grids divided is G, the maximum number of atoms in one grid is m, the maximum number of atoms in single atom’s neighbor list is L, and the number of total atom in excluded list is E.

Parameters
  • grid_numbers (int32) – the total number of grids divided.

  • 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.

  • cutoff (float32) – the cutoff distance for short-range force calculation.

  • skin (float32) – the overflow value of cutoff to maintain a neighbor list.

  • cutoff_square (float32) – the suqare value of cutoff.

  • half_skin_square (float32) – skin*skin/4, indicates 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.

  • max_atom_in_grid_numbers (int32) – the maximum number of atoms in one grid.

Inputs:
  • atom_numbers_in_grid_bucket (Tensor, int32) - [G,], the number of atoms in each grid bucket.

  • bucket (Tensor, int32) - (Tensor,int32) - [G, m], the atom indices in each grid bucket.

  • crd (Tensor, float32) - [n,], the coordinates of each atom.

  • box_length (Tensor, float32) - [3,], the length of 3 dimensions of the simulation box.

  • grid_n (Tensor, int32) - [3,], the number of grids divided of 3 dimensions of the simulation box.

  • grid_length_inverse (float32) - the inverse value of grid length.

  • atom_in_grid_serial (Tensor, int32) - [n,], the grid index for each atom.

  • old_crd (Tensor, float32) - [n, 3], the coordinates before update of each atom.

  • crd_to_uint_crd_cof (Tensor, float32) - [3,], the scale factor between the unsigned int value and the real space coordinates.

  • uint_crd (Tensor, uint32) - [n, 3], the unsigned int coordinates value fo each atom.

  • gpointer (Tensor, int32) - [G, 125], the 125 nearest neighbor grids (including self) of each grid. G is the number of nearest neighbor grids.

  • nl_atom_numbers (Tensor, int32) - [n,], the number of atoms in neighbor list of each atom.

  • nl_atom_serial (Tensor, int32) - [n, L], the indices of atoms in neighbor list of each atom.

  • uint_dr_to_dr_cof (Tensor, float32) - [3,], the scale factor between the real space coordinates and the unsigned int value.

  • excluded_list_start (Tensor, int32) - [n,], the start excluded index in excluded list for each atom.

  • excluded_numbers (Tensor, int32) - [n,], the number of atom excluded in excluded list for each atom.

  • excluded_list (Tensor, int32) - [E,], the contiguous join of excluded list of each atom.

  • need_refresh_flag (Tensor, int32) - [n,], whether the neighbor list of each atom need update or not.

  • refresh_count (Tensor, int32) - [1,], count how many iteration steps have passed since last update.

Outputs:
  • res (float32)

Supported Platforms:

GPU