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 toolbox for computer simulations of granular materials. The software is primarily used to infer model parameter distributions from observation or reference data, also known as data assimilation. Implemented in Python, GrainLearning can be loaded into a Python environment to process your simulation and observation data, or used as an independent tool where simulations are run separately, e.g., from the command line. A unique feature of GrainLearning, developed with the Netherlands eScience Center, is its capability to train and integrate machine learning surrogates with physics-based models, enabling efficient Bayesian uncertainty quantification and optimization.