
namespace Dune{
namespace Fem{

/** \mainpage dune-fem-dg Automatic Documentation

<!---------------------------------------------->
\section intro Introduction
<!---------------------------------------------->

Welcome to the %dune-fem-dg documentation pages. This documentation has been
generated using Doxygen, a free source code documentation system for
documenting C/C++ code.

\subsection Overview What is dune-fem-dg?

dune-fem-dg is a modular toolbox for solving partial differential equations. 

A particular strength of dune-fem-dg is the possibility to test different numerical schemes with different parameters, i.e.:

| Option                                   | enum/integers                      | parameter file          | CMakeList.txt/Preprocessor              |
| ---------------------------------------- | ---------------------------------- | ----------------------- | --------------------------------------- |
| GridType                                 | YaspGrid, AluGrid...               |                         | `add_definitions( -DGRIDTYPE=<> )`      |
| GridDim                                  | 1,2,3...                           |                         | `add_definitions( -DGRIDDIM=<> )`       |
| DimRange                                 | 1,2,3..                            |                         | `add_definitions( -DDIMRANGE=<> )`      |
| polOrder                                 | 0,1,2...                           |                         | `add_definitions( -DPOLORDER=<> )`      |
| GalerkinType                             | Galerkin::Enum                     |                         |                                         |
| \ref DiffusionFluxes "DiffusionFlux"     | PrimalDiffusionFlux::Enum          | dgdiffusionflux.method  |                                         |
| \ref AdvectionFluxes "AdvectionFlux"     | AdvectionFlux::Enum                | dgadvectionflux.method  |                                         |
| Solver                                   | Solver::Enum                       |                         |                                         |
| Adaptation                               | Adaptivity::Enum                   |                         |                                         |
| Discrete function spaces                 | DiscreteFunctionSpaces::Enum       |                         |                                         |
| Assembly                                 | Matrix::Enum                       |                         |                                         |
| Codegen                                  |                                    |                         | `add_code_generate_targets( <target> )` |
| Parallel                                 |                                    |                         |                                         |

We have listed only the most important parameters here. 
There are a lot of other parameters which can be modified inside the parameter file.

\note Depending on the implementation of the PDEs not all combination of parameters might work.

\subsection PDEs Which PDEs can be solved by dune-fem-dg?

- \ref Poisson "Poisson"
- \ref Stokes "Stokes"
- \ref AdvectionDiffusion "Advection-diffusion"
- \ref Euler "Euler"
- \ref Navierstokes "Navier-Stokes"
- (\ref IncompNavierstokes "incompressible Navier-Stokes", tbd)

Some basic notation can be found \ref Notation "here".

All PDEs fulfill a certain structure which can be found \ref GeneralProblemStructure "here".

\subsection UserStart How should I start reading this documentation?

The way of reading this documenation should strongly depend on your personal interests and needs.

We mainly distinguish between five different scenarios:

| Task                                                     | Starting point           | Expertise     |
|--------------------------------------------------------- | ------------------------ | ------------- |
| __analytical Modification__ of existing PDEs             | \ref Examples "Examples" | very low      | 
| __numerical Modification__ of existing PDEs              | here                     | low to middle |            
| writing __new PDE solvers__                              | here                     | high          |
| __multi physics__, i.e. combination of existing modules  | here                     | high          |
| __hardware optimization__                                | here                     | high          |

\note dune-fem-dg depends on dune-fem which can be found under the following link <http://dune.mathematik.uni-freiburg.de/index.html>

\subsection Contribution How can I contribute?

We are always looking for external contribution to enlarge the power of this tool box.

Some examples we are looking for, are

- Navier-Stokes + Combustion
- MHD
- Biharmonic
- Wave equations
- Elasticity
- PDEs on surfaces
- Multi physics applications
- ...


\subsection Citation How to cite this tool box?

Please cite the following article:

> Dedner, Girke, Kloefkorn, Malkmus: ""

*/


}
}
