METHOD
timeInt.h
Go to the documentation of this file.
1 #ifndef TIMEINT_H
2 #define TIMEINT_H
3 
4 #include "simData.h"
5 #include "model.h"
6 #include "boundaryConds.h"
7 #include "flux.h"
8 #include "modelExtension.h"
9 #include "hybrid.h"
10 
12 
19 {
20  public:
21 
22  Data * data;
23 
25 
26  Bcs * bcs;
27 
29 
31 
33 
43  TimeIntegratorBase(Data * data, Model * model, Bcs * bcs, FluxMethod * fluxMethod, ModelExtension * modelExtension = NULL) :
44  data(data), model(model), bcs(bcs), fluxMethod(fluxMethod), modelExtension(modelExtension) { }
45 
46 
47  virtual ~TimeIntegratorBase() { }
48 
50 
61  virtual void step(double * cons, double * prims, double * aux, double dt=0) = 0;
62 
63 
65 
74  virtual void finalise(double * cons, double * prims, double * aux) = 0;
75 
76 };
77 
78 
80 
86 {
87  public:
88 
90 
101  TimeIntegratorBase(data, model, bcs, fluxMethod, modelExtension) { }
102 
103 
104  virtual ~TimeIntegrator() { }
105 
107 
117  void finalise(double * cons, double * prims, double * aux)
118  {
119  // Perfrom C2P
120  try {
121  this->model->getPrimitiveVars(cons, prims, aux);
122  }
123  catch (const std::exception& e) {
124  printf("Time integration raises exception with following message:\n%s\n", e.what());
125  throw e;
126  }
127 
128  // Finalise via model
129  model->finalise(cons, prims, aux);
130  // Apply BCs
131  this->bcs->apply(cons, prims, aux);
132  }
133 
134 };
135 
136 #endif
Model * model
Pointer to Model object, contains governing equations and spectral decomposition. ...
Definition: timeInt.h:24
virtual void finalise(double *cons, double *prims, double *aux)=0
Finalise a step.
TimeIntegrator(Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL)
Constructor.
Definition: timeInt.h:100
Extension to the base physics model
TimeIntegratorBase(Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL)
Constructor.
Definition: timeInt.h:43
Boundary Conditions
Definition: boundaryConds.h:13
virtual void getPrimitiveVars(double *cons, double *prims, double *aux)=0
Spectral analysis.
virtual void apply(double *cons, double *prims=NULL, double *aux=NULL)=0
Application function.
virtual ~TimeIntegrator()
Destructor.
Definition: timeInt.h:104
Data * data
Pointer to Data class containing global simulation data.
Definition: timeInt.h:22
FluxMethod * fluxMethod
Pointer to FluxMethod object.
Definition: timeInt.h:28
Physics model that we want to use
Definition: model.h:15
ModelExtension * modelExtension
Pointer to model extension class.
Definition: timeInt.h:30
virtual void finalise(double *cons, double *prims, double *aux)
Finalise the simulation variables.
Definition: model.h:133
Bcs * bcs
Pointer to boundary conditions, Bcs, object.
Definition: timeInt.h:26
General form of the time integrator
Definition: timeInt.h:85
void finalise(double *cons, double *prims, double *aux)
Finalise a step.
Definition: timeInt.h:117
Abstract base class for flux reconstruction methods
Definition: flux.h:17
virtual ~TimeIntegratorBase()
Destructor.
Definition: timeInt.h:47
Data object
Definition: simData.h:49
virtual void step(double *cons, double *prims, double *aux, double dt=0)=0
Perform a single timestep on the conserved variables.
Abstract base class for time integrator
Definition: timeInt.h:18