TorchScript API reference

class vesin.torch.NeighborList(cutoff: float, full_list: bool)

A neighbor list calculator that can be used with TorchScript.

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

compute(points: Tensor, box: Tensor, periodic: bool, quantities: str, copy: bool = True) List[Tensor]

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

  • box – bounding box of the system

  • 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 tensors are view inside this class, and will be invalidated whenever this class is garbage collected or used to run a new calculation.

Returns:

list of torch.Tensor as indicated by quantities.

TorchScript API reference (C++)

using vesin_torch::NeighborList = torch::intrusive_ptr<NeighborListHolder>

NeighborListHolder should be manipulated through a torch::intrusive_ptr

class NeighborListHolder : public torch::CustomClassHolder

Neighbor list calculator compatible with TorchScript.

Public Functions

NeighborListHolder(double cutoff, bool full_list, bool sorted = false)

Create a new calculator with the given cutoff.

Parameters:
  • full_list – whether pairs should be included twice in the output (both as i-j and j-i) or only once

  • sorted – whether pairs should be sorted in the output

~NeighborListHolder()
std::vector<torch::Tensor> compute(torch::Tensor points, torch::Tensor box, bool periodic, std::string quantities, bool copy = true)

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

  • box – bounding box of the system

  • 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 tensors are view inside this class, and will be invalidated whenever this class is garbage collected or used to run a new calculation.

Returns:

a list of torch::Tensor as indicated by quantities.