|
|
|
# M++ (Meshes, Multigrid and more)
|
|
|
|
M++ 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 programmed in C++ uses MPI to distribute the computations and provides a python interface. M++ finds usage in research projects and as teaching tool for scientific computing.
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
Mpp
|
|
|
|
|
|
|
|
This git-repository is used in other git-repositories to realize different projects like:
|
|
|
|
|
|
|
|
Tutorial
|
|
|
|
MLMC
|
|
|
|
|
|
|
|
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.
|
|
|
|
M++ 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 programmed in C++ uses MPI to distribute the computations and provides a python interface. M++ finds usage in many research projects and as teaching tool for scientific computing.
|
|
|
|
|
|
|
|
### Features:
|
|
|
|
* 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.
|
|
|
|
|
|
|
|
### Publications
|
|
|
|
*
|
|
|
|
|