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:

For more information, see the FAQ for developers,

Also take a look at the section Test.

Definitions

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 http://www.mercurydpm.org/; once you have some experience in using the code, you are welcome to join the developer team; just contact us here: http://mercurydpm.org/development/how-to-join-the-developers.