TY - JOUR
T1 - YADE - An extensible framework for the interactive simulation of multiscale, multiphase, and multiphysics particulate systems
AU - Angelidakis, Vasileios
AU - Boschi, Katia
AU - Brzeziński, Karol
AU - Caulk, Robert A.
AU - Chareyre, Bruno
AU - del Valle, Carlos Andrés
AU - Duriez, Jérôme
AU - Gladky, Anton
AU - van der Haven, Dingeman L.H.
AU - Kozicki, Janek
AU - Pekmezi, Gerald
AU - Scholtès, Luc
AU - Thoeni, Klaus
PY - 2024/7/5
Y1 - 2024/7/5
N2 - This contribution presents the key elements of YADE, an extensible open-source framework for dynamic simulations. During the past 19 years, YADE has evolved from “Yet Another Dynamic Engine” to a versatile multiscale and multiphysics solver, counting a large, active, and growing community of users and developers. The computationally intense parts of the source code are written in C++, using flexible object models that allow for easy implementation of new features. The source code is wrapped in Python, equipping the software with an interactive kernel used for rapid and concise scene construction, simulation control, post-processing, and debugging. The project, including documentation and examples, is hosted on https://yade-dem.org, while the source code is freely available on GitLab. Over the last decade, YADE has expanded in terms of capabilities thanks to the contribution of many developers from different fields of expertise, including soil and rock mechanics, chemical engineering, physics, bulk material handling, and mineral processing. The rapid growth of YADE can be attributed to (1) the careful and robust design of the framework core, (2) a continuous integration pipeline with fully embedded thorough tests which are executed upon each merge request, ensuring stable compilation for various operating systems, and (3) user-friendliness, facilitated by the Python interface, detailed documentation, and rigorous user support. In this paper, we review the main features of YADE, highlighting its versatility in terms of applications, its flexibility in terms of code development, as well as recent improvements in terms of computational efficiency.
Program summary
Program Title: YADE - Yet Another Dynamic Engine
CPC Library link to program files:
https://doi.org/10.17632/n4f5fw97rd.1
Developer's repository link:
https://gitlab.com/yade-dev/trunk
Licensing provisions: GNU General Public License 2
Programming language: C++, Python
Nature of problem: Numerical simulation of many-particle systems requires accurate models for particle-to-particle interactions, efficient contact detection between objects of various shapes, and robust time integration. In addition, the flow of fluids, thermal effects, as well as other coupled problems in the presence of particles are found in many fundamental and practical applications and they need dedicated computational tools. YADE provides a computational framework to perform such simulations using the discrete element method and multiple extensions of it.
Solution method:
YADE simulates particulate systems using the Discrete Element Method (DEM) in a flexible platform combining C++ and Python. It provides a large variety of shape and interaction models, an explicit time-integration scheme, and many post-processing tools. YADE features dedicated solvers for both fluid and heat fluxes at the pore scale, and it supports couplings with third-party software such as Escript (finite element method) and OpenFOAM (finite volumes).
AB - This contribution presents the key elements of YADE, an extensible open-source framework for dynamic simulations. During the past 19 years, YADE has evolved from “Yet Another Dynamic Engine” to a versatile multiscale and multiphysics solver, counting a large, active, and growing community of users and developers. The computationally intense parts of the source code are written in C++, using flexible object models that allow for easy implementation of new features. The source code is wrapped in Python, equipping the software with an interactive kernel used for rapid and concise scene construction, simulation control, post-processing, and debugging. The project, including documentation and examples, is hosted on https://yade-dem.org, while the source code is freely available on GitLab. Over the last decade, YADE has expanded in terms of capabilities thanks to the contribution of many developers from different fields of expertise, including soil and rock mechanics, chemical engineering, physics, bulk material handling, and mineral processing. The rapid growth of YADE can be attributed to (1) the careful and robust design of the framework core, (2) a continuous integration pipeline with fully embedded thorough tests which are executed upon each merge request, ensuring stable compilation for various operating systems, and (3) user-friendliness, facilitated by the Python interface, detailed documentation, and rigorous user support. In this paper, we review the main features of YADE, highlighting its versatility in terms of applications, its flexibility in terms of code development, as well as recent improvements in terms of computational efficiency.
Program summary
Program Title: YADE - Yet Another Dynamic Engine
CPC Library link to program files:
https://doi.org/10.17632/n4f5fw97rd.1
Developer's repository link:
https://gitlab.com/yade-dev/trunk
Licensing provisions: GNU General Public License 2
Programming language: C++, Python
Nature of problem: Numerical simulation of many-particle systems requires accurate models for particle-to-particle interactions, efficient contact detection between objects of various shapes, and robust time integration. In addition, the flow of fluids, thermal effects, as well as other coupled problems in the presence of particles are found in many fundamental and practical applications and they need dedicated computational tools. YADE provides a computational framework to perform such simulations using the discrete element method and multiple extensions of it.
Solution method:
YADE simulates particulate systems using the Discrete Element Method (DEM) in a flexible platform combining C++ and Python. It provides a large variety of shape and interaction models, an explicit time-integration scheme, and many post-processing tools. YADE features dedicated solvers for both fluid and heat fluxes at the pore scale, and it supports couplings with third-party software such as Escript (finite element method) and OpenFOAM (finite volumes).
KW - Discrete element method (DEM)
KW - Open-source software
KW - Granular materials
KW - Non-spherical particles
KW - Coupled methods
KW - Parallel computing
U2 - 10.1016/j.cpc.2024.109293
DO - 10.1016/j.cpc.2024.109293
M3 - Article
SN - 0010-4655
VL - 304
JO - Computer Physics Communications
JF - Computer Physics Communications
M1 - 109293
ER -