#include <Solver.h>
Definition at line 13 of file Solver.h.
◆ Offloadable
This is a "fake" enum, i.e.
we do not use it to distinguish different variants. Instead, we use it as a fix that allows us to "overload" operations:
In C++ you cannot overload w.r.t. static. We however need functions which exist twice in ExaHyPE: Once as standard (virtual) member functions and once at static version which an be offloaded to a GPU as it does not have a state. Both function variants, in theory, have the same signature but if they had, a compiler could not distinguish them. So I use this enum for the GPU version.
If you create a solver without GPU support, this enum will not be used. It is however always created. Once you write a GPU version and then compile without GPU support, you will thus still be able to have all your GPU function variants, and you don't have to work with ifdefs.
Definition at line 32 of file Solver.h.
◆ finishGridConstructionStep()
| virtual void exahype2::Solver::finishGridConstructionStep |
( |
| ) |
|
|
pure virtual |
◆ finishGridInitialisationStep()
| virtual void exahype2::Solver::finishGridInitialisationStep |
( |
| ) |
|
|
pure virtual |
◆ finishPlottingStep()
| virtual void exahype2::Solver::finishPlottingStep |
( |
| ) |
|
|
pure virtual |
◆ finishSimulation()
| virtual void exahype2::Solver::finishSimulation |
( |
| ) |
|
|
pure virtual |
◆ finishTimeStep()
| virtual void exahype2::Solver::finishTimeStep |
( |
| ) |
|
|
pure virtual |
◆ getMaxMeshSize()
| virtual double exahype2::Solver::getMaxMeshSize |
( |
| ) |
const |
|
pure virtual |
◆ getMaxTimeStamp()
| virtual double exahype2::Solver::getMaxTimeStamp |
( |
| ) |
const |
|
pure virtual |
◆ getMaxTimeStepSize()
| virtual double exahype2::Solver::getMaxTimeStepSize |
( |
| ) |
const |
|
pure virtual |
◆ getMinMeshSize()
| virtual double exahype2::Solver::getMinMeshSize |
( |
| ) |
const |
|
pure virtual |
◆ getMinTimeStamp()
| virtual double exahype2::Solver::getMinTimeStamp |
( |
| ) |
const |
|
pure virtual |
◆ getMinTimeStepSize()
| virtual double exahype2::Solver::getMinTimeStepSize |
( |
| ) |
const |
|
pure virtual |
◆ mayPlot()
| virtual bool exahype2::Solver::mayPlot |
( |
| ) |
const |
|
pure virtual |
Not all solvers allow you to plot after each grid sweep.
If a solver needs multiple steps, it might want to veto that you plot intermediate data.
◆ startGridConstructionStep()
| virtual void exahype2::Solver::startGridConstructionStep |
( |
| ) |
|
|
pure virtual |
◆ startGridInitialisationStep()
| virtual void exahype2::Solver::startGridInitialisationStep |
( |
| ) |
|
|
pure virtual |
◆ startPlottingStep()
| virtual void exahype2::Solver::startPlottingStep |
( |
double | globalMinTimeStamp, |
|
|
double | globalMaxTimeStamp, |
|
|
double | globalMinTimeStepSize, |
|
|
double | globalMaxTimeStepSize ) |
|
pure virtual |
◆ startSimulation()
| virtual void exahype2::Solver::startSimulation |
( |
| ) |
|
|
pure virtual |
◆ startTimeStep()
| virtual void exahype2::Solver::startTimeStep |
( |
double | globalMinTimeStamp, |
|
|
double | globalMaxTimeStamp, |
|
|
double | globalMinTimeStepSize, |
|
|
double | globalMaxTimeStepSize ) |
|
pure virtual |
◆ suspendSolversForOneGridSweep()
| virtual void exahype2::Solver::suspendSolversForOneGridSweep |
( |
| ) |
|
|
pure virtual |
The documentation for this class was generated from the following file: