M++
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 Sientific Computing. It is used in research project and for teaching. It uses the programming language is C++ where MPI is handling 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, 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++ of GitLab:
This git-repository is used in other git-repositories to realize different projects like:
The installation process is described in a readme-markdown on the corresponding git repository.
Publications
Simulation results with M++ were used in many dissertations and articles.
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.