Skip to content

Commit

Permalink
Merge pull request #1226 from cmorency1/devel
Browse files Browse the repository at this point in the history
Electromagnetic (EM) wave propagation simulation - MPI & Par_file fixed!
  • Loading branch information
danielpeter authored May 23, 2024
2 parents 69b8849 + 38dd3fd commit 875b5d0
Show file tree
Hide file tree
Showing 173 changed files with 164,616 additions and 330 deletions.
8 changes: 7 additions & 1 deletion DATA/Par_file
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ ATTENUATION_PORO_FLUID_PART = .false. # turn viscous attenuation on o
Q0_poroelastic = 1 # quality factor for viscous attenuation (ignore it if you are not using a poroelastic material)
freq0_poroelastic = 10 # frequency for viscous attenuation (ignore it if you are not using a poroelastic material)

# for electromagnetic attenuation
ATTENUATION_PERMITTIVITY = .false. # turn permittivity (Zener model) attenuation on or off for electromagnetic material
ATTENUATION_CONDUCTIVITY = .false. # turn conductivity (Kelvin-Voigt model) attenuation on or off for electromagnetic material
f0_electromagnetic = 1d9 # (Hz) relevant only if source is a Dirac or a Heaviside, otherwise it is f0 the dominant frequency of the source in the DATA/SOURCE file

# to undo attenuation and/or PMLs for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use the flag below. It performs undoing of attenuation and/or of PMLs in an exact way for sensitivity kernel calculations
# but requires disk space for temporary storage, and uses a significant amount of memory used as buffers for temporary storage.
Expand Down Expand Up @@ -144,7 +149,7 @@ write_moving_sources_database = .false.
#-----------------------------------------------------------

# receiver set parameters for recording stations (i.e. recording points)
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential 7=electric field
seismotype = 1 # several values can be chosen. For example : 1,2,4

# interval in time steps for writing of seismograms
Expand Down Expand Up @@ -283,6 +288,7 @@ nbmodels = 4
# anisotropic: model_number 2 rho c11 c13 c15 c33 c35 c55 c12 c23 c25 0 QKappa Qmu
# anisotropic in AXISYM: model_number 2 rho c11 c13 c15 c33 c35 c55 c12 c23 c25 c22 QKappa Qmu
# poroelastic: model_number 3 rhos rhof phi c kxx kxz kzz Ks Kf Kfr etaf mufr Qmu
# electromagnetic: model_number 4 mu0 e0 e11(e0) e33(e0) sig11 sig33 Qe11 Qe33 Qs11 Qs33 0 0 0
# tomo: model_number -1 0 0 A 0 0 0 0 0 0 0 0 0 0
#
# note: When viscoelasticity or viscoacousticity is turned on,
Expand Down
7 changes: 6 additions & 1 deletion EXAMPLES/BENCHIE_water_PVC/DATA/Par_file
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ ATTENUATION_PORO_FLUID_PART = .false. # turn viscous attenuation on o
Q0_poroelastic = 1 # quality factor for viscous attenuation (ignore it if you are not using a poroelastic material)
freq0_poroelastic = 10 # frequency for viscous attenuation (ignore it if you are not using a poroelastic material)

# for electromagnetic attenuation
ATTENUATION_PERMITTIVITY = .false. # turn permittivity (Zener model) attenuation on or off for electromagnetic material
ATTENUATION_CONDUCTIVITY = .false. # turn conductivity (Kelvin-Voigt model) attenuation on or off for electromagnetic material
f0_electromagnetic = 1d9 # (Hz) relevant only if source is a Dirac or a Heaviside, otherwise it is f0 the dominant frequency of the source in the DATA/SOURCE file

# to undo attenuation and/or PMLs for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use the flag below. It performs undoing of attenuation and/or of PMLs in an exact way for sensitivity kernel calculations
# but requires disk space for temporary storage, and uses a significant amount of memory used as buffers for temporary storage.
Expand Down Expand Up @@ -144,7 +149,7 @@ write_moving_sources_database = .false.
#-----------------------------------------------------------

# receiver set parameters for recording stations (i.e. recording points)
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential 7=electric field
seismotype = 1 # several values can be chosen. For example : 1,2,4

