Peano
Loading...
Searching...
No Matches
Solver.h
Go to the documentation of this file.
1// This file is part of the ExaHyPE2 project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5
6
7namespace exahype2 {
8 class Solver;
9}
10
11
12
14 public:
32 enum class Offloadable {
33 Yes
34 };
35
44 virtual double getMinTimeStamp(bool ofLastTimeStepOnly=false) const = 0;
45 virtual double getMaxTimeStamp(bool ofLastTimeStepOnly=false) const = 0;
46 virtual double getMinTimeStepSize() const = 0;
47 virtual double getMaxTimeStepSize() const = 0;
48
49 virtual void startGridConstructionStep() = 0;
50 virtual void finishGridConstructionStep() = 0;
51
53
54 virtual void startGridInitialisationStep() = 0;
55 virtual void finishGridInitialisationStep() = 0;
56
57 virtual void startTimeStep(
58 double globalMinTimeStamp,
59 double globalMaxTimeStamp,
60 double globalMinTimeStepSize,
61 double globalMaxTimeStepSize
62 ) = 0;
63 virtual void finishTimeStep() = 0;
64
65 virtual void startPlottingStep(
66 double globalMinTimeStamp,
67 double globalMaxTimeStamp,
68 double globalMinTimeStepSize,
69 double globalMaxTimeStepSize
70 ) = 0;
71 virtual void finishPlottingStep() = 0;
72
73 virtual double getMaxMeshSize() const = 0;
74 virtual double getMinMeshSize() const = 0;
75
81 virtual bool mayPlot() const = 0;
82
83 virtual void startSimulation() = 0;
84 virtual void finishSimulation() = 0;
85};
86
87
virtual void startGridConstructionStep()=0
virtual double getMinTimeStamp(bool ofLastTimeStepOnly=false) const =0
There are two different falvours of a minimal time stamp: On the one hand, there's a global minimum t...
virtual void finishPlottingStep()=0
virtual void finishGridInitialisationStep()=0
virtual void startPlottingStep(double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize)=0
virtual void finishGridConstructionStep()=0
virtual void finishSimulation()=0
virtual void startGridInitialisationStep()=0
virtual void startSimulation()=0
virtual bool mayPlot() const =0
Not all solvers allow you to plot after each grid sweep.
virtual void finishTimeStep()=0
Offloadable
This is a "fake" enum, i.e.
Definition Solver.h:32
virtual double getMinMeshSize() const =0
virtual double getMaxTimeStepSize() const =0
virtual void suspendSolversForOneGridSweep()=0
virtual double getMaxMeshSize() const =0
virtual void startTimeStep(double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize)=0
virtual double getMinTimeStepSize() const =0
virtual double getMaxTimeStamp(bool ofLastTimeStepOnly=false) const =0
For the generic kernels that I use here most of the time.
Definition CellAccess.h:13