|
|
|
# M++ (Meshes, Multigrid and more)
|
|
|
|
M++ (Meshes, Multigrid and more) ist ein paralleles Finite Elemente-Programm zur Lösung partieller Differentialgleichungen, das am Institut für Angewandte und Numerische Mathematik in der Arbeitsgruppe Wissenschaftliches Rechnen entwicklt wird. Es wird für Forschungsprojekte und in der Lehre eingesetzt. Die zugrunde gelegte Programmiersprache ist C++. Für die parallele Verarbeitung wird MPI verwendet.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Jede Problemklasse kann individuell erstellt und mit bereits implementierten (Standard-) Verfahren gelöst werden, darunter fallen:
|
|
|
|
Every problem class can be created individually and solved by the following standard solvers:
|
|
|
|
|
|
|
|
verschiedene Arten Finiter Elemente: Lagrange, Discontinuous Lagrange, Nedelec, Raviart-Thomas
|
|
|
|
Löser, u.a.: CG, GMRES, BiCGStab, MINRES
|
|
|
|
Vorkonditionierer, u.a.: Jacobi, GaussSeidel, SSOR, paralleler direkter Löser
|
|
|
|
Verwendung verschiedener externe Routinen, insb. BLAS, LAPACK, SuperLU
|
|
|
|
Möglichkeiten zur Erstellung von Plotdateien, insb. vtk, gp
|
|
|
|
Hierbei stehen bereits vorgefertigte Problemklassen zur Verfügung, zum Beispiel Poission, Darcy, Konvektion-Diffusion-Reaktion, Transport, Stokes, Elastizität und Plastizität, Maxwell, etc.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Weitere Beispiele zu M++ mit Praktikumsaufgaben finden Sie auf Vorlesungsseite Einführung in das Wissenschaftliche Rechnen.
|
|
|
|
Further examples for the usage of M++ is given by tutorial exercises which can be found on Einführung in das Wissenschaftliche Rechnen.
|
|
|
|
|
|
|
|
Anleitung zum Download und zur Installation
|
|
|
|
Sie können eine aktuelle M++-Version auf GitLab finden:
|
|
|
|
Installation guide
|
|
|
|
You can find a recent version of M++ of GitLab:
|
|
|
|
|
|
|
|
Mpp
|
|
|
|
|
|
|
|
Dieses Git-Repository wird in weiteren Git-Repositories eingebunden um die verschiedenen Projekte zu realisieren:
|
|
|
|
This git-repository is used in other git-repositories to realize different projects like:
|
|
|
|
|
|
|
|
Tutorial
|
|
|
|
MLMC
|
|
|
|
|
|
|
|
Der Installationsprozess ist im Readme-Markdown auf den jeweiligen Git-Repositories beschrieben.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Veröffentlichungen
|
|
|
|
Simulationsergebnisse mit M++ wurde bereits in vielen Dissertationen und Artikeln verwendet. |
|
|
\ No newline at end of file |