• A C++ compiler


  • Doxygen and GraphViz (Dot)

  • Doxygen is required to build a local copy of the documentation and GraphViz to create the uml diagrams for the documentation.


Currently, there are two ways to obtain a copy of MercuryDPM, by download or svn-access:

Option 1) Download

  1. Click the following link to download MercuryDPM as a compressed tar file: MercuryDPM_0.9.tar.gz (released May 20, 2013).

  2. Decompress and untar the code (tar -zxf MercuryDPM.tar.gz) in a directory of your choice.

Option 2) via our svn servers

Type in a terminal the following command

svn checkout MercurySource


  1. Once you have got the code, cd into the MD/DRIVERS/ directory and type

make doc

You should get lots of output.

  1. Now go to MD/Documentation/html/ and load index.html into your web browser, by typing

firefox index.html

or otherwise. This will give you this documentation, which you are currently reading, it is not complete, as we are not fully ready to go open source, but there is some description of what is in each directory, including the scripts, which you may find useful. The main reason for doing this is it gives you the a local update version of the documentation. Please now swap to folling the instructions in this version.

Getting a feel for the code

  1. Go to MD/ and type

ln -s sc ../scripts

This will create a link to the script files, which are needed for the self testing to work.

  1. Go to MD/DRIVERS/ and type

make selftest

This will run the tests. If any fail let me know then there is a problem on your computer.

  1. Go to the directory MD/DRIVERS/Simple_MD/run/ then type

sc/quick_run free_fall

This will run a simulation of a single particle falling under gravity. The output from this code will appear in a directory called free_fall.

  1. To visualise the results of the code, type


This should launch Stefan Luding's MD visualisation program. You may get an error message here if so when me know and I will get you a version for your operating system.

  1. To compile, run, and visualise another problem, type

sc/quick_run free_cooling


This will display a short animations of 100 particles moving under gravity bouncing off a wall and interacting inelastically.

  1. Please now follow the instructions to sign up for the mailing list, in order to receive updates about the code.

You should notice this code runs twice, once using the HGRID and once not. The use of the HGRID should be a lot faster, this is the third party code I said that is used to make the code go faster. I would base any code you write on the HGRID version of this code. Have a look at free_cooling.cpp. Gravity defaults to 9.8 in the z-direction can this can changed my setting the gravity vector see documentation.