Peano
Loading...
Searching...
No Matches
ScenarioFactory.h
Go to the documentation of this file.
1
#ifndef EXASEIS_SCENARIOFACTORY_HEADER
2
#define EXASEIS_SCENARIOFACTORY_HEADER
3
#include "
Apatite.h
"
4
#include "
Easi.h
"
5
#include "
GaussianWave.h
"
6
#include "
Scenario.h
"
7
// #include "GaussianHill.h"
8
#include "
Hhs1.h
"
9
#include "
Hsp1.h
"
10
// #include "Hhs1_Transposed.h"
11
#include "
Loh1.h
"
12
// #include "Loh1_Transposed.h"
13
#include <unordered_map>
14
15
#include "
Sinusodial.h
"
16
#include "
TPV5.h
"
17
#include "
WholeSpaceProblem.h
"
18
#include "
Zugspitze.h
"
19
#include "
Zugspitze_noTopo.h
"
20
21
class
ScenarioFactory
{
22
public
:
23
template
<
template
<
typename
,
int
>
class
T,
typename
V
,
int
B
>
24
static
Scenario<V, B>
*
create
(
DomainInformation
* info) {
25
return
new
T<V, B>
(info);
26
}
27
28
template
<
class
VariableShortcuts,
int
basisSize>
29
static
Scenario<VariableShortcuts, basisSize>
*
createScenario
(std::string&
scenario_string
,
DomainInformation
* info) {
30
31
std::unordered_map<std::string, Scenario<VariableShortcuts, basisSize>* (*)(
DomainInformation
*)>
name2enum
{
32
{
"Apatite"
, &
create<Apatite, VariableShortcuts, basisSize>
},
33
{
"Easi"
, &
create<EasiScen, VariableShortcuts, basisSize>
},
34
{
"GaussianWave"
, &
create<GaussianWave, VariableShortcuts, basisSize>
},
35
// {"GaussianHill", &create<GaussianHill, VariableShortcuts, basisSize>},
36
{
"Hsp1"
, &
create<Hsp1, VariableShortcuts, basisSize>
},
37
{
"Hhs1"
, &
create<Hhs1, VariableShortcuts, basisSize>
},
38
// {"Hhs1_Transposed", &create<Hhs1_Transposed, VariableShortcuts, basisSize>},
39
{
"Loh1"
, &
create<Loh1, VariableShortcuts, basisSize>
},
40
// {"Loh1_Transposed", &create<Loh1_Transposed, VariableShortcuts, basisSize>},
41
{
"Sinusodial"
, &
create<Sinusodial, VariableShortcuts, basisSize>
},
42
{
"TPV5"
, &
create<TPV5, VariableShortcuts, basisSize>
},
43
{
"WholeSpaceProblem"
, &
create<WholeSpaceProblem, VariableShortcuts, basisSize>
},
44
{
"Zugspitze"
, &
create<Zugspitze, VariableShortcuts, basisSize>
},
45
{
"Zugspitze_noTopo"
, &
create<Zugspitze_noTopo, VariableShortcuts, basisSize>
}};
46
47
if
(
name2enum
.find(
scenario_string
) ==
name2enum
.end()) {
48
std::stringstream
ss
;
49
ss
<<
"Unknown scenario: "
<<
scenario_string
;
50
51
throw
std::invalid_argument(
ss
.str());
52
}
53
54
return
name2enum
[
scenario_string
](info);
55
}
56
};
57
58
#endif
Apatite.h
Easi.h
GaussianWave.h
Hhs1.h
Hsp1.h
Loh1.h
Sinusodial.h
TPV5.h
WholeSpaceProblem.h
Zugspitze.h
Zugspitze_noTopo.h
DomainInformation
Definition
DomainInformation.h:8
ScenarioFactory
Definition
ScenarioFactory.h:21
ScenarioFactory::create
static Scenario< V, B > * create(DomainInformation *info)
Definition
ScenarioFactory.h:24
ScenarioFactory::createScenario
static Scenario< VariableShortcuts, basisSize > * createScenario(std::string &scenario_string, DomainInformation *info)
Definition
ScenarioFactory.h:29
Scenario
Definition
Scenario.h:8
Scenario.h
applications
exahype2
exaseis
ExaSeis_core
Scenario
ScenarioFactory.h
Generated on Tue Nov 3 2026 16:05:41 for Peano by
1.9.8