# interval in time steps for writing of seismograms
Expand Down
7 changes: 6 additions & 1 deletion EXAMPLES/BENCHMARK_CLAERBOUT_ADJOINT/ACOUSTIC/DATA/Par_file
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ ATTENUATION_PORO_FLUID_PART = .false. # turn viscous attenuation on o
Q0_poroelastic = 1 # quality factor for viscous attenuation (ignore it if you are not using a poroelastic material)
freq0_poroelastic = 10 # frequency for viscous attenuation (ignore it if you are not using a poroelastic material)

# for electromagnetic attenuation
ATTENUATION_PERMITTIVITY = .false. # turn permittivity (Zener model) attenuation on or off for electromagnetic material
ATTENUATION_CONDUCTIVITY = .false. # turn conductivity (Kelvin-Voigt model) attenuation on or off for electromagnetic material
f0_electromagnetic = 1d9 # (Hz) relevant only if source is a Dirac or a Heaviside, otherwise it is f0 the dominant frequency of the source in the DATA/SOURCE file

# to undo attenuation and/or PMLs for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use the flag below. It performs undoing of attenuation and/or of PMLs in an exact way for sensitivity kernel calculations
# but requires disk space for temporary storage, and uses a significant amount of memory used as buffers for temporary storage.
Expand Down Expand Up @@ -144,7 +149,7 @@ write_moving_sources_database = .false.
#-----------------------------------------------------------

# receiver set parameters for recording stations (i.e. recording points)
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential 7=electric field
seismotype = 4 # several values can be chosen. For example : 1,2,4

# interval in time steps for writing of seismograms
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ ATTENUATION_PORO_FLUID_PART = .false. # turn viscous attenuation on o
Q0_poroelastic = 1 # quality factor for viscous attenuation (ignore it if you are not using a poroelastic material)
freq0_poroelastic = 10 # frequency for viscous attenuation (ignore it if you are not using a poroelastic material)

# for electromagnetic attenuation
ATTENUATION_PERMITTIVITY = .false. # turn permittivity (Zener model) attenuation on or off for electromagnetic material
ATTENUATION_CONDUCTIVITY = .false. # turn conductivity (Kelvin-Voigt model) attenuation on or off for electromagnetic material
f0_electromagnetic = 1d9 # (Hz) relevant only if source is a Dirac or a Heaviside, otherwise it is f0 the dominant frequency of the source in the DATA/SOURCE file

# to undo attenuation and/or PMLs for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use the flag below. It performs undoing of attenuation and/or of PMLs in an exact way for sensitivity kernel calculations
# but requires disk space for temporary storage, and uses a significant amount of memory used as buffers for temporary storage.
Expand Down Expand Up @@ -144,7 +149,7 @@ write_moving_sources_database = .false.
#-----------------------------------------------------------

# receiver set parameters for recording stations (i.e. recording points)
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential 7=electric field
seismotype = 1 # several values can be chosen. For example : 1,2,4

# interval in time steps for writing of seismograms
Expand Down
7 changes: 6 additions & 1 deletion EXAMPLES/BENCHMARK_CLAERBOUT_ADJOINT/ELASTIC/DATA/Par_file
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ ATTENUATION_PORO_FLUID_PART = .false. # turn viscous attenuation on o
Q0_poroelastic = 1 # quality factor for viscous attenuation (ignore it if you are not using a poroelastic material)
freq0_poroelastic = 10 # frequency for viscous attenuation (ignore it if you are not using a poroelastic material)

# for electromagnetic attenuation
ATTENUATION_PERMITTIVITY = .false. # turn permittivity (Zener model) attenuation on or off for electromagnetic material
ATTENUATION_CONDUCTIVITY = .false. # turn conductivity (Kelvin-Voigt model) attenuation on or off for electromagnetic material
f0_electromagnetic = 1d9 # (Hz) relevant only if source is a Dirac or a Heaviside, otherwise it is f0 the dominant frequency of the source in the DATA/SOURCE file

# to undo attenuation and/or PMLs for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use the flag below. It performs undoing of attenuation and/or of PMLs in an exact way for sensitivity kernel calculations
# but requires disk space for temporary storage, and uses a significant amount of memory used as buffers for temporary storage.
Expand Down Expand Up @@ -144,7 +149,7 @@ write_moving_sources_database = .false.
#-----------------------------------------------------------

# receiver set parameters for recording stations (i.e. recording points)
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential 7=electric field
seismotype = 1 # several values can be chosen. For example : 1,2,4

