rdfpy is a Python module for fast computation of 2D and 3D radial distribution functions.
$ pip install rdfpyimport numpy as np
from rdfpy import rdf
# create random particle coordinates in a 20x20x20 box
coords = np.random.uniform(0.0, 20.0, size=(2500, 3))  
# compute radial distribution function with step size = 0.1
g_r, radii = rdf(coords, dr=0.1)You can find a more detailed example in the Documentation.
Note: In order for rdfpy to work correctly, your particles should spatially be in a cuboidal box, where the entire box is filled with particles.
rdfpy achieves significant speed-up due to:
- Fast nearest-neighbor look-up: a k-d tree is utilized when counting the number of particles as a function of distance from an origin particle.
 - Multiprocessing: computation of the particle count histogram is parallelized across multiple cores, with each core sharing the aforementioned k-d tree.
 
rdfpy was developed by Batuhan Yildirim under the supervision of Prof. Jacqueline M. Cole.
If you use rdfpy in your work, please cite:
@software{rdfpy,
  author       = {Batuhan Yildirim and
                  Hamish Galloway Brown},
  title        = {by256/rdfpy: rdfpy-v1.0.0},
  month        = mar,
  year         = 2021,
  publisher    = {Zenodo},
  version      = {v1.0.0},
  doi          = {10.5281/zenodo.4625675},
  url          = {https://doi.org/10.5281/zenodo.4625675}
}
This project was financially supported by the Science and Technology Facilities Council (STFC) and the Royal Academy of Engineering (RCSRF1819\7\10).
