RMG (Real Space MultiGrid) is an open source density functional theory electronic structure code distributed under the GNU General Public License. It solves Kohn-Sham equations directly on a 3D real space grid without using basis set functions. RMG is highly scalable; it has been run on supercomputers with thousands of CPU cores.
|Operating system||Linux, Unix, Windows, OS X|
RMG's main feature is that it uses real-space mesh as a basis, rather plane waves or other types of basis set functions. This formulation lends itself to a straightforward parallelization, because each processor can be assigned a region of space. This avoids the need for Fourier transforms, and makes RMG highly scalable. The multigrid method is used to solve Poisson equation and to accelerate convergence. Mehrstellen discretization, which is shorter ranged than the commonly used than central difference discretization, is used to represent the kinetic energy operator. This decreases the cost of processor-to-processor communication, which is advantageous for the use on massively parallel supercomputers.
Domain decomposition is used to assign different regions of space to individual CPU cores or nodes. RMG scales nearly linearly up to 100k processor cores and 20k GPUs on Cray XK6.
RMG was originally developed in 1993–1994 at North Carolina State University. It was written in C with small parts being in FORTRAN. The current version uses a mixture of C and C++. MPI is used for inter-node communication and C++11 threads for intra-node parallelization. Other libraries used are Lapack, ScaLAPACK, FFTW, libxc and spglib.