Peano
Loading...
Searching...
No Matches
Hsp1.h
Go to the documentation of this file.
1#ifndef EXASEIS_SCENARIOHSPONE_HEADER
2#define EXASEIS_SCENARIOHSPONE_HEADER
3#include "Scenario.h"
4
5template <class Shortcuts, int basisSize>
6class Hsp1 : public Scenario<Shortcuts, basisSize>{
7 private:
9
10 public:
11
12 Hsp1(DomainInformation* info):Scenario<Shortcuts,basisSize>(info){
13 //place point source in center of topography 2km below surface
14 m_pointSourceLocation[0] = 0.0;
15 m_pointSourceLocation[1] = 20.0;
16 m_pointSourceLocation[2] = 0.0;
17 };
18
19
20 void initUnknownsPointwise(const double* const x,
22 const double t,
23 const double dt,
24 double* Q
25 ){
26 Shortcuts s;
27#if defined ISOTROPIC
28 Q[s.rho] = 2.7;
29 Q[s.cp ] = 6.0;
30 Q[s.cs ] = 3.343;
31#else
32#error Whole space problem only defined for Isotropic Simulations
33#endif
34
35 }
36 void initPointSourceLocation(double pointSourceLocation[][3]){
37 pointSourceLocation[0][0]=m_pointSourceLocation[0];
38 pointSourceLocation[0][1]=m_pointSourceLocation[1];
39 pointSourceLocation[0][2]=m_pointSourceLocation[2];
40 }
41
42 void setPointSourceVector(const double* const Q,
43 const double* const x,const double t,const double dt,
44 double* forceVector, int n){
45
46 assertion2(n == 0, "Only a single pointSource for Hsp1",n);
47
48
49 constexpr double t0 = 0.1;
50 constexpr double M0 = 1000.0;
51
52 double f = M0*t/(t0*t0)*std::exp(-t/t0);
53
54 Shortcuts s;
55 forceVector[s.sigma + 4] = f;
56 }
57
58 void refinementCriteria(std::vector<Refinement::RefinementCriterion<Shortcuts>*>& criteria) override{
59
60 criteria.push_back(new Refinement::StaticAMR<Shortcuts>);
62
63 }
64};
65#endif
#define assertion2(expr, param0, param1)
Definition Hsp1.h:6
void setPointSourceVector(const double *const Q, const double *const x, const double t, const double dt, double *forceVector, int n)
Definition Hsp1.h:42
double m_pointSourceLocation[3]
Definition Hsp1.h:8
void initPointSourceLocation(double pointSourceLocation[][3])
Definition Hsp1.h:36
Hsp1(DomainInformation *info)
Definition Hsp1.h:12
void refinementCriteria(std::vector< Refinement::RefinementCriterion< Shortcuts > * > &criteria) override
Definition Hsp1.h:58
void initUnknownsPointwise(const double *const x, const tarch::la::Vector< Dimensions, double > &center, const double t, const double dt, double *Q)
Definition Hsp1.h:20
DomainInformation * info
Definition Scenario.h:35
Simple vector class.
Definition Vector.h:159