DL_MG is a parallel (MPI+OpenMP) 3D geometric high order finite difference multigrid solver for Poisson and Poisson-Boltzmann Equations written in Fortran.

License: BSD 3-Clause License Copyright (c) 2016, Chris-Kriton Skylaris and the Numerical Algorithms Group Ltd. All rights reserved.

Authors: Lucian Anton, James Womack and Jacek Dziedzic

Details of the algorithm and subroutines documentations are available in docs/dl_mg.pdf or for the last release on the web at


Several make variable, mainly describing the compiler and its flags, need to be initailise for the compilation. These variables must be provided in a make include file located in platforms/<platform-name>.inc

A good starting point for a template is the file platforms/ which defines the variables for a local workstation with gcc and MPI installed.

The file platforms/ is for a Cray XE6 system which uses several development environments accessible with module command. Some other platforms files are includes in the folder 'platforms'.

After the platform file is created the solver library can be build with

make PLATFORM=<platform-name>

Link the code with libdlmg.a and include 'use dl_mg' in the calling subroutine.