# interval in time steps for writing of seismograms
Expand Down
86 changes: 45 additions & 41 deletions EXAMPLES/Gmsh_example_CPML_MPI/DATA/Par_file
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ MODEL = default
# (available output formats: ascii,binary,gll,legacy)
SAVE_MODEL = default

# external tomography file
# (used for tomography materials with negative material ids and/or MODEL==tomo settings)
TOMOGRAPHY_FILE = ./DATA/tomo_file.xyz

#-----------------------------------------------------------
#
Expand All @@ -90,6 +93,11 @@ ATTENUATION_PORO_FLUID_PART = .false. # turn viscous attenuation on o
Q0_poroelastic = 1 # quality factor for viscous attenuation (ignore it if you are not using a poroelastic material)
freq0_poroelastic = 10 # frequency for viscous attenuation (ignore it if you are not using a poroelastic material)

# for electromagnetic attenuation
ATTENUATION_PERMITTIVITY = .false. # turn permittivity (Zener model) attenuation on or off for electromagnetic material
ATTENUATION_CONDUCTIVITY = .false. # turn conductivity (Kelvin-Voigt model) attenuation on or off for electromagnetic material
f0_electromagnetic = 1d9 # (Hz) relevant only if source is a Dirac or a Heaviside, otherwise it is f0 the dominant frequency of the source in the DATA/SOURCE file

# to undo attenuation and/or PMLs for sensitivity kernel calculations or forward runs with SAVE_FORWARD
# use the flag below. It performs undoing of attenuation and/or of PMLs in an exact way for sensitivity kernel calculations
# but requires disk space for temporary storage, and uses a significant amount of memory used as buffers for temporary storage.
Expand Down Expand Up @@ -141,8 +149,8 @@ write_moving_sources_database = .false.
#-----------------------------------------------------------

# receiver set parameters for recording stations (i.e. recording points)
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential
seismotype = 1,4 # several values can be chosen. For example : 1,2,4
# seismotype : record 1=displ 2=veloc 3=accel 4=pressure 5=curl of displ 6=the fluid potential 7=electric field
seismotype = 1,4 # several values can be chosen. For example : 1,2,4

# interval in time steps for writing of seismograms
# every how many time steps we save the seismograms
Expand Down Expand Up @@ -239,12 +247,41 @@ PERIODIC_HORIZ_DIST = 4000.d0

#-----------------------------------------------------------
#
# Velocity and density models
# MESHING - Velocity and density models
#
#-----------------------------------------------------------

# use an external mesh created by an external meshing tool or use the internal mesher
read_external_mesh = .true.

#-----------------------------------------------------------
#
# PARAMETERS FOR EXTERNAL MESHING
#
#-----------------------------------------------------------

# data concerning mesh, when generated using third-party app (more info in README)
# (see also absorbing_conditions above)
mesh_file = ./MESH/Mesh_test # file containing the mesh
nodes_coords_file = ./MESH/Nodes_test # file containing the nodes coordinates
materials_file = ./MESH/Material_test # file containing the material number for each element
nummaterial_velocity_file = ./MESH/nummaterial_velocity_file # file containing the material properties for each material
free_surface_file = ./MESH/Surf_free_test # file containing the free surface
axial_elements_file = dummy # file containing the axial elements if AXISYM is true
absorbing_surface_file = ./MESH/Surf_abs_test # file containing the absorbing surface
acoustic_forcing_surface_file = dummy # file containing the acoustic forcing surface
absorbing_cpml_file = ./MESH/EltPML_test # file containing the CPML element numbers
tangential_detection_curve_file = dummy # file containing the curve delimiting the velocity model

#-----------------------------------------------------------
#
# PARAMETERS FOR INTERNAL MESHING
#
#-----------------------------------------------------------

# material properties
# number of model materials
nbmodels = 2 # use MESH/nummaterial_velocity_file instead
nbmodels = 2
# available material types (see user manual for more information)
# acoustic: model_number 1 rho Vp 0 0 0 QKappa 9999 0 0 0 0 0 0 (for QKappa use 9999 to ignore it)
# elastic: model_number 1 rho Vp Vs 0 0 QKappa Qmu 0 0 0 0 0 0 (for QKappa and Qmu use 9999 to ignore them)
Expand All @@ -264,47 +301,14 @@ nbmodels = 2 # use MESH/nummaterial_velocity_file instead
# 1 subsurface, 2 water
1 1 1850.d0 2400.d0 1200.d0 0 0 9999 9999 0 0 0 0 0 0
2 1 1020.d0 1500.d0 0 0 0 9999 9999 0 0 0 0 0 0
#3 1 2200.d0 2500.d0 1443.375d0 0 0 9999 9999 0 0 0 0 0 0
#4 1 2200.d0 2200.d0 1343.375d0 0 0 9999 9999 0 0 0 0 0 0

