Skip to content

Commit 6ae34ca

Browse files
authored
Merge pull request #1808 from danielpeter/devel
fixes PML boundary flags and adds example for PML layer extensions in in-house mesher
2 parents 3075158 + c19f7c9 commit 6ae34ca

File tree

82 files changed

+85031
-991
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+85031
-991
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,7 @@ doc/USER_MANUAL/Schedule
4343
.*swn
4444
*~
4545
*.pyc
46+
47+
# misc
48+
.aider*
49+

EXAMPLES/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ The sections include:
77

88
- **benchmarks/**: examples for testing purposes and validation of the code
99

10+
- **real_world/**: examples dealing with local and regional simulation setups from real world locations
11+
1012
- **reproducible_study/**: simulation setups to reproduce published results
1113

1214

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
PDE 1999 01 01 00 00 00.00 750 500 -700 1.0 1.0 test
2+
event name: test
3+
time shift: 0.0000
4+
half duration: 0.08
5+
latorUTM: 550.0
6+
longorUTM: 800.0
7+
depth: 0.150
8+
Mrr: -7.400000e+19
9+
Mtt: -1.130000e+21
10+
Mpp: 1.210000e+21
11+
Mrt: 3.810000e+20
12+
Mrp: -8.000000e+18
13+
Mtp: 1.170000e+21

EXAMPLES/applications/meshfem3D_examples/CPML_extended_mesh/DATA/Par_file

Lines changed: 398 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
X00 DB 350.0 0.0 0.0 0.0
2+
X01 DB 350.0 100.0 0.0 0.0
3+
X02 DB 350.0 200.0 0.0 0.0
4+
X03 DB 350.0 300.0 0.0 0.0
5+
X04 DB 350.0 400.0 0.0 0.0
6+
X05 DB 350.0 500.0 0.0 0.0
7+
X06 DB 350.0 600.0 0.0 0.0
8+
X07 DB 350.0 700.0 0.0 0.0
9+
X08 DB 350.0 800.0 0.0 0.0
10+
X09 DB 350.0 900.0 0.0 0.0
11+
X10 DB 350.0 1000.0 0.0 0.0
12+
X11 DB 350.0 1100.0 0.0 0.0
13+
X12 DB 350.0 1200.0 0.0 0.0
14+
X13 DB 350.0 1300.0 0.0 0.0
15+
X14 DB 350.0 1400.0 0.0 0.0
16+
X15 DB 350.0 1500.0 0.0 0.0
17+
X16 DB 350.0 1600.0 0.0 0.0
18+
X17 DB 350.0 1700.0 0.0 0.0
19+
X18 DB 350.0 1800.0 0.0 0.0
20+
X19 DB 350.0 1900.0 0.0 0.0
21+
X20 DB 350.0 2000.0 0.0 0.0
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
#-----------------------------------------------------------
2+
#
3+
# Meshing input parameters
4+
#
5+
#-----------------------------------------------------------
6+
7+
# coordinates of mesh block in latitude/longitude and depth in km
8+
LATITUDE_MIN = 200.d0
9+
LATITUDE_MAX = 1800.d0
10+
LONGITUDE_MIN = 200.d0
11+
LONGITUDE_MAX = 1800.d0
12+
DEPTH_BLOCK_KM = 0.8d0
13+
UTM_PROJECTION_ZONE = 0
14+
SUPPRESS_UTM_PROJECTION = .true.
15+
16+
# file that contains the interfaces of the model / mesh
17+
INTERFACES_FILE = interfaces.dat
18+
19+
# file that contains the cavity
20+
CAVITY_FILE = no_cavity.dat
21+
22+
# number of elements at the surface along edges of the mesh at the surface
23+
# (must be 8 * multiple of NPROC below if mesh is not regular and contains mesh doublings)
24+
# (must be multiple of NPROC below if mesh is regular)
25+
NEX_XI = 16
26+
NEX_ETA = 16
27+
28+
# number of MPI processors along xi and eta (can be different)
29+
NPROC_XI = 2
30+
NPROC_ETA = 2
31+
32+
#-----------------------------------------------------------
33+
#
34+
# Doubling layers
35+
#
36+
#-----------------------------------------------------------
37+
38+
# Regular/irregular mesh
39+
USE_REGULAR_MESH = .true.
40+
# Only for irregular meshes, number of doubling layers and their position
41+
NDOUBLINGS = 0
42+
# NZ_DOUBLING_1 is the parameter to set up if there is only one doubling layer
43+
# (more doubling entries can be added if needed to match NDOUBLINGS value)
44+
NZ_DOUBLING_1 = 0
45+
NZ_DOUBLING_2 = 0
46+
47+
#-----------------------------------------------------------
48+
#
49+
# Visualization
50+
#
51+
#-----------------------------------------------------------
52+
53+
# create mesh files for visualisation or further checking
54+
CREATE_ABAQUS_FILES = .false.
55+
CREATE_DX_FILES = .false.
56+
CREATE_VTK_FILES = .true.
57+
58+
# stores mesh files as cubit-exported files into directory MESH/ (for single process run)
59+
SAVE_MESH_AS_CUBIT = .false.
60+
61+
# path to store the databases files
62+
LOCAL_PATH = ./DATABASES_MPI
63+
64+
#-----------------------------------------------------------
65+
#
66+
# CPML
67+
#
68+
#-----------------------------------------------------------
69+
70+
# CPML perfectly matched absorbing layers
71+
THICKNESS_OF_X_PML = 200.0d0
72+
THICKNESS_OF_Y_PML = 200.0d0
73+
THICKNESS_OF_Z_PML = 200.0d0
74+
75+
# add PML layers as extra outer mesh layers
76+
ADD_PML_AS_EXTRA_MESH_LAYERS = .true.
77+
NUMBER_OF_PML_LAYERS_TO_ADD = 2
78+
79+
#-----------------------------------------------------------
80+
#
81+
# Domain materials
82+
#
83+
#-----------------------------------------------------------
84+
85+
# number of materials
86+
NMATERIALS = 2
87+
# define the different materials in the model as:
88+
# #material_id #rho #vp #vs #Q_Kappa #Q_mu #anisotropy_flag #domain_id
89+
# Q_Kappa : Q_Kappa attenuation quality factor
90+
# Q_mu : Q_mu attenuation quality factor
91+
# anisotropy_flag : 0 = no anisotropy / 1,2,... check the implementation in file aniso_model.f90
92+
# domain_id : 1 = acoustic / 2 = elastic
93+
#1 2400 3500 2000 9999. 500. 0 2
94+
#2 2000 1500 800 9999. 100. 0 2
95+
1 2400 3500 2000 9999. 500. 0 2
96+
2 2400 3500 2000 9999. 500. 0 2
97+
98+
#-----------------------------------------------------------
99+
#
100+
# Domain regions
101+
#
102+
#-----------------------------------------------------------
103+
104+
# number of regions
105+
NREGIONS = 2
106+
# define the different regions of the model as :
107+
#NEX_XI_BEGIN #NEX_XI_END #NEX_ETA_BEGIN #NEX_ETA_END #NZ_BEGIN #NZ_END #material_id
108+
1 -1 1 -1 1 3 1
109+
1 -1 1 -1 4 8 2
110+
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
#-----------------------------------------------------------
2+
#
3+
# Meshing input parameters
4+
#
5+
#-----------------------------------------------------------
6+
7+
# coordinates of mesh block in latitude/longitude and depth in km
8+
LATITUDE_MIN = 0.d0
9+
LATITUDE_MAX = 2000.d0
10+
LONGITUDE_MIN = 0.d0
11+
LONGITUDE_MAX = 2000.d0
12+
DEPTH_BLOCK_KM = 1.d0
13+
UTM_PROJECTION_ZONE = 0
14+
SUPPRESS_UTM_PROJECTION = .true.
15+
16+
# file that contains the interfaces of the model / mesh
17+
INTERFACES_FILE = interfaces.inscribed.dat
18+
19+
# file that contains the cavity
20+
CAVITY_FILE = no_cavity.dat
21+
22+
# number of elements at the surface along edges of the mesh at the surface
23+
# (must be 8 * multiple of NPROC below if mesh is not regular and contains mesh doublings)
24+
# (must be multiple of NPROC below if mesh is regular)
25+
NEX_XI = 20
26+
NEX_ETA = 20
27+
28+
# number of MPI processors along xi and eta (can be different)
29+
NPROC_XI = 2
30+
NPROC_ETA = 2
31+
32+
#-----------------------------------------------------------
33+
#
34+
# Doubling layers
35+
#
36+
#-----------------------------------------------------------
37+
38+
# Regular/irregular mesh
39+
USE_REGULAR_MESH = .true.
40+
# Only for irregular meshes, number of doubling layers and their position
41+
NDOUBLINGS = 0
42+
# NZ_DOUBLING_1 is the parameter to set up if there is only one doubling layer
43+
# (more doubling entries can be added if needed to match NDOUBLINGS value)
44+
NZ_DOUBLING_1 = 0
45+
NZ_DOUBLING_2 = 0
46+
47+
#-----------------------------------------------------------
48+
#
49+
# Visualization
50+
#
51+
#-----------------------------------------------------------
52+
53+
# create mesh files for visualisation or further checking
54+
CREATE_ABAQUS_FILES = .false.
55+
CREATE_DX_FILES = .false.
56+
CREATE_VTK_FILES = .true.
57+
58+
# stores mesh files as cubit-exported files into directory MESH/ (for single process run)
59+
SAVE_MESH_AS_CUBIT = .false.
60+
61+
# path to store the databases files
62+
LOCAL_PATH = ./DATABASES_MPI
63+
64+
#-----------------------------------------------------------
65+
#
66+
# CPML
67+
#
68+
#-----------------------------------------------------------
69+
70+
# CPML perfectly matched absorbing layers
71+
THICKNESS_OF_X_PML = 200.0d0
72+
THICKNESS_OF_Y_PML = 200.0d0
73+
THICKNESS_OF_Z_PML = 200.0d0
74+
75+
# add PML layers as extra outer mesh layers
76+
ADD_PML_AS_EXTRA_MESH_LAYERS = .false.
77+
NUMBER_OF_PML_LAYERS_TO_ADD = 0
78+
79+
#-----------------------------------------------------------
80+
#
81+
# Domain materials
82+
#
83+
#-----------------------------------------------------------
84+
85+
# number of materials
86+
NMATERIALS = 2
87+
# define the different materials in the model as:
88+
# #material_id #rho #vp #vs #Q_Kappa #Q_mu #anisotropy_flag #domain_id
89+
# Q_Kappa : Q_Kappa attenuation quality factor
90+
# Q_mu : Q_mu attenuation quality factor
91+
# anisotropy_flag : 0 = no anisotropy / 1,2,... check the implementation in file aniso_model.f90
92+
# domain_id : 1 = acoustic / 2 = elastic
93+
#1 2400 3500 2000 9999. 500. 0 2
94+
#2 2000 1500 800 9999. 100. 0 2
95+
1 2400 3500 2000 9999. 500. 0 2
96+
2 2400 3500 2000 9999. 500. 0 2
97+
98+
#-----------------------------------------------------------
99+
#
100+
# Domain regions
101+
#
102+
#-----------------------------------------------------------
103+
104+
# number of regions
105+
NREGIONS = 2
106+
# define the different regions of the model as :
107+
#NEX_XI_BEGIN #NEX_XI_END #NEX_ETA_BEGIN #NEX_ETA_END #NZ_BEGIN #NZ_END #material_id
108+
1 -1 1 -1 1 5 1
109+
1 -1 1 -1 6 10 2
110+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
0.0
2+
0.0
3+
0.0
4+
0.0
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# number of interfaces
2+
1
3+
#
4+
# We describe each interface below, structured as a 2D-grid, with several parameters :
5+
# number of points along XI and ETA, minimal XI ETA coordinates
6+
# and spacing between points which must be constant.
7+
# Then the records contain the Z coordinates of the NXI x NETA points.
8+
#
9+
# interface number 1
10+
# SUPPRESS_UTM_PROJECTION NXI NETA LONG_MIN LAT_MIN SPACING_XI SPACING_ETA
11+
.true. 2 2 0.0 0.0 1000.d0 1000.d0
12+
interface.dat
13+
#
14+
# for each layer, we give the number of spectral elements in the vertical direction
15+
8
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# number of interfaces
2+
1
3+
#
4+
# We describe each interface below, structured as a 2D-grid, with several parameters :
5+
# number of points along XI and ETA, minimal XI ETA coordinates
6+
# and spacing between points which must be constant.
7+
# Then the records contain the Z coordinates of the NXI x NETA points.
8+
#
9+
# interface number 1
10+
# SUPPRESS_UTM_PROJECTION NXI NETA LONG_MIN LAT_MIN SPACING_XI SPACING_ETA
11+
.true. 2 2 0.0 0.0 1000.d0 1000.d0
12+
interface.dat
13+
#
14+
# for each layer, we give the number of spectral elements in the vertical direction
15+
10

0 commit comments

Comments
 (0)