All notable changes to vesin are documented here, following the keep a changelog format. This project follows Semantic Versioning.
Version 0.5.3 - 2026-03-10
- We now use the same cudart library from Python and C++ when using torch
tensors with
vesin.NeighborList.
Version 0.5.2 - 2026-02-26
- The results are now returned with the same dtype as the input even when we return an empty neighbor list
Version 0.5.1 - 2026-02-24
- Added
vesin.metatomic.compute_requested_neighbors_from_optionsto allow computing all neighbor lists requested by a metatomic model in a TorchScript-compatible way.
- Users can control how much memory is allocated for the CUDA neighbor list with
the
VESIN_CUDA_MAX_PAIRS_PER_POINTenvironment variable. - We now also try to load
libcudart.so.{11,12,13}if the code can not findlibcudart.soon Linux.
Version 0.5.0 - 2026-02-19
- vesin can now compute neighbor lists on GPUs using CUDA. This is automatically
integrated in vesin-torch, and can be used with CuPy in the
vesinpython package. vesin.NeighborListnow accepts either numpy arrays, cupy arrays or torch tensor for thepoints,box, andperiodicparameters.
Version 0.4.2 - 2025-11-06
- arbitrary box orientations are now supported with mixed PBC (#88)
Version 0.4.1 - 2025-11-03
vesin-torchwheels on PyPI now support PyTorch v2.9
Version 0.4.0 - 2025-10-27
- vesin now offers a Fortran API, you can enable it by giving the
-DVESIN_FORTRAN=ONoption to cmake (#50) - the single file build now contains a comment mentionning which version of vesin the file corresponds to.
- The
periodicargument tovesin_neighbors()in C and C++,NeighborList.compute()in all other languages can now be set separatly for each box dimension, allowing mixed periodic and non-periodic boundary conditions. VesinDevicein C and C++ is now a struct containing both a device kind (i.e. CPU, CUDA, etc.) and a device index.