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.