Peano
Loading...
Searching...
No Matches
GaussianHill.h
Go to the documentation of this file.
1#ifndef EXASEIS_GAUSSIANHILL_HEADER
2#define EXASEIS_GAUSSIANHILL_HEADER
3
4#include "Scenario.h"
5
6template <class Variables, int basisSize>
7class GaussianHill: public Scenario<Variables, basisSize> {
8
9private:
11
12public:
14 Scenario<Variables, basisSize>(info) {
15 m_pointSourceLocation[0] = -3.0;
16 m_pointSourceLocation[1] = 3.0;
17 m_pointSourceLocation[2] = 0.0;
18 };
19
21 const double* const x,
23 const double t,
24 const double dt,
25 double* Q
26 ) {
27 Variables s;
28 Q[s.rho] = 2.6;
29 Q[s.cp] = 6.0;
30 Q[s.cs] = 3.464;
31 }
32
33 virtual void initPointSourceLocation(double pointSourceLocation[][3]) {
34 pointSourceLocation[0][0] = m_pointSourceLocation[0];
35 pointSourceLocation[0][1] = m_pointSourceLocation[1];
36 pointSourceLocation[0][2] = m_pointSourceLocation[2];
37 }
38
40 const double* const Q, const double* const x, const double t, const double dt, double* forceVector, int n
41 ) {
42
43 constexpr double pi = 3.14159265359;
44 constexpr double t0 = 0.1;
45 constexpr double M0 = 1000.0;
46
47 double f = M0 * t / (t0 * t0) * std::exp(-t / t0);
48
49 Variables s;
50 forceVector[s.sigma + 4] = f;
51 };
52
53 virtual void refinementCriteria(std::vector<Refinement::RefinementCriterion<Variables>*>& criteria) override {
54 // criteria.push_back(new Refinement::RefinePositionCustomCoordinates<Variables>(
55 // m_pointSourceLocation,
56 // basisSize,
57 // static_cast<exahype::solvers::ADERDGSolver*>(solver)->FCoeff[basisSize - 1][0],
58 // static_cast<exahype::solvers::ADERDGSolver*>(solver)->FCoeff[basisSize - 1][1]
59 // ));
60 };
61};
62
63#endif
GaussianHill(DomainInformation *info)
virtual void initPointSourceLocation(double pointSourceLocation[][3])
virtual void setPointSourceVector(const double *const Q, const double *const x, const double t, const double dt, double *forceVector, int n)
virtual void refinementCriteria(std::vector< Refinement::RefinementCriterion< Variables > * > &criteria) override
virtual void initUnknownsPointwise(const double *const x, const tarch::la::Vector< Dimensions, double > &center, const double t, const double dt, double *Q)
double m_pointSourceLocation[3]
DomainInformation * info
Definition Scenario.h:35
Simple vector class.
Definition Vector.h:159