All linear equation systems are solved by modern preconditioned iterative methods, based on multi-level/multi-grid ideas.

Although the code is written entirely in C, it uses ideas from object oriented programming to a certain degree, to combine advantages of both worlds.

From the beginning, the code was meant to support shape optimisation. For this purpose in 2D it allows boundary sections defined by Bezier-splines, and is able to compute the derivatives of functionals that depend on the solution of a PDE with respect to those spline parameters. This is done efficiently by means of the discrete adjoint method (see the authors PhD thesis), with a cost roughly equivalent to one additional solve of the primal problem. This derivative is in some sense a shape-gradient of the functional, which can be used for optimisation.

In 3D shape optimisation is not implemented yet, but should be possible with similar techniques.

Problem specific features:

**Poisson Equation**-
- mainly meant for testing various components for other problems
- BPX-preconditioner and V-cycle-multigrid as preconditioners for CG
- no shape gradient yet
- P
_{1}and P_{2}elements in 2D and 3D - adaptivity, using Bänsch green refinement and a ZZ error estimator (currently only in 3D)
- stationary case only

**Lame-Equation of linear elasticity**-
- BPX-preconditioner and V-cycle-multigrid as preconditioners for CG

solving 35,419,650 DOFs for P_{2}elements to 1e-6 in 733 seconds on a single core of a Intel Xeon 5160 @ 3.0 GHz - shape gradient available in 2D (upcoming release also in 3D)
- P
_{1}and P_{2}elements in 2D and 3D - adaptivity, using Bänsch green refinement and a residual error estimator (in 2D) or ZZ error estimator (2D and 3D)
- stationary case only
- efficient eigenvalue analysis with P
_{1}elements in 3D (upcoming release also P_{2}elements)

- BPX-preconditioner and V-cycle-multigrid as preconditioners for CG
**Incompressible Navier-Stokes**-
- Newton- or Picard-linearisation
- F
_{p}-preconditioner for GMRES ([Kay, Loghin, Wathen, 2002] and [Elman, Loghin, Wathen, 2003]) with multigrid preconditioned GMRES for solving the subproblems within the preconditioner.

solving 37,769,219 DOFs to 1e-9 in 8.6 hours on a single core of a Intel Xeon 5160 @ 3.0 GHz - shape gradient available
- Taylor-Hood elements (P
_{2}for velocities and P_{1}for pressure) - no adaptivity yet
- stationary case only