Bond forces on DL_MESO_DPD (single GPU)

This module add the bond forces to the single GPU version of DL_MESO (DPD). These take in account in the interactions between different chemical species which allow to create complex molecules more representative of real systems. An example of an application is the ternary solution where a primary component is bonds interacting with the other two phases.

Purpose of Module

The algorithm used is the same of the DL_MESO serial version, but of course adapted for SIMT (Single Instruction Multiple Threads) architecture. The module includes also the angle and dihedral forces, all divived according a classical orthogonal domain decomposition.

Considering that in a real case the number of bounds is usually much lower than the total number of particles, different CUDA streams for the three kernels (k_findBondForce, k_findAngleForce and k_findDihedralForce) are used. This allow to launch them in parallel to improve the performance of the overall simulation.


If the module is an ingredient for a more general workflow (e.g. the module was the necessary foundation for later code; the module is part of a group of modules that will be used to calculate certain property or have certain application, etc.) mention this, and point to the place where you specify the applications of the more general workflow (that could be in another module, in another section of this repository, an application’s website, etc.).


If you are a post-doc who works in E-CAM, an obvious application for the module (or for the group of modules that this one is part of) is your pilot project. In this case, you could point to the pilot project page on the main website (and you must ensure that this module is linked there).

Background Information

This module is part of the DL_MESO_DPD code. Full support and documentation is available at:

To download the DL_MESO_DPD code you need to register at Please contact Dr. Micheal Seaton at Daresbury Laboratory (STFC) for further details.

Building and Testing

The DL_MESO code is developed using git version control. Currently there are a single GPU version and a multi GPU version is under a two different branches. After downloading the code, checkout the single_GPU_version branch and look into the DPD/gpu_version folder, i.e:

git clone DL_MESO_repository_path
cd dl_meso
git checkout single_GPU_version
cd /DPD/gpu_version
make all

To compile and run the code you need to have installed the CUDA-toolkit and have a CUDA enabled GPU device (see

To run the case, compile the code using the make all command from the bin directory, copy the FIELD and CONTROL files from the gpu_version/test/Solvent folder in this directory and run ./dpd_gpu.exe.

Source Code

This module has been merged into DL_MESO code. It is composed of the following commits (you need to be register as developer):

The DL_MESO code is developed using git version control. Currently the GPU version is under a branch named “add_gpu_version”.