Webrelaunch 2020

M++ (Meshes, Multigrid and more)

M++ (Meshes, Multigrid and more) is a parallel Finite Element Software to solve partial differential equations developed at the Institute for Applied and Numerical Mathematics in the group Scientific Computing. It is used in research projects and for teaching and implemented using the programming language C++ and MPI for the handling of the underlying parallel processing.

Every problem class can be created individually and solved by the following standard solvers:

  • Finite Elements: Lagrange, Discontinuous Lagrange, Nedelec, Raviart-Thomas
  • Solvers: CG, GMRES, BiCGStab, MINRES
  • Preconditioners: Jacobi, GaussSeidel, SSOR, parallel direct solvers
  • Usage of different external routines: BLAS, LAPACK, SuperLU
  • Different plotting standards: vtk, vtu, gp

There is a variety of predefined problem classes, e.g. Poisson, Darcy, convection-diffusion-reaktion, transport, Stokes, elasticity and plasticity, Maxwell, etc.

Further examples for the usage of M++ is given by tutorial exercises which can be found on Einführung in das Wissenschaftliche Rechnen.

Installation guide

You can find a recent version of M++ on GitLab: Mpp

This git-repository is used in other git-repositories to realize different projects.
The installation process is described in a readme-markdown in the corresponding git repository.


Simulation results with M++ were used in many dissertations and articles.

Oberwolfach Seminar »Wave Phenomena: Analysis and Numerics«

The modules for space-time methods and time stepping for wave problems and an example for seismic imaging
are included in the software tutorial of the MFO seminar.

Summerschool lecture on space-time methods of wave equations

The modules for the wave equations can be downloaded and tested by

svn co -r 675 https://svn.math.kit.edu/svn/M++/SummerSchool
cd SummerSchool
make TimeStepping
make SpaceTime
mpirun -n 4 M++TimeStepping
mpirun -n 4 M++SpaceTime

Details on the numerical methods are documented in the
Lecture on Space-Time Methods for the Wave Equation.
Details to SVN and the example are on page 17.

Tutorial for our summerschool on Full Waveform Inversion

The modules for testing algorithms for full waveform inversion can be downloaded an started by

svn co -r 963 https://svn.math.kit.edu/svn/M++/FWI-SummerSchool
cd FWI-SummerSchool/
make -j FWI
mpirun -n 4 fwi forward
paraview &
python3 tools/seismogram_lib.py data/FWI/seis_1.1_2.1

Some exercises and details on the numerical methods are given in the
Practice Sheet on Full Waveform Inversion.