Packing3D.jl: An open-source analytical framework for computing packing density and mixing indices using partial spherical volumes

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.jl, an open-source Julia package providing analytic, partial-volume calculations for spheres intersecting Cartesian and cylindrical meshes. We derive closed-form solutions for single, double and triple spherical-cap intersections, plus sphere-cylinder overlaps. 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-centred cubic lattices and via boundary-shift continuity tests. Packing3D.jl converges exactly to theoretical lattice densities, eliminates discontinuities at sub-particle resolution, and scales linearly with particle count. Memory usage remains modest (40 B per particle, 48 B per cell). Packing3D.jl provides researchers with continuous, reproducible volume-fraction fields and robust mixing indices at high performance, facilitating sensitivity analyses and optimisation in granular process engineering. Program Title: Packing3D.jl CPC Library link to program files: https://doi.org/10.17632/srdxk6f77w.1 Developer's repository link: https://github.com/fjbarter/Packing3D.jl Licensing provisions: MIT Programming language: Julia Nature of problem: Accuracy and continuity of packing density calculation by counting centres Solution method: Derive and implement a fast algorithm for analytically calculating particle volumes intersected by planes, providing a continuous and much more accurate measurement of packing density • Eliminates centre-count jumps; exact SC/FCC densities; continuity verified. • Closed-form single/double/triple cap & sphere-cylinder volumes for smooth packing. • Linear computational scaling enables rapid processing of million-particle datasets. • Lacey and other mixing indices reuse kernel; remain sub-second on realistic datasets. • Open-source Julia; easy-to-use DEM post-processing.

Authors

Institutions

Publication Details

Journal
Computer Physics Communications
Published
2025-09-16
DOI
https://doi.org/10.1016/j.cpc.2025.109863
Citations
1
Primary Topic
3D Shape Modeling and Analysis
Type
article
Field-Weighted Citation Impact
1.33
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Packing3D.jl: An open-source analytical framework for computing packing density and mixing indices using partial spherical volumes

Kit Windows‐Yule, Freddie Barter
1 citations
Computer Physics Communications
3D Shape Modeling and Analysis
1.33
article

Packing3D.jl: An open-source analytical framework for computing packing density and mixing indices using partial spherical volumes

Kit Windows‐Yule, Freddie Barter
article en
1 citations

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.jl, an open-source Julia package providing analytic, partial-volume calculations for spheres intersecting Cartesian and cylindrical meshes. We derive closed-form solutions for single, double and triple spherical-cap intersections, plus sphere-cylinder overlaps. 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-centred cubic lattices and via boundary-shift continuity tests. Packing3D.jl converges exactly to theoretical lattice densities, eliminates discontinuities at sub-particle resolution, and scales linearly with particle count. Memory usage remains modest (40 B per particle, 48 B per cell). Packing3D.jl provides researchers with continuous, reproducible volume-fraction fields and robust mixing indices at high performance, facilitating sensitivity analyses and optimisation in granular process engineering. Program Title: Packing3D.jl CPC Library link to program files: https://doi.org/10.17632/srdxk6f77w.1 Developer's repository link: https://github.com/fjbarter/Packing3D.jl Licensing provisions: MIT Programming language: Julia Nature of problem: Accuracy and continuity of packing density calculation by counting centres Solution method: Derive and implement a fast algorithm for analytically calculating particle volumes intersected by planes, providing a continuous and much more accurate measurement of packing density • Eliminates centre-count jumps; exact SC/FCC densities; continuity verified. • Closed-form single/double/triple cap & sphere-cylinder volumes for smooth packing. • Linear computational scaling enables rapid processing of million-particle datasets. • Lacey and other mixing indices reuse kernel; remain sub-second on realistic datasets. • Open-source Julia; easy-to-use DEM post-processing.

Computer Physics CommunicationsVol. 317
University of Birmingham (GB)
Openalex Percentile: Top 18%
3D Shape Modeling and Analysis
1.33
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.