Peano
Loading...
Searching...
No Matches
Context.h
Go to the documentation of this file.
1#ifndef EXASEIS_CONTEXT_HEADER
2#define EXASEIS_CONTEXT_HEADER
3
4#include "../Scenario/Scenario.h"
5#include "../Scenario/ScenarioFactory.h"
6#include "../Refinement/refinement.h"
7
8template<class Shortcuts, int basisSize>
9class Context{
10 protected:
12
13 public:
14
15 Context(std::string& scenario_string, DomainInformation* info){
17 }
18
20 delete scenario;
21 }
22
23 virtual void initUnknownsPatch(double *luh,
26 double t,double dt)=0;
27
28 virtual void initUnknownsPointwise(const double *const x,
29 const double t,
30 const double dt,
31 double* Q){
32
33 Shortcuts s;
34 if (tarch::la::equals(t,0.0)) {
36 center[0] = x[0];
37 center[1] = x[1];
38 center[2] = x[2];
39 this->scenario->initUnknownsPointwise(x,center,t,dt,Q);
40 }
41 }
42
43
44 virtual void initPointSourceLocation(double pointSourceLocation[][3]){
45 this->scenario->initPointSourceLocation(pointSourceLocation);
46 }
47
48 virtual void setPointSourceVector(const double* const Q,
49 const double* const x,const double t,const double dt,
50 double* forceVector, int n) final {
51 this->scenario->setPointSourceVector(Q,x,t,dt,forceVector,n);
52 }
53
55 this->scenario->refinementCriteria(criteria);
56 }
57
58};
59
60
61#endif
virtual void initPointSourceLocation(double pointSourceLocation[][3])
Definition Context.h:44
~Context()
Definition Context.h:19
void setRefinementCriteria(std::vector< Refinement::RefinementCriterion< Shortcuts > * > &criteria)
Definition Context.h:54
Scenario< Shortcuts, basisSize > * scenario
Definition Context.h:11
virtual void initUnknownsPatch(double *luh, const tarch::la::Vector< Dimensions, double > &center, const tarch::la::Vector< Dimensions, double > &dx, double t, double dt)=0
virtual void initUnknownsPointwise(const double *const x, const double t, const double dt, double *Q)
Definition Context.h:28
Context(std::string &scenario_string, DomainInformation *info)
Definition Context.h:15
virtual void setPointSourceVector(const double *const Q, const double *const x, const double t, const double dt, double *forceVector, int n) final
Definition Context.h:48
static Scenario< VariableShortcuts, basisSize > * createScenario(std::string &scenario_string, DomainInformation *info)
virtual void initUnknownsPointwise(const double *const x, const tarch::la::Vector< Dimensions, double > &center, const double t, const double dt, double *Q)=0
virtual void refinementCriteria(std::vector< Refinement::RefinementCriterion< Shortcuts > * > &criteria)
Definition Scenario.h:27
virtual void setPointSourceVector(const double *const Q, const double *const x, const double t, const double dt, double *forceVector, int n)
Definition Scenario.h:23
virtual void initPointSourceLocation(double pointSourceLocation[][3])
Definition Scenario.h:21
bool equals(const Matrix< Rows, Cols, Scalar > &lhs, const Matrix< Rows, Cols, Scalar > &rhs, const Scalar &tolerance=NUMERICAL_ZERO_DIFFERENCE)
Compares to matrices on equality by means of a numerical accuracy.
Simple vector class.
Definition Vector.h:159