The MPI - Adaptive Mesh Refinement - Versatile Advection Code
Welcome page

Table of Contents


This is the documentation for the development version of MPI-AMRVAC. The code is available on Github, and the documentation on If you have questions about MPI-AMRVAC, please send them to the mailing list:, which you can also subscribe to and search.

Quick links


MPI-AMRVAC is a parallel adaptive mesh refinement framework aimed at solving (primarily hyperbolic) partial differential equations by a number of different numerical schemes. The emphasis is on (near) conservation laws and on shock-dominated problems in particular. A number of physics modules are included; the hydrodynamics and the magnetohydrodynamics module are most frequently used. Users can add their own physics module or modify existing ones. The framework supports 1D to 3D simulations, in a number of different geometries (Cartesian, cylindrical, spherical).

MPI-AMRVAC is written in Fortran 90 and uses MPI for parallelization. The VACPP preprocessor is used to extend Fortran with dimensional independent notation, but users are not required to learn the VACPP syntax.

The philosophy behind MPI-AMRVAC is to use a single versatile code with options and switches for various problems. The advantage of such a general approach is easier maintenance, the compatibility of different parts, and the automatic extension of new features to existing applications. MPI-AMRVAC is not a fool-proof black-box design. A user needs to write subroutines for initial conditions, and for source terms or special boundary conditions when needed.


MPI-AMRVAC is developed and maintained by a research team led by professor Rony Keppens in Centre for mathematical Plasma-Astrophysics (CmPA), KU Leuven.

In 2016-2017 a large modernization effort was started by Chun Xia and Jannis Teunissen, who are the current maintainers. The changes in the new version are: