Packing3D: An Open-Source Analytical Framework for Computing Packing Density and Mixing Indices Using Partial Spherical Volumes
Abstract: Accurate quantification of local packing density and mixing in simulations of particulate systems is essential for many industrial applications. Traditional methods which simply count the number of particle centres within a given volume of space (cell) introduce discontinuities at cell boundaries, leading to unreliable measurement of packing density. We introduce Packing3D, an open-source Julia package providing analytic, partial-volume calculations for spheres intersecting Cartesian and cylindrical meshes. Our goals were to (1) eliminate boundary-artifact jumps, (2) maintain high throughput on large datasets, and (3) deliver standard mixing metrics via a unified API. We derive closed-form solutions for single, double and triple spherical-cap intersections, plus sphere-cylinder overlaps. A short-circuit bounding-sphere test shortens computations: fully inside or outside spheres are handled in $\mathcal{O}(1)$ time, and only near-boundary spheres invoke the analytic kernels. We implement efficient mesh-generation routines, principal-cell indexing, and data-splitting functions for time-series analyses. Performance and accuracy were validated against simple cubic and face-centered cubic lattices and via boundary-shift continuity tests. Packing3D converges exactly to theoretical lattice densities, eliminates discontinuities at sub-particle resolution, and processes up to $108$ sphere-cell intersections per second in single-threaded Julia with linear scaling in particle count. Memory usage remains modest (40 B per particle, 48 B per cell). Packing3D provides researchers with continuous, reproducible volume-fraction fields and robust mixing indices at high performance, facilitating sensitivity analyses and optimisation in granular process engineering. The package is freely available at https://github.com/fjbarter/Packing3D.jl
Paper Prompts
Sign up for free to create and run prompts on this paper using GPT-5.
Top Community Prompts
Collections
Sign up for free to add this paper to one or more collections.