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.
Publications
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.