mindspore.ops.NeighborListUpdate

class mindspore.ops.NeighborListUpdate(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)[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 k.

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 (Tensor) - 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