Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,10 @@ Note: The reference code provided in no_attenuation_analytical/ folder is not co
While the code provided in check_absolute_amplitude_of_pressure_source_seismograms_acoustic/analytical_solution_viscoacoustic_Carcione_version1.f90
is dividing the source by 4 * PI * cp^2 to get the right amplitude directly.

Note about source time function:
This example uses the feature USE_TRICK_FOR_BETTER_PRESSURE in DATA/Par_file to compute the pressure trace as a second-order accurate solution.
With this trick, pressure relates to the acoustic potential instead of potential_dot_dot by taking the second derivative of the source time function.
In SPECFEM2D, the Gaussian wavelet (time_function_type == 3) is defined such that its second derivative becomes the Ricker wavelet. Thus, you will see
a Ricker wavelet as source time function in OUTPUT_FILES/plot_source_time_function.txt and not a Gaussian.


Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,9 @@ Note: The reference code provided in attenuation_viscoacoustic_NSLS_3/ folder is
While the code provided in check_absolute_amplitude_of_pressure_source_seismograms_acoustic/analytical_solution_viscoacoustic_Carcione_version1.f90
is dividing the source by 4 * PI * cp^2 to get the right amplitude directly.

Note about source time function:
This example uses the feature USE_TRICK_FOR_BETTER_PRESSURE in DATA/Par_file to compute the pressure trace as a second-order accurate solution.
With this trick, pressure relates to the acoustic potential instead of potential_dot_dot by taking the second derivative of the source time function.
In SPECFEM2D, the Gaussian wavelet (time_function_type == 3) is defined such that its second derivative becomes the Ricker wavelet. Thus, you will see
a Ricker wavelet as source time function in OUTPUT_FILES/plot_source_time_function.txt and not a Gaussian.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set term x11
set xrange [0:0.600]


plot "attenuation_viscoacoustic_NSLS_3/pressure_time_analytical_solution_viscoacoustic_800.dat" title 'Quasi-analytical pressure Carcione NSLS = 3' w l lc 3, "OUTPUT_FILES/AA.S0001.PRE.semp" title 'SPECFEM2D pressure with viscoacoustic' w l lc 2, "../viscoacoustic_attenuation_off_versus_analytical/OUTPUT_FILES/AA.S0001.PRE.semp" title 'SPECFEM2D pressure without viscoacoustic' w l lc 4
plot "attenuation_viscoacoustic_NSLS_3/pressure_time_analytical_solution_viscoacoustic_800.dat" title 'Quasi-analytical pressure Carcione NSLS = 3' w l lc 3, "OUTPUT_FILES/AA.S0001.PRE.semp" title 'SPECFEM2D pressure with viscoacoustic' w l lc 2, "../viscoacoustic_attenuation_off_versus_analytical/REF_SEIS/AA.S0001.PRE.semp" title 'SPECFEM2D pressure without viscoacoustic' w l lc 4
pause -1 "Hit any key..."

plot "attenuation_viscoacoustic_NSLS_3/pressure_time_analytical_solution_viscoacoustic_800.dat" title 'Quasi-analytical pressure Carcione NSLS = 3' w l lc 3, "OUTPUT_FILES/AA.S0001.PRE.semp" title 'SPECFEM2D pressure with viscoacoustic' w l lc 2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ set ylabel "Amplitude of displacement component (m)"

set xrange [0:0.8]

plot "REF_SEIS/elastic_AA.S0001.BXX.semd" t 'Numerical Ux elastic' w l lc 4, "Ux_time_analytical_solution_elastic.dat" t 'Quasi-analytical Ux elastic' w l lc 5, "OUTPUT_FILES/AA.S0001.BXX.semd" t 'Numerical Ux viscoelastic' w l lc 1, "Ux_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Ux viscoelastic' w l lc 3
plot "REF_SEIS/elastic_AA.S0001.FXX.semd" t 'Numerical Ux elastic' w l lc 4, "Ux_time_analytical_solution_elastic.dat" t 'Quasi-analytical Ux elastic' w l lc 5, "OUTPUT_FILES/AA.S0001.FXX.semd" t 'Numerical Ux viscoelastic' w l lc 1, "Ux_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Ux viscoelastic' w l lc 3
pause -1 "Hit any key..."

plot "REF_SEIS/elastic_AA.S0001.BXZ.semd" t 'Numerical Uz elastic' w l lc 4, "Uz_time_analytical_solution_elastic.dat" t 'Quasi-analytical Uz elastic' w l lc 5, "OUTPUT_FILES/AA.S0001.BXZ.semd" t 'Numerical Uz viscoelastic' w l lc 1, "Uz_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic' w l lc 3
plot "REF_SEIS/elastic_AA.S0001.FXZ.semd" t 'Numerical Uz elastic' w l lc 4, "Uz_time_analytical_solution_elastic.dat" t 'Quasi-analytical Uz elastic' w l lc 5, "OUTPUT_FILES/AA.S0001.FXZ.semd" t 'Numerical Uz viscoelastic' w l lc 1, "Uz_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic' w l lc 3
pause -1 "Hit any key..."

Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ set xrange [0:0.8]
# thus, to compare to the standard reference, one needs to invert the sign of Ux (but leave the sign of Uz unchanged)
factor_to_invert_Ux_Denmark = -1

