(729b) Freud: Powerful Particle Simulation Analysis in Python

Authors: 
Ramasubramani, V., University of Michigan
Dice, B., University of Michigan
Harper, E. S., University of Michigan
Spellings, M., University of Michigan
Anderson, J. A., University of Michigan
Glotzer, S. C., University of Michigan
The evolution of increasingly sophisticated particle simulations toolkits has partially shifted the bottleneck from simulation to analysis. The freud library aims to ameliorate this bottleneck by providing a simple, NumPy-based Python interface to efficient, highly parallel analysis methods written in C++. The core architecture of freud is designed around classes encapsulating the functionality for efficiently finding neighbors in periodic simulation boxes. Analyses in freud are generally built around these neighbor-finding facilities, which, in conjunction with the use of NumPy arrays as the primary data structure, enables easy application of any analyses to a particular simulated system. The package also provides access to these core features in Python to facilitate fast-paced development and testing of novel analyses, encouraging a usage pattern where methods are developed and validated in Python before translation into fast C++ code. By completely eschewing any dependence on specific file formats or data structures, freud requires minimal configuration to integrate into workflows involving almost any simulation toolkit, making it a powerful tool that can be used to analyze a wide array of molecular simulations.