Parameter File¶
Simulation input parameters¶
title¶
Title of the simulation. This is used to identify the simulation in the output files and logs.
- Type:
string
title = My cool simulation
NPROC¶
Number of MPI processors to use for the simulation. This is used to determine the number of processes to spawn for the simulation.
- Type:
integer
NPROC = 1
Note
SPECFEM++ currently only supports a single MPI processor. Please set this value to 1.
OUTPUT_FILES¶
This is the location where the mesher will store all the output files.
- Type:
Pathasstring
OUTPUT_FILES = ./OUTPUT_FILES
Meshing Parameters¶
PARTITIONING_TYPE¶
- The type of mesh partitioning to use for MPI simulations.
SCOTCH:
3METIS:
2INTERNAL (Ascending):
1
- Type:
int
PARTITIONING_TYPE = 3
Note
This parameter is only used for MPI simulations and is ignored for serial simulations.
NGNOD¶
Number of control nodes per element. Supported values: 4 and 9
- Type:
int
NGNOD = 9
database_filename¶
Name of the database file to store the generated mesh.
- Type:
string
database_filename = database.bin
Note
The database filename needs to be same in meshing and solver parameter files.
Velocity Models¶
Velocity models are defined in the meshfem2d module. The velocity model is
defined in the model section of the input file. The velocity model is
defined by a set of parameters that describe the material properties of the
model. An example of a velocity model is shown below:
# number of material systems
nbmodels = 2
# acoustic elastic material system
1 1 2500.d0 3400.d0 1963.d0 0 0 9999 9999 0 0 0 0 0 0
2 1 1020.d0 1500.d0 0.d0 0 0 9999 9999 0 0 0 0 0 0
Note that nbmodels must always be followed by the number of material systems
in the model, one for each material system. See paramter descriptions below for
more details on the parameters.
Metaparameters
nbmodels¶
Number of material systems in the model.
- Type:
int
nbmodels = 1
TOMOGRAPHY_FILE¶
Path to an external tomography file for velocity models.
- Type:
string
TOMOGRAPHY_FILE = ./DATA/tomo_file.xyz
read_external_mesh¶
If True the mesh is read from an external file.
- Type
logical
read_external_mesh = .true.
Description of material system
Each material system in the model is described by a string.
Note
Only elastic, poroelastic, and acoustic material systems are supported.
Elastic material system¶
An elastic medium can be described by the following parameters:
model_number: integer number to refence the material systemrho: densityVp: P-wave velocityQKappa: Attenuation parameter (set to9999for no attenuation)
- Type:
string- Format:
model_number 1 rho Vp 0 0 QKappa 9999 0 0 0 0 0 0
1 1 2700.d0 3000.d0 1732.051d0 0 0 9999 9999 0 0 0 0 0 0
Acoustic material system¶
An acoustic medium can be described by the following parameters:
model_number: integer number to refence the material systemrho: densityVp: P-wave velocityVs: S-wave velocityQKappa: Attenuation parameter (set to9999for no attenuation)QMu: Attenuation parameter (set to9999for no attenuation)
- Type
string
- Format:
model_number 1 rho Vp Vs 0 0 QKappa QMu 0 0 0 0 0 0
1 1 2700.d0 3000.d0 1732.051d0 0 0 9999 9999 0 0 0 0 0 0
Elastic Cosserat material system¶
An elastic Cosserat medium can be described by the following parameters:
model_number: integer number to refence the material systemrho: densitykappa: P-wave modulusmu: shear modulusnu: Poisson’s ratioj: micro-inertia
- Type:
string- Format:
model_number 4 rho kappa mu nu j 0 0 0 0 0 0 0 0 0
1 5 2700.d0 1.0d10 3.0d9 0.25d0 0.1d0 0 0 0 0 0 0 0 0
Poroelastic material system¶
A poroelastic medium can be described by the following parameters:
model_number: integer number to refence the material systemrhos: solid densityrhof: fluid densityphi: porosityc: Biot coefficientkxx: permeability in x directionkxz: permeability in z directionkzz: permeability in z directionKs: bulk modulus of solidKf: bulk modulus of fluidKfr: bulk modulus of fluid in the frameetaf: viscosity of fluidmufr: shear modulus of fluid in the frameQmu: attenuation parameter (set to9999for no attenuation)
- Type:
string- Format:
model_number 3 rhos rhof phi c kxx kxz kzz Ks Kf Kfr etaf mufr Qmu
1 3 2650.d0 880.d0 0.1d0 2.0 1d-9 0.d0 1d-9 12.2d9 1.985d9 9.6d9 0.d0 5.1d9 9999
Electromagnetic material system¶
An electromagnetic medium can be described by the following parameters:
model_number: integer number to reference the material systemmu0: vacuum permeabilitye0: vacuum permittivitye11: relative permittivity in 11 direction (multiple of e0)e33: relative permittivity in 33 direction (multiple of e0)sig11: conductivity in 11 directionsig33: conductivity in 33 directionQe11: electric attenuation in 11 directionQe33: electric attenuation in 33 directionQs11: magnetic attenuation in 11 directionQs33: magnetic attenuation in 33 directionQv: reserved parameter
- Type:
string- Format:
model_number 4 mu0 e0 e11(e0) e33(e0) sig11 sig33 Qe11 Qe33 Qs11 Qs33 Qv 0 0
1 4 12.566d-7 8.85d-12 5 5 2d-3 2d-3 90 90 90 90 0 0 0
Tomography material system¶
A material defined by external tomography file:
model_number:-1to indicate tomography-based materialA: anisotropy flag (for Vs value)
- Type:
string- Format:
model_number -1 0 0 A 0 0 0 0 0 0 0 0 0 0
1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0
Note
Material properties will be read from the file specified in TOMOGRAPHY_FILE.
Internal Meshing¶
interfacesfile¶
The file describing the topography of the simulation domain. For more information, see the Topography File section.
- Type
pathas string
interfacesfile = "topography.dat"
xmin¶
The minimum x-coordinate of the simulation domain.
- Type
real
xmin = 0.0
xmax¶
The maximum x-coordinate of the simulation domain.
- Type
real
xmax = 6400.0
nx¶
The number of elements in the x-direction.
- Type:
int
nx = 64
STACEY_ABSORBING_CONDITIONS¶
If True, Stacey absorbing boundary conditions are used.
- Type
logical
STACEY_ABSORBING_CONDITIONS = .true.
absorbbottom¶
If True, the bottom boundary is an absorbing boundary.
- Type
logical
absorbbottom = .true.
absorbtop¶
If True, the top boundary is an absorbing boundary.
- Type:
logical
absorbtop = .true.
absorbleft¶
If True, the left boundary is an absorbing boundary.
- Type:
logical
absorbleft = .true.
absorbright¶
If True, the right boundary is an absorbing boundary.
- Type:
logical
absorbright = .true.
nbregions¶
The number of regions in the simulation domain.
- Type:
int
nbregions = 1
Describing a region¶
The region is described using a string. And has following parameters:
nxmin: Integer value describing the x-coordinate of the spectral element at the bottom left corner of the region.nxmax: Integer value describing the x-coordinate of the spectral element at the top right corner of the region.nzmin: Integer value describing the z-coordinate of the spectral element at the bottom left corner of the region.nzmax: Integer value describing the z-coordinate of the spectral element at the top right corner of the region.material_number: Integer value describing the type of material in the region. This value references the material number in thevelocity_model.
- Type:
string- Format:
nxmin nxmax nzmin nzmax material_number
0 63 0 63 1
Note
The region description(s) must be preceded by the number of regions in the simulation domain. For example, if there are 2 regions, the file should look like this if you remove comments:
nbregions = 2
0 63 0 30 1
0 63 31 63 2
External Meshing¶
Parameters here describe the paths to different files generated when using an external mesher.
mesh_file¶
Path to the mesh file.
- Type
pathasstring
mesh_file = ./DATA/Mesh_canyon/canyon_mesh_file
nodes_coords_file¶
Path to the file containing the coordinates of the nodes.
- Type:
pathasstring
nodes_coords_file = ./DATA/Mesh_canyon/canyon_nodes_coords
materials_file¶
Path to the file containing the materials number for each element.
- Type:
pathasstring
materials_file = ./DATA/Mesh_canyon/canyon_materials_file
free_surface_file¶
Path to the file containing the element number describing the free surface.
- Type:
pathasstring
free_surface_file = ./DATA/Mesh_canyon/canyon_free_surface_file
axial_elements_file¶
Path to the file containing the element number for elements on the axis.
- Type:
path
axial_elements_file = ./DATA/Mesh_canyon/canyon_axial_elements_file
Note
This parameter is not supported in the solver.
absorbing_surface_file¶
Path to the file containing the element number for elements on the absorbing surface.
- Type:
pathasstring
absorbing_surface_file = ./DATA/Mesh_canyon/canyon_absorbing_surface_file
Note
This parameter is not supported in the solver.
acoustic_forcing_surface_file¶
Path to the file containing the element number for elements on the acoustic forcing surface.
- Type:
pathasstring
acoustic_forcing_surface_file = ./DATA/Mesh_canyon/canyon_acoustic_forcing_surface_file
Note
This parameter is not supported in the solver.
absorbing_cpml_file¶
Path to the file containing the element number for elements on the absorbing PML surface.
- Type:
path
absorbing_cpml_file = ./DATA/Mesh_canyon/canyon_absorbing_cpml_file
Note
This parameter is not supported in the solver.
tangential_detection_curve_file¶
Path to the file containing the element number for elements on the tangential curve.
- Type:
pathasstring
tangential_detection_curve_file = ./DATA/Mesh_canyon/canyon_tangential_detection_curve_file
Note
This parameter is not supported in the solver.
Display parameters¶
output_grid_Gnuplot¶
Output grid as a Gnuplot file
- Type:
logical
output_grid_Gnuplot = .true.
output_grid_ASCII¶
Output grid as an ASCII file
- Type
logical
output_grid_ASCII = .true.
Receiver Parameters¶
Define meta parameters
use_existing_STATIONS¶
If set to .true., the receivers will be places based on an existing STATIONS file.
- Type:
logical
use_existing_STATIONS = .false.
nreceiversets¶
Number of receiver sets.
- Type:
int
nreceiversets = 1
anglerec¶
Angle to rotate components at receivers
- Type:
real
anglerec = 0.0d0
rec_normal_to_surface¶
If set to .true., the receiver base angle will be set normal to the surface. Requires external mesh and tangential curve file.
- Type:
logical
rec_normal_to_surface = .false.
Note
This paramter is not supported yet in the solver.
Define receiver sets
Next we define each receiver sets using the following parameters:
nrec¶
Number of receivers in this set. The receivers will be placed at equal distances.
- Type
int
nrec = 10
xdeb¶
X coordinate of the first receiver in this set.
- Type:
real
xdeb = 0.0d0
zdeb¶
Y coordinate of the first receiver in this set.
- Type:
real
zdeb = 0.0d0
xfin¶
X coordinate of the last receiver in this set.
- Type:
real
xfin = 6400.0d0
zfin¶
Z coordinate of the last receiver in this set.
- Type:
real
zfin = 0.0d0
record_at_surface_same_vertical¶
If set to .true., the receivers will be placed at the surface of the medium. The vertical position of the receivers will be replaces with topography height.
- Type:
logical
record_at_surface_same_vertical = .false.
stations_filename¶
Name of the STATIONS file to use. if use_existing_STATIONS is set to .true., this defines a file to read receiver locations from. If use_existing_STATIONS is set to .false., this defines a file to write receiver locations to.
- Type:
string
stations_filename = stations.dat