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 various research projects and for teaching. It is implemented in the programming language C++ and uses Open MPI to distribute the computational load on several computing nodes.
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-reaction, 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.
Tutorial
A tutorial on The parallel finite element system M++ summerizes the results in
our M++ paper.