Community Software

DEM simulation and post-processing tools supported by CCC-ParaSolS

Open-source DEM codes

CCC-ParaSolS will prioritise three open-source DEM codes: LAMMPS, MercuryDPM and YADE. This already represents a substantial rationalisation. These three codes have been selected because of their popularity and scalability: all are MPI-parallelised; YADE and LAMMPS also have GPU capabilities.

The various features of these codes are summarised below.

What is DEM?

The Discrete Element Method (DEM) simulates the motion of particles by applying forces and torques that arise either from external body forces, (e.g., gravity, magnetic fields, etc…) or from particle interaction laws (e.g., Hookean or Hertzian normal contact models).

DEM is closely related to Molecular Dynamics (MD). One major difference is the scale of application: MD is applied to simulate atoms or molecules. By contrast, CCC-ParaSolS focuses on systems of particles exceeding 1 micron in size.

LAMMPS

LAMMPS (Thompson et al., 2022, https://doi.org/10.1016/j.cpc.2021.108171) stands for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has the largest userbase among the three prioritised codes, including molecular dynamics users, and can exploit the broadest range of hardware through the KOKKOS library.

LAMMPS is a classical molecular dynamics simulation code focusing on materials modelling. It was designed to run efficiently on parallel computers and to be easy to extend and modify and was originally developed at Sandia National Laboratories, a US Department of Energy facility.

LAMMPS has a large user community and now includes contributions from many research groups and individuals from many institutions. Most of the funding for LAMMPS has come from the US Department of Energy (DOE).


LAMMPS is open-source software distributed under the terms of the GNU Public License Version 2 (GPLv2).

LAMMPS User Manual

MercuryDPM

MercuryDPM is an open-source code for discrete particle simulations. The code has been developed extensively for granular applications, but could be adapted to include long-range interactions as well.

MercuryDPM is a versatile, object-orientated C++ code which is easy to understand. It is regularly tested on several Linux distributions, Mac OS and Windows 10. To avoid breaking already existing code, a suite of over 260 self-tests has been developed, testing each feature of the code.

MercuryDPM (Weinhart et al., 2020, https://doi.org/10.1016/j.cpc.2019.107129) is best for simulating granular systems with complex geometries efficiently.


MercuryDPM is open-source software distributed under the terms of the 3-Clause BSD License.

Mercury Reference Manual

YADE

YADE is an extensible open-source framework for dynamic simulations using the Discrete Element Method. The computationally intensive parts are written in C++, using a flexible object model that allows for easy implementation of new features. The source code is wrapped in Python, facilitating rapid and concise scene construction, interactive simulation control, postprocessing and debugging, while computational efficiency is supported by existing OpenMP and MPI parallelisation strategies.

YADE features extensive documentation, an active Q&A forum for user and developer support, and thorough unit tests and checks which ensure stable compilation and simulation accuracy, as the software keeps growing.

YADE (Angelidakis et al., 2024, https://doi.org/10.1016/j.cpc.2024.109293) has the broadest set of particle shape descriptors among the three prioritised codes, it features an extensive list of available interaction models, and the most user-friendly interface.


YADE is open-source software distributed under the terms of the GNU Public License Version 2 (GPLv2).

YADE User Manual

Back to top