Python API reference

class vesin.NeighborList(cutoff: float, full_list: bool, sorted: bool = False)

A neighbor list calculator.

Parameters:
  • cutoff – spherical cutoff for this neighbor list

  • full_list – should we return each pair twice (as i-j and j-i) or only once

  • sorted – Should vesin sort the returned pairs in lexicographic order (sorting both i and then j at constant i)?

compute(points: numpy.typing.ArrayLike, box: numpy.typing.ArrayLike, periodic: bool, quantities: str = 'ij', copy=True) List[ndarray]

Compute the neighbor list for the system defined by positions, box, and periodic; returning the requested quantities.

quantities can contain any combination of the following values:

  • "i" to get the index of the first point in the pair

  • "j" to get the index of the second point in the pair

  • "P" to get the indexes of the two points in the pair simultaneously

  • "S" to get the periodic shift of the pair

  • "d" to get the distance between points in the pair

  • "D" to get the distance vector between points in the pair

Parameters:
  • points – positions of all points in the system (this can be anything that can be converted to a numpy array)

  • box – bounding box of the system (this can be anything that can be converted to a numpy array)

  • periodic – should we use periodic boundary conditions?

  • quantities – quantities to return, defaults to “ij”

  • copy – should we copy the returned quantities, defaults to True. Setting this to False might be a bit faster, but the returned arrays are view inside this class, and will be invalidated whenever this class is garbage collected or used to run a new calculation.

Returns:

tuple of arrays as indicated by quantities.

vesin.ase_neighbor_list(quantities, a, cutoff, self_interaction=False, max_nbins=0)

This is a thin wrapper around NeighborList, providing the same API as ase.neighborlist.neighbor_list().

It is intended as a drop-in replacement for the ASE function, but only supports a subset of the functionality. Notably, the following is not supported:

  • self_interaction=True

  • ase.Atoms with mixed periodic boundary conditions

  • giving cutoff as a dictionary

Parameters:
  • quantities – quantities to output from the neighbor list. Supported are "i", "j", "d", "D", and "S" with the same meaning as in ASE.

  • aase.Atoms instance

  • cutoff – cutoff radius for the neighbor list

  • self_interaction – Should an atom be considered its own neighbor? Default: False

  • max_nbins – for ASE compatibility, ignored by this implementation