# external tomography file
TOMOGRAPHY_FILE = ./DATA/tomo_file.xyz

# use an external mesh created by an external meshing tool or use the internal mesher
read_external_mesh = .true.

#-----------------------------------------------------------
#
# PARAMETERS FOR EXTERNAL MESHING
#
#-----------------------------------------------------------

# data concerning mesh, when generated using third-party app (more info in README)
# (see also absorbing_conditions above)
mesh_file = ./MESH/Mesh_test # file containing the mesh
nodes_coords_file = ./MESH/Nodes_test # file containing the nodes coordinates
materials_file = ./MESH/Material_test # file containing the material number for each element
nummaterial_velocity_file = ./MESH/nummaterial_velocity_file # file containing the material properties for each material
free_surface_file = ./MESH/Surf_free_test # file containing the free surface
axial_elements_file = dummy # file containing the axial elements if AXISYM is true
absorbing_surface_file = ./MESH/Surf_abs_test # file containing the absorbing surface
acoustic_forcing_surface_file = dummy # file containing the acoustic forcing surface
absorbing_cpml_file = ./MESH/EltPML_test # file containing the CPML element numbers
tangential_detection_curve_file = dummy # file containing the curve delimiting the velocity model

#-----------------------------------------------------------
#
# PARAMETERS FOR INTERNAL MESHING
#
#-----------------------------------------------------------

# file containing interfaces for internal mesh
interfacesfile = ./interfaces.dat

# geometry of the model (origin lower-left corner = 0,0) and mesh description
xmin = 0.d0 # abscissa of left side of the model
xmax = 100000.d0 # abscissa of right side of the model
nx = 1333 # number of elements along X
xmax = 100000.d0 # abscissa of right side of the model
nx = 1333 # number of elements along X

# absorbing boundary parameters (see absorbing_conditions above)
absorbbottom = .true.
Expand Down Expand Up @@ -358,7 +362,7 @@ cutsnaps = 1.

#### for JPEG color images ####
output_color_image = .true. # output JPEG color image of the results every NTSTEP_BETWEEN_OUTPUT_IMAGES time steps or not
imagetype_JPEG = 10 # display 1=displ_Ux 2=displ_Uz 3=displ_norm 4=veloc_Vx 5=veloc_Vz 6=veloc_norm 7=accel_Ax 8=accel_Az 9=accel_norm 10=pressure
imagetype_JPEG = 10 # display 1=displ_Ux 2=displ_Uz 3=displ_norm 4=veloc_Vx 5=veloc_Vz 6=veloc_norm 7=accel_Ax 8=accel_Az 9=accel_norm 10=pressure
factor_subsample_image = 1.0d0 # (double precision) factor to subsample or oversample (if set to e.g. 0.5) color images output by the code (useful for very large models, or to get nicer looking denser pictures)
USE_CONSTANT_MAX_AMPLITUDE = .false. # by default the code normalizes each image independently to its maximum; use this option to use the global maximum below instead
CONSTANT_MAX_AMPLITUDE_TO_USE = 1.17d4 # constant maximum amplitude to use for all color images if the above USE_CONSTANT_MAX_AMPLITUDE option is true
Expand All @@ -368,7 +372,7 @@ DRAW_WATER_IN_BLUE = .true. # display acoustic layers as co
USE_SNAPSHOT_NUMBER_IN_FILENAME = .false. # use snapshot number in the file name of JPEG color snapshots instead of the time step (for instance to create movies in an easier way later)

#### for PostScript snapshots ####
output_postscript_snapshot = .false. # output Postscript snapshot of the results every NTSTEP_BETWEEN_OUTPUT_IMAGES time steps or not
output_postscript_snapshot = .false. # output Postscript snapshot of the results every NTSTEP_BETWEEN_OUTPUT_IMAGES time steps or not
imagetype_postscript = 1 # display 1=displ vector 2=veloc vector 3=accel vector; small arrows are displayed for the vectors
meshvect = .true. # display mesh on PostScript plots or not
modelvect = .false. # display velocity model on PostScript plots or not
Expand Down
Loading

0 comments on commit 875b5d0

Please sign in to comment.