MercuryDPM  Alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Guidelines for Users and Developers

This guide is intended to make you familiar with the coding structure of MercuryDPM. We discuss two levels of code development:


The kernel contains general code that is developed to be used in many applications, e.g. the definition of a species, particle, wall, boundary, or the class Mercury3D, which is used to define the interactions between the different objects in a DPM code. This code is mostly developed in classes. The corresponding source files are stored in the Kernel/ directory.

A driver uses the classes defined in the kernel to create a concrete simulation, e.g.a rotating drum, a vibrated bed, or the flow over a bed. It typically consists of a single cpp file in the Drivers/ directory.

We refer to a person writing specific application/driver code in MercuryDPM as user, and to a person developing kernel features as a developer. Everyone can become a user by downloading the code from; once you have some experience in using the code, you are welcome to join the developer team; just contact us here: