In the development of the program package MaiProgs three different objectives have been given special emphasis.
First, the implementation of a broad class of algorithms of FEM and BEM, which have been already investigated theoretically at IfAM or which shall still be investigted, resp.. Either to support thoretically investigated algorithms with numerical examples or to test new schemes and algorithms for realizebility and practical efficience before any theoretical investigation. This is expressed by the fact, that in most publications of the working group of Prof. Stephan in the last years, the system MaiProgs or parts of it have been used for the computation of examples.
Second, the integration of all methods in a common program system with a standardized and flexible interface. On the one hand to allow the casual user of the system to work in a more abstract way then with source codes and on the other hand, to avoid the problems with a lot of single programs, the version control, multiple implementations of the some algorithms for subproblems and an extend collection of source code. The introduction of a common data format also allows the user to handle the pre- and postprocessing without knowledge of internal data structures.
Third, the separate modules of the package should be usable by students for the numerical/practical part of their diploma thesis to prevent the students from reinventing the wheel and to allow an earlier and deeper work with the real topic of their thesis. This has been realized by a decomposition of the package in separate modules with a documented and standardized interface and globally available and capable data structures. Especially the standardization of the modules and libraries for the computation of the Galerkin elements in 2d/3d has been lead to an accelerated development.
The implementation has been concentrated on domains with polygonal and polyhedral boundaries, respectively. But domains with a more general boundary are also covered, by using a graded high order quadrature scheme, whereas in case or polygonal and polydral domains the Galerkin elements will also computed analytically. The BEM has been implemented already for partial differential equations with constant coefficients, i.e. the Laplace-, Lamé, Helmholtz and biharmonical equation in 2D and 3D. We have investigated Dirichlet-, Neumann- and mixed boundary value problems and integral equations of the first and of the second kind for Galerkin and collocation methods. An example for a nonlinear boundary value problem has been the Signorini problem using the formulation involving the Stecklov operator.
Additional to the BEM and analogous FEM problems the symmetric Galerkin-FEM-BEM coupling method has been implemented. Here are also nonlinear pde's and pde's with variable coefficients implemented.
The general data structure of a hp-mesh with arbitrary mesh elements and arbitrary polynomial order allows the computation of the quasiuniform h-version, the p-version, the algebraically graded h-version, the hp-version with geometrical mesh refinement and adaptively refined meshes. For the adaptively controlling we have residual based, gradient based and hierarchical error estimators.
In addition to the standard iterative solvers, e.g., CG, GMRES, HMCR,
there are additive and multiplicative Schwarz-methods
implemented, which can be used as preconditioners and iterative solvers.
E.g. we have multilevel-schemes like BPX and multigrid for the h-version,
2-level decompositions for the p-version and Hhp-3-level decompositions
for the h- and hp-version implemented.