plot "OUTPUT_FILES/AA.S0001.BXX.semd" t 'Numerical Ux elastic' w l lc 5, "Ux_time_analytical_solution_elastic_time_domain.dat" t 'Ux my analytical code in the time domain' w l lc 4, "Ux_file_analytical_from_Denmark.dat" using 1:(factor_to_invert_Ux_Denmark*$2) t 'Ux other analytical code from Denmark' w l lc 1, "Ux_time_analytical_solution_elastic.dat" t 'Quasi-analytical Ux elastic Carcione in frequency' w l lc 3
plot "OUTPUT_FILES/AA.S0001.FXX.semd" t 'Numerical Ux elastic' w l lc 5, "Ux_time_analytical_solution_elastic_time_domain.dat" t 'Ux my analytical code in the time domain' w l lc 4, "Ux_file_analytical_from_Denmark.dat" using 1:(factor_to_invert_Ux_Denmark*$2) t 'Ux other analytical code from Denmark' w l lc 1, "Ux_time_analytical_solution_elastic.dat" t 'Quasi-analytical Ux elastic Carcione in frequency' w l lc 3
pause -1 "Hit any key..."

plot "OUTPUT_FILES/AA.S0001.BXZ.semd" t 'Numerical Uz elastic' w l lc 5, "Uz_time_analytical_solution_elastic_time_domain.dat" t 'Uz my analytical code in the time domain' w l lc 4, "Uz_file_analytical_from_Denmark.dat" t 'Uz other analytical code from Denmark' w l lc 1, "Uz_time_analytical_solution_elastic.dat" t 'Quasi-analytical Uz elastic Carcione in frequency' w l lc 3
plot "OUTPUT_FILES/AA.S0001.FXZ.semd" t 'Numerical Uz elastic' w l lc 5, "Uz_time_analytical_solution_elastic_time_domain.dat" t 'Uz my analytical code in the time domain' w l lc 4, "Uz_file_analytical_from_Denmark.dat" t 'Uz other analytical code from Denmark' w l lc 1, "Uz_time_analytical_solution_elastic.dat" t 'Quasi-analytical Uz elastic Carcione in frequency' w l lc 3
pause -1 "Hit any key..."

Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ set ylabel "Amplitude of displacement component (m)"

set xrange [0:0.8]

plot "OUTPUT_FILES/AA.S0001.BXX.semd" t 'Numerical Ux viscoelastic' w l lc 4, "Ux_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
plot "OUTPUT_FILES/AA.S0001.FXX.semd" t 'Numerical Ux viscoelastic' w l lc 4, "Ux_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
pause -1 "Hit any key..."

plot "OUTPUT_FILES/AA.S0001.BXZ.semd" t 'Numerical Uz viscoelastic' w l lc 4, "Uz_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
plot "OUTPUT_FILES/AA.S0001.FXZ.semd" t 'Numerical Uz viscoelastic' w l lc 4, "Uz_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
pause -1 "Hit any key..."

#####################

plot "OUTPUT_FILES/AA.S0001.BXX.semd" t 'Numerical Ux viscoelastic' w l lc 4, "Ux_time_analytical_solution_elastic.dat" t 'Quasi-analytical Ux elastic Carcione in frequency' w l lc 3, "Ux_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
plot "OUTPUT_FILES/AA.S0001.FXX.semd" t 'Numerical Ux viscoelastic' w l lc 4, "Ux_time_analytical_solution_elastic.dat" t 'Quasi-analytical Ux elastic Carcione in frequency' w l lc 3, "Ux_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
pause -1 "Hit any key..."

plot "OUTPUT_FILES/AA.S0001.BXZ.semd" t 'Numerical Uz viscoelastic' w l lc 4, "Uz_time_analytical_solution_elastic.dat" t 'Quasi-analytical Uz elastic Carcione in frequency' w l lc 3, "Uz_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
plot "OUTPUT_FILES/AA.S0001.FXZ.semd" t 'Numerical Uz viscoelastic' w l lc 4, "Uz_time_analytical_solution_elastic.dat" t 'Quasi-analytical Uz elastic Carcione in frequency' w l lc 3, "Uz_time_analytical_solution_viscoelastic.dat" t 'Quasi-analytical Uz viscoelastic Carcione in frequency' w l lc 1
pause -1 "Hit any key..."

Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,11 @@ Note that because our example has no absorbing conditions on the edges of the gr
Beware that the reference solution is not exact, only quasi-exact (i.e., the formulation uses an approximation, and some integrals are computed numerically) therefore some tiny discrepancies can be noticed.

----------------------------------------------------------------------

Note about source time function:

This example uses the feature USE_TRICK_FOR_BETTER_PRESSURE in DATA/Par_file to compute the pressure trace as a second-order accurate solution.
With this trick, pressure relates to the acoustic potential instead of potential_dot_dot by taking the second derivative of the source time function.
In SPECFEM2D, the Gaussian wavelet (time_function_type == 3) is defined such that its second derivative becomes the Ricker wavelet. Thus, you will see
a Ricker wavelet as source time function in OUTPUT_FILES/plot_source_time_function.txt and not a Gaussian.

Loading
Loading