Peano
Loading...
Searching...
No Matches
elastic_planar_waves.py
Go to the documentation of this file.
1
# This file is part of the ExaHyPE2 project. For conditions of distribution and
2
# use, please see the copyright notice at www.peano-framework.org
3
from
.scenario
import
Scenario
4
5
import
os
6
import
sys
7
8
sys.path.insert(0, os.path.abspath(
"../equations"
))
9
from
equations
import
Elastic
10
11
12
class
ElasticPlanarWaves
(
Scenario
):
13
_plot_dt = 0.0
14
_offset = -1.0
15
_domain_size = 2.0
16
_periodic_bc =
True
17
18
def
__init__
(self, dimensions, iterations=2):
19
self.
_dimensions
_dimensions
= dimensions
20
self.
_end_time
_end_time
= iterations
21
self.
_equation
_equation
=
Elastic
(dimensions)
22
23
def
initial_conditions
(self):
24
return
"""
25
//Lamé parameters
26
constexpr double mu = 4.0;
27
constexpr double lambda = -4.0;
28
29
//Constant auxiliary parameters
30
constexpr double rho = 1.0;
31
constexpr double cp = 2.0;
32
constexpr double cs = 2.0;
33
34
const double val_x = cos( -std::numbers::pi*x[0]);
35
const double val_y = cos( -std::numbers::pi*x[1]);
36
"""
+ (
37
"""
38
const double val_z = cos( -std::numbers::pi*x[2]);
39
40
//stresses
41
Q[3] = val_x*(lambda+2*mu) + val_y*lambda + val_z*lambda; //xx
42
Q[4] = val_x*lambda + val_y*(lambda+2*mu) + val_z*lambda; //yy
43
Q[5] = val_x*lambda + val_y*lambda + val_z*(lambda+2*mu); //zz
44
Q[6] = val_x*mu; //xy
45
Q[7] = val_z*mu; //xz
46
Q[8] = val_y*mu; //yz
47
48
//velocities
49
Q[0] = val_x*cp + val_z*cs; //vx
50
Q[1] = val_y*cp + val_x*cs; //vy
51
Q[2] = val_z*cp + val_y*cs; //vz
52
53
//auxiliary variables
54
Q[9] = rho; //rho
55
Q[10] = cp; //cp
56
Q[11] = cs; //cs
57
"""
58
if
self.
_dimensions
_dimensions
== 3
59
else
"""
60
61
//stresses
62
Q[2] = val_x*(lambda+2*mu) + val_y*lambda; //xx
63
Q[3] = val_x*lambda + val_y*(lambda+2*mu); //yy
64
Q[4] = val_x*mu + val_y*mu; //xy
65
66
//velocities
67
Q[0] = val_x*cp + val_y*cs; //vx
68
Q[1] = val_y*cp + val_x*cs; //vy
69
70
//auxiliary variables
71
Q[5] = rho; //rho
72
Q[6] = cp; //cp
73
Q[7] = cs; //cs
74
"""
75
)
76
77
def
analytical_solution
(self):
78
return
"""
79
//Lamé parameters
80
constexpr double mu = 4.0;
81
constexpr double lambda = -4.0;
82
83
//Constant auxiliary parameters
84
constexpr double rho = 1.0;
85
constexpr double cp = 2.0;
86
constexpr double cs = 2.0;
87
88
constexpr double w = -2*M_PI;
89
90
const double val_x = cos( w*t -std::numbers::pi*x[0]);
91
const double val_y = cos( w*t -std::numbers::pi*x[1]);
92
"""
+ (
93
"""
94
const double val_z = cos( -std::numbers::pi*x[2]);
95
96
//stresses
97
solution[3] = val_x*(lambda+2*mu) + val_y*lambda + val_z*lambda; //xx
98
solution[4] = val_x*lambda + val_y*(lambda+2*mu) + val_z*lambda; //yy
99
solution[5] = val_x*lambda + val_y*lambda + val_z*(lambda+2*mu); //zz
100
solution[6] = val_x*mu; //xy
101
solution[7] = val_z*mu; //xz
102
solution[8] = val_y*mu; //yz
103
104
//velocities
105
solution[0] = val_x*cp + val_z*cs; //vx
106
solution[1] = val_y*cp + val_x*cs; //vy
107
solution[2] = val_z*cp + val_y*cs; //vz
108
"""
109
if
self.
_dimensions
_dimensions
== 3
110
else
"""
111
112
//stresses
113
solution[2] = val_x*(lambda+2*mu) + val_y*lambda; //xx
114
solution[3] = val_x*lambda + val_y*(lambda+2*mu); //yy
115
solution[4] = val_x*mu + val_y*mu; //xy
116
117
//velocities
118
solution[0] = val_x*cp + val_y*cs; //vx
119
solution[1] = val_y*cp + val_x*cs; //vy
120
"""
121
)
elastic.Elastic
Definition
elastic.py:9
scenarios.elastic_planar_waves.ElasticPlanarWaves
Definition
elastic_planar_waves.py:12
scenarios.elastic_planar_waves.ElasticPlanarWaves._equation
_equation
Definition
elastic_planar_waves.py:21
scenarios.elastic_planar_waves.ElasticPlanarWaves.__init__
__init__(self, dimensions, iterations=2)
Definition
elastic_planar_waves.py:18
scenarios.elastic_planar_waves.ElasticPlanarWaves.analytical_solution
analytical_solution(self)
Definition
elastic_planar_waves.py:77
scenarios.elastic_planar_waves.ElasticPlanarWaves._end_time
_end_time
Definition
elastic_planar_waves.py:20
scenarios.elastic_planar_waves.ElasticPlanarWaves.initial_conditions
initial_conditions(self)
Definition
elastic_planar_waves.py:23
scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions
_dimensions
Definition
elastic_planar_waves.py:19
scenarios.scenario.Scenario
Definition
scenario.py:6
scenarios.scenario.Scenario._end_time
float _end_time
Definition
scenario.py:9
scenarios.scenario.Scenario._equation
_equation
Definition
scenario.py:7
scenarios.scenario.Scenario._dimensions
int _dimensions
Definition
scenario.py:8
tests
exahype2
aderdg
scenarios
elastic_planar_waves.py
Generated on Thu Mar 6 2025 23:03:40 for Peano by
1.10.0