Skip to content

Commit 077627b

Browse files
Merge pull request #58 from SeisSol/fabian/ttpv-benchmark-quakeworx
Merge PR after incorporating feedback from Thomas and Alice.
2 parents 05be0db + 3d4fad0 commit 077627b

File tree

12 files changed

+1250
-0
lines changed

12 files changed

+1250
-0
lines changed

.DS_Store

-8 KB
Binary file not shown.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
*.ipynb_checkpoints/
2+
.DS_Store
3+
../.DS_Store
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
!Switch
2+
[mu_s, mu_d, d_c]: !ConstantMap
3+
map:
4+
mu_s: 0.575
5+
mu_d: 0.450
6+
d_c: 0.18
7+
[forced_rupture_time, cohesion, T_n, T_s, T_d]: !LuaMap
8+
returns: [forced_rupture_time, cohesion, T_n, T_s, T_d]
9+
function: |
10+
function f (x)
11+
xh = 17387.0
12+
yh = 0.0
13+
zh = -4658.0
14+
r_crit = 4000.0
15+
r = math.sqrt((x["x"]-xh)^2 + (x["y"]-yh)^2 + (x["z"]-zh)^2 )
16+
Vs = 3464.0
17+
if (r <= r_crit) then
18+
forced_rupture_time = r/(0.7*Vs)+(0.081*r_crit/(0.7*Vs))*(1.0/(1.0-(r/r_crit)^2)-1.0)
19+
else
20+
forced_rupture_time = 1000000000.0
21+
end
22+
23+
pi = 4.0 * math.atan(1.0)
24+
depth = math.abs(x["z"])
25+
w = depth/math.sin(15.0*pi/180.)
26+
27+
if (w < 8000) then
28+
cohesion = -500.0 * math.max(8000.0-w,0)
29+
else
30+
cohesion = 0.0
31+
end
32+
33+
return {
34+
forced_rupture_time = forced_rupture_time,
35+
cohesion = cohesion,
36+
T_n = -4240.0 * w,
37+
T_s = 0.0,
38+
T_d = 2120.0 * w,
39+
}
40+
end
41+
[Tnuc_n, Tnuc_s, Tnuc_d]: !ConstantMap
42+
map:
43+
Tnuc_n: 0
44+
Tnuc_s: 0
45+
Tnuc_d: 0
302 KB
Loading
317 KB
Loading
28.5 KB
Loading
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
!Switch
2+
[rho, mu, lambda]: !Any
3+
components:
4+
- !GroupFilter
5+
groups: [0]
6+
components: !ConstantMap
7+
map:
8+
rho: 1000
9+
mu: 0.0
10+
lambda: 2.250e9
11+
- !GroupFilter
12+
groups: [1]
13+
components: !ConstantMap
14+
map:
15+
rho: 2670
16+
mu: 32038120320
17+
lambda: 32043759360
836 KB
Binary file not shown.
9.61 MB
Binary file not shown.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
&equations
2+
MaterialFileName = 'material_WL.yaml'
3+
Plasticity = 0
4+
!numflux = 'godunov'
5+
!numfluxnearfault = 'godunov'
6+
/
7+
8+
&IniCondition
9+
/
10+
11+
&DynamicRupture
12+
FL = 16 ! Friction law
13+
ModelFileName = 'fault.yaml'
14+
15+
!characteristic time of the forced nucleation
16+
t_0 = 0.5
17+
18+
!reference vector for defining strike and dip direction
19+
XRef = -0.1
20+
YRef = 0.0
21+
ZRef = -1.0
22+
refPointMethod = 1
23+
24+
OutputPointType = 4 ! Type (0: no output, 3: ascii file, 4: paraview file, 5: 3+4)
25+
SlipRateOutputType=1 ! 0: (smoother) slip rate output evaluated from the difference between the velocity on both side of the fault
26+
! 1: slip rate output evaluated from the fault tractions and the failure criterion (less smooth but usually more accurate where the rupture front is well developped)
27+
/
28+
29+
!see: https://seissol.readthedocs.io/en/latest/fault-output.html
30+
!parameterize paraview file output
31+
&Elementwise
32+
printtimeinterval_sec = 1.0 ! Time interval at which output will be written
33+
OutputMask = 1 1 1 1 1 1 1 1 1 1 1 ! turn on and off fault outputs
34+
refinement_strategy = 2
35+
refinement = 1
36+
vtkorder = -1 ! positive values enable the high-order VTKHDF format for the elementwise fault output
37+
/
38+
39+
! parameterize ascii fault file outputs
40+
&Pickpoint
41+
printtimeinterval = 100 ! Index of printed info at timesteps
42+
OutputMask = 1 1 1 1 1 1 1 1 1 1 1 1 ! turn on and off fault outputs
43+
!pickdt = 0.005 ! not yet implemented
44+
PPFileName = 'onfault_receivers.dat'
45+
/
46+
47+
&SourceType
48+
/
49+
50+
&MeshNml
51+
MeshFile = 'mesh_ttpv1_small_18k.puml.h5'
52+
!MeshFile = 'mesh_ttpv2_225k.puml.h5'
53+
meshgenerator = 'PUML' ! Name of meshgenerator (Gambit3D-fast, Netcdf or PUML)
54+
pumlboundaryformat='i32' ! the boundary data type for PUML files ('auto', 'i32', 'i64', 'i32x4')
55+
/
56+
57+
&Discretization
58+
CFL = 0.4 ! CFL number (<=1.0)
59+
ClusteredLTS = 2 ! Enable local time-stepping
60+
/
61+
62+
&Output
63+
OutputFile = 'outputs/ttpv1'
64+
!OutputFile = 'outputs/ttpv2'
65+
WavefieldOutput = 0 ! disable/enable volumne wavefield output (right now, format=6 needs to be set as well)
66+
Format = 10 ! Format (10=no output, 6=hdf5 output)
67+
! |stress |vel
68+
iOutputMask = 1 1 1 1 1 1 1 1 1
69+
TimeInterval = 1.0 ! Index of printed info at time
70+
refinement = 1
71+
72+
! Free surface output
73+
SurfaceOutput = 1
74+
SurfaceOutputRefinement = 1
75+
SurfaceOutputInterval = 1.0
76+
77+
ReceiverOutput = 0 !1
78+
pickdt = 0.01 ! Pickpoint Sampling
79+
RFileName = '' ! Record Points in extra file
80+
ReceiverOutputInterval = 10.0
81+
ReceiverComputeStrain = 0
82+
83+
xdmfWriterBackend = 'hdf5' ! (optional) The backend used in fault, wavefield,
84+
! and free-surface output. The HDF5 backend is only supported when SeisSol is compiled with
85+
! HDF5 support.
86+
87+
EnergyOutput = 1 ! Computation of energy, written in csv file
88+
EnergyTerminalOutput = 1 ! Write energy to standard output
89+
EnergyOutputInterval = 1.0
90+
91+
wavefieldvtkorder = -1
92+
surfacevtkorder = -1
93+
94+
Checkpoint = 0
95+
/
96+
97+
&AbortCriteria
98+
EndTime = 240.0
99+
/

0 commit comments

Comments
 (0)