Compute a neighbor list.
The data is returned in a VesinNeighborList. For an initial call, the
VesinNeighborList should be default-initalized. The VesinNeighborList
can be re-used across calls to this functions to re-use memory allocations,
and once it is no longer needed, users should call vesin_free to
release the corresponding memory.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=c_double), | intent(in) | :: | points(3,n_points) |
Positions of all points in the system; |
||
| integer(kind=c_size_t), | value | :: | n_points |
Number of elements in the |
||
| real(kind=c_double), | intent(in) | :: | box(3,3) |
Bounding box for the system. If the system is non-periodic, this is ignored. This should contain the three vectors of the bounding box, one vector per column of the matrix. |
||
| logical(kind=c_bool) | :: | periodic(3) |
Is the system using periodic boundary conditions? This should be an array of three booleans, one for each dimension. |
|||
| integer(kind=c_int), | value | :: | device |
Device where the |
||
| type(VesinOptions), | value | :: | options |
Options for the calculation |
||
| type(VesinNeighborList) | :: | neighbors |
A |
|||
| type(c_ptr), | intent(in) | :: | error_message |
A |
Non-zero integer upon error; zero otherwise.