Unsure about the parameters of your grains in a computer simulation? Use Iterative Bayesian Filtering to learn parameter distributions from limited data. Is your model running slowly? Speed up your simulations with machine-learning surrogates. All these features are integrated within GrainLearning.


Cite this software

What GrainLearning can do for you

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 inverse analyses or 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.

If you use GrainLearning, please cite this paper.
If you want to know more about how the method works, the following papers can be interesting:

  • H. Cheng, T. Shuku, K. Thoeni, P. Tempone, S. Luding, V. Magnanimo. An iterative Bayesian filtering framework for fast and automated calibration of DEM models. Comput. Methods Appl. Mech. Eng., 350 (2019), pp. 268-294, 10.1016/j.cma.2019.01.027
  • P. Hartmann, H. Cheng, K. Thoeni. Performance study of iterative Bayesian filtering to develop an efficient calibration framework for DEM. Computers and Geotechnics 141, 104491, 10.1016/j.compgeo.2021.104491
Programming languages
  • Jupyter Notebook 84%
  • Python 15%
  • PureBasic 1%
</>Source code

Participating organisations

Netherlands eScience Center
University of Twente

Reference papers



Hongyang Cheng
Principal investigator
University of Twente
Aron Jansen
Aron Jansen
eScience Research Engineer
Netherlands eScience Center

Related projects


An artificial brain for interpreting and accelerating physics-based simulations of granular materials

Updated 1 week ago