  N-body simulations and trajectory analysis rely on the calculation of
attributes that depend on pairwise particle distances within a cutoff.
Interparticle potential energies, forces, distribution functions, neighbor
lists, and distance-dependent distributions, for example, must be calculated.
Cell lists are widely used to avoid computing distances outside the cutoff.
However, efficient cell list implementations are difficult to customize. Here,
we provide a fast and parallel implementation of cell lists in Julia that
allows the mapping of custom functions dependent on particle positions in 2 or
3 dimensions. Arbitrary periodic boundary conditions are supported. Automatic
differentiation and unit propagation can be used. The implementation provides a
framework for the development of new analysis tools and simulations with custom
potentials. The performance of resulting computations is comparable to
state-of-the-art implementations of neighbor list algorithms and cell lists,
available in specialized software. Examples are provided for the computation of
potential energies, forces, distribution of pairwise velocities, neighbor lists
and other typical calculations in molecular and astrophysical simulations. The
Julia package is freely available at http://m3g.github.io/CellListMap.jl.
Interfacing with Python and R with minimal overhead is possible.
