|
|
# Application Reference Architecture
|
|
|
|
|
|
The idea of such an architecture rised when we noticed that the `ApplicationExamples` directory got quite crowdy and we need some more structured way of organizing our demonstrator applications.
|
|
|
|
|
|
## What Sven observes every ExaHyPE Application has
|
|
|
|
|
|
We notice a big number of generic *plotters*. They are typically:
|
|
|
|
|
|
* `Plotter0`: The plain output quantities: `outputQuantities = Q;`, ie the _conserved_ variables.
|
|
|
* `Plotter1`: All integrations (`TimeSeriesReductions`) for all _conserved_ and _ primitive_ variables as well as for the _errors_ between exact and numerical values. Here we have a mapping of the numerical indices of the variables to the actual names ([example](https://gitlab.lrz.de/exahype/ExaHyPE-Engine/blob/master/ApplicationExamples/MHD_FV/MHDSolver_Plotter1.cpp)).
|
|
|
* `Plotter2`: The plain output quantities, filtered to primitive ones: `outputQuantities = con2prim(Q)`, ie the _primitive_ variables.
|
|
|
* `Plotter3`: The exact output quantities recomputed at time `t` and location `x` , ie. `outputQuantities = exactSolution(x,t)`, ie. the _conserved_ exact variabels.
|
|
|
* `Plotter4`: The pointwise difference between the evolved and exact quantities, ie. `outputQuantities = Q - exactSolution(x,t)`.
|
|
|
* `Plotter5`: The relative pointwise differente between evolved and exact quantities, ie. `outputQuantities = (Q - exactSolution(x,t)) / exactSolution(x,t)`.
|
|
|
|