How to keep dikes safe with rising sea levels? Why are ripples formed in sand? What can we prepare for landing on Mars? At the center of these questions is the understanding of how the grains, as a self-organizing material, collide, flow, or get jammed and compressed. State-of-the-art algorithms allow for simulating millions of grains individually in a computer. However, these simulations can take very long, and the big data about particle motion is very difficult to interpret and generalize, say from a simulation of avalanches to free-standing sandcastles.
GrainLearning is a Bayesian uncertainty quantification and propagation toolbox for computer simulations of granular materials. The software is primarily used to infer and quantify parameter uncertainties in computational models of granular materials from observation data, which is also known as inverse analyses or data assimilation. Implemented in Python, GrainLearning can be loaded into a Python environment to process the simulation and observation data, or alternatively, as an independent tool where simulation runs are done separately, e.g., via a shell script.