Fluid-solid interface with bathymetry

This example (see benchmarks/src/dim2/fluid-solid-bathymetry) simulates wave propagation in a tele-seismic plane wave scenario within a fluid-solid domain with complex bathymetry. This example demonstrates the use of the xmeshfem2D mesher to generate interface between 2 conforming material systems with realistic seafloor topography and the setting up absorbing boundary conditions. This example is contributed by Sirawich Pipatprathanporn and is part of the publication Pipatprathanporn et al. (2024).

Setting up the workspace

Let’s start by creating a workspace from where we can run this example.

mkdir -p ~/specfempp-examples/fluid-solid-bathymetry
cd ~/specfempp-examples/fluid-solid-bathymetry

We also need to check that the SPECFEM++ executable directory is added to the PATH.

which specfem2d

If the above command returns a path to the specfem2d executable, then the executable directory is added to the PATH. If not, you need to add the executable directory to the PATH using the following command.

export PATH=$PATH:<PATH TO SPECFEM++ DIRECTORY/bin>

Note

Make sure to replace <PATH TO SPECFEM++ DIRECTORY/bin> with the actual path to the SPECFEM++ directory on your system.

Now let’s create the necessary directories to store the input files and output artifacts.

mkdir -p OUTPUT_FILES
mkdir -p OUTPUT_FILES/seismograms
mkdir -p OUTPUT_FILES/results
mkdir -p OUTPUT_FILES/display

touch specfem_config.yaml
touch line_source.yaml
touch topography_file.dat
touch Par_file

Meshing the domain

We first start by generating a mesh for our simulation domain using xmeshfem2D. To do this, we first define our simulation domain and the meshing parameters in a parameter file.

Parameter file

Par_file
#-----------------------------------------------------------
#
# Simulation input parameters
#
#-----------------------------------------------------------

# title of job
title                           = fluid-solid-bathymetry

# parameters concerning partitioning
NPROC                           = 1              # number of processes

# Output folder to store mesh related files
OUTPUT_FILES                   = OUTPUT_FILES

#-----------------------------------------------------------
#
# Mesh
#
#-----------------------------------------------------------

# Partitioning algorithm for decompose_mesh
PARTITIONING_TYPE               = 3              # SCOTCH = 3, ascending order (very bad idea) = 1

# number of control nodes per element (4 or 9)
NGNOD                           = 9

# location to store the mesh
database_filename               = OUTPUT_FILES/database.bin

#-----------------------------------------------------------
#
# Receivers
#
#-----------------------------------------------------------

# use an existing STATION file found in ./DATA or create a new one from the receiver positions below in this Par_file
use_existing_STATIONS           = .false.

# number of receiver sets (i.e. number of receiver lines to create below)
nreceiversets                   = 2

# orientation
anglerec                        = 0.d0           # angle to rotate components at receivers
rec_normal_to_surface           = .false.        # base anglerec normal to surface (external mesh and curve file needed)

# first receiver set (repeat these 6 lines and adjust nreceiversets accordingly)
nrec                            = 1              # number of receivers
xdeb                            = 1.000d+04      # first receiver x in meters
zdeb                            = 8.082d+03      # first receiver z in meters
xfin                            = 1.000d+04      # last receiver x in meters (ignored if only one receiver)
zfin                            = 8.082d+03      # last receiver z in meters (ignored if only one receiver)
record_at_surface_same_vertical = .false.        # receivers inside the medium or at the surface


# second receiver set (repeat these 6 lines and adjust nreceiversets accordingly)
nrec                            = 1              # number of receivers
xdeb                            = 1.000d+04      # first receiver x in meters
zdeb                            = 5.472d+03      # first receiver z in meters
xfin                            = 1.000d+04      # last receiver x in meters (ignored if only one receiver)
zfin                            = 5.472d+03      # last receiver z in meters (ignored if only one receiver)
record_at_surface_same_vertical = .false.        # receivers inside the medium or at the surface

# filename to store stations file
stations_filename              = OUTPUT_FILES/STATIONS

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

# number of model materials
nbmodels                        = 2
# available material types (see user manual for more information)
#   acoustic:    model_number 1 rho Vp 0  0 0 QKappa Qmu 0 0 0 0 0 0
#   elastic:     model_number 1 rho Vp Vs 0 0 QKappa Qmu 0 0 0 0 0 0
#   anistoropic: model_number 2 rho c11 c13 c15 c33 c35 c55 c12 c23 c25 0 0 0
#   poroelastic: model_number 3 rhos rhof phi c kxx kxz kzz Ks Kf Kfr etaf mufr Qmu
#   tomo:        model_number -1 0 9999 9999 A 0 0 9999 9999 0 0 0 0 0
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

# 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              = .false.

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

# data concerning mesh, when generated using third-party app (more info in README)
# (see also absorbing_conditions above)
mesh_file                       = ./DATA/Mesh_canyon/canyon_mesh_file   # file containing the mesh
nodes_coords_file               = ./DATA/Mesh_canyon/canyon_nodes_coords_file   # file containing the nodes coordinates
materials_file                  = ./DATA/Mesh_canyon/canyon_materials_file   # file containing the material number for each element
free_surface_file               = ./DATA/Mesh_canyon/canyon_free_surface_file   # file containing the free surface
axial_elements_file             = ./DATA/axial_elements_file   # file containing the axial elements if AXISYM is true
absorbing_surface_file          = ./DATA/Mesh_canyon/canyon_absorbing_surface_file   # file containing the absorbing surface
acoustic_forcing_surface_file   = ./DATA/MSH/Surf_acforcing_Bottom_enforcing_mesh   # file containing the acoustic forcing surface
absorbing_cpml_file             = ./DATA/absorbing_cpml_file   # file containing the CPML element numbers
tangential_detection_curve_file = ./DATA/courbe_eros_nodes  # file containing the curve delimiting the velocity model

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

# file containing interfaces for internal mesh
interfacesfile                  = topography_file.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                            = 2.000d+04        # abscissa of right side of the model
nx                              = 250              # number of elements along X

STACEY_ABSORBING_CONDITIONS       = .true.        # use Stacey absorbing boundary conditions

# absorbing boundary parameters (see absorbing_conditions above)
absorbbottom                    = .true.
absorbright                     = .true.
absorbtop                       = .false.
absorbleft                      = .true.

# define the different regions of the model in the (nx,nz) spectral-element mesh
nbregions                       = 2              # then set below the different regions and model number for each region
1 250 1   62  1
1 250 63  120 2

#-----------------------------------------------------------
#
# DISPLAY PARAMETERS
#
#-----------------------------------------------------------

# meshing output
output_grid_Gnuplot             = .false.        # generate a GNUPLOT file containing the grid, and a script to plot it
output_grid_ASCII               = .false.        # dump the grid in an ASCII text file consisting of a set of X,Y,Z points or not

Key features of this parameter file:

  • Line 74: Defines 2 material systems (nbmodels = 2)

  • Lines 81-82: Material definitions for elastic (2500 kg/m³, Vp=3400 m/s, Vs=1963 m/s) and acoustic (1020 kg/m³, Vp=1500 m/s) domains

  • Lines 122-128: Stacey absorbing boundary conditions on bottom, right, and left edges, with free surface on top

  • Line 115: References the topography file for complex bathymetry interface

Defining the bathymetry

The bathymetry is a critical component of this simulation as it defines the complex seafloor interface between the acoustic (water) and elastic (solid) domains. The topography file uses SPECFEM2D’s internal meshing format to describe three interfaces and their mesh discretization.

Topography file structure

topography_file.dat
#
# number of interfaces
#
 3
#
# for each interface below, we give the number of points and then x,z for each point
#
#
# interface number 1 (bottom of the mesh)
#
 2
 0 0
 20000 0
#
# interface number 2
#
 501
     0   4441
    40   4446
    80   4451
   120   4456
   160   4461
   200   4466
   240   4470
   280   4475
   320   4480
   360   4485
   400   4490
   440   4494
   480   4498
   520   4502
   560   4506
   600   4510
   640   4514
   680   4518
   720   4522
   760   4526
   800   4530
   840   4534
   880   4539
   920   4545
   960   4550
  1000   4556
  1040   4561
  1080   4567
  1120   4573
  1160   4578
  1200   4584
  1240   4590
  1280   4595
  1320   4600
  1360   4602
  1400   4603
  1440   4604
  1480   4605
  1520   4606
  1560   4607
  1600   4608
  1640   4609
  1680   4610
  1720   4611
  1760   4612
  1800   4616
  1840   4621
  1880   4626
  1920   4631
  1960   4636
  2000   4641
  2040   4647
  2080   4652
  2120   4657
  2160   4663
  2200   4668
  2240   4674
  2280   4680
  2320   4685
  2360   4691
  2400   4697
  2440   4702
  2480   4708
  2520   4713
  2560   4719
  2600   4724
  2640   4730
  2680   4735
  2720   4734
  2760   4734
  2800   4733
  2840   4733
  2880   4732
  2920   4732
  2960   4731
  3000   4731
  3040   4730
  3080   4730
  3120   4729
  3160   4731
  3200   4732
  3240   4734
  3280   4736
  3320   4738
  3360   4740
  3400   4742
  3440   4743
  3480   4745
  3520   4747
  3560   4749
  3600   4751
  3640   4754
  3680   4756
  3720   4759
  3760   4761
  3800   4764
  3840   4767
  3880   4769
  3920   4772
  3960   4775
  4000   4777
  4040   4780
  4080   4786
  4120   4792
  4160   4798
  4200   4804
  4240   4810
  4280   4817
  4320   4823
  4360   4829
  4400   4835
  4440   4842
  4480   4848
  4520   4854
  4560   4859
  4600   4864
  4640   4870
  4680   4875
  4720   4880
  4760   4886
  4800   4891
  4840   4897
  4880   4902
  4920   4907
  4960   4913
  5000   4921
  5040   4928
  5080   4935
  5120   4943
  5160   4950
  5200   4957
  5240   4965
  5280   4972
  5320   4979
  5360   4986
  5400   4993
  5440   5004
  5480   5014
  5520   5024
  5560   5035
  5600   5045
  5640   5055
  5680   5066
  5720   5076
  5760   5087
  5800   5097
  5840   5107
  5880   5113
  5920   5116
  5960   5118
  6000   5121
  6040   5124
  6080   5126
  6120   5129
  6160   5131
  6200   5134
  6240   5137
  6280   5139
  6320   5143
  6360   5147
  6400   5152
  6440   5156
  6480   5161
  6520   5166
  6560   5170
  6600   5175
  6640   5179
  6680   5184
  6720   5189
  6760   5193
  6800   5200
  6840   5207
  6880   5213
  6920   5220
  6960   5227
  7000   5235
  7040   5242
  7080   5249
  7120   5256
  7160   5264
  7200   5271
  7240   5280
  7280   5290
  7320   5300
  7360   5309
  7400   5319
  7440   5329
  7480   5339
  7520   5349
  7560   5359
  7600   5369
  7640   5379
  7680   5387
  7720   5382
  7760   5376
  7800   5371
  7840   5365
  7880   5359
  7920   5354
  7960   5348
  8000   5343
  8040   5337
  8080   5331
  8120   5325
  8160   5324
  8200   5324
  8240   5323
  8280   5323
  8320   5323
  8360   5322
  8400   5322
  8440   5321
  8480   5321
  8520   5320
  8560   5319
  8600   5323
  8640   5331
  8680   5339
  8720   5347
  8760   5354
  8800   5362
  8840   5370
  8880   5378
  8920   5385
  8960   5393
  9000   5400
  9040   5407
  9080   5410
  9120   5413
  9160   5416
  9200   5419
  9240   5421
  9280   5424
  9320   5427
  9360   5429
  9400   5432
  9440   5434
  9480   5437
  9520   5440
  9560   5443
  9600   5446
  9640   5449
  9680   5452
  9720   5455
  9760   5458
  9800   5461
  9840   5463
  9880   5466
  9920   5468
  9960   5470
 10000   5472
 10040   5475
 10080   5477
 10120   5479
 10160   5481
 10200   5483
 10240   5485
 10280   5487
 10320   5490
 10360   5492
 10400   5493
 10440   5492
 10480   5491
 10520   5489
 10560   5488
 10600   5487
 10640   5485
 10680   5484
 10720   5483
 10760   5481
 10800   5481
 10840   5480
 10880   5473
 10920   5464
 10960   5455
 11000   5445
 11040   5436
 11080   5427
 11120   5418
 11160   5409
 11200   5400
 11240   5391
 11280   5382
 11320   5376
 11360   5374
 11400   5372
 11440   5370
 11480   5368
 11520   5366
 11560   5363
 11600   5361
 11640   5359
 11680   5357
 11720   5354
 11760   5352
 11800   5349
 11840   5345
 11880   5341
 11920   5338
 11960   5334
 12000   5331
 12040   5327
 12080   5324
 12120   5320
 12160   5317
 12200   5314
 12240   5311
 12280   5309
 12320   5307
 12360   5305
 12400   5302
 12440   5300
 12480   5298
 12520   5296
 12560   5294
 12600   5291
 12640   5289
 12680   5285
 12720   5277
 12760   5269
 12800   5261
 12840   5253
 12880   5245
 12920   5237
 12960   5229
 13000   5221
 13040   5213
 13080   5205
 13120   5197
 13160   5191
 13200   5184
 13240   5178
 13280   5171
 13320   5165
 13360   5158
 13400   5152
 13440   5145
 13480   5138
 13520   5132
 13560   5125
 13600   5120
 13640   5115
 13680   5111
 13720   5107
 13760   5103
 13800   5099
 13840   5095
 13880   5090
 13920   5086
 13960   5082
 14000   5078
 14040   5071
 14080   5057
 14120   5043
 14160   5029
 14200   5015
 14240   5001
 14280   4987
 14320   4973
 14360   4959
 14400   4946
 14440   4932
 14480   4919
 14520   4910
 14560   4903
 14600   4896
 14640   4888
 14680   4881
 14720   4874
 14760   4867
 14800   4860
 14840   4852
 14880   4845
 14920   4838
 14960   4833
 15000   4831
 15040   4829
 15080   4827
 15120   4824
 15160   4822
 15200   4820
 15240   4818
 15280   4815
 15320   4813
 15360   4811
 15400   4809
 15440   4807
 15480   4805
 15520   4804
 15560   4802
 15600   4800
 15640   4799
 15680   4797
 15720   4795
 15760   4793
 15800   4791
 15840   4789
 15880   4784
 15920   4777
 15960   4770
 16000   4763
 16040   4757
 16080   4750
 16120   4743
 16160   4736
 16200   4729
 16240   4722
 16280   4715
 16320   4710
 16360   4707
 16400   4703
 16440   4700
 16480   4696
 16520   4693
 16560   4690
 16600   4686
 16640   4683
 16680   4680
 16720   4677
 16760   4673
 16800   4670
 16840   4667
 16880   4664
 16920   4660
 16960   4657
 17000   4654
 17040   4651
 17080   4647
 17120   4644
 17160   4641
 17200   4637
 17240   4635
 17280   4633
 17320   4631
 17360   4629
 17400   4627
 17440   4625
 17480   4623
 17520   4621
 17560   4619
 17600   4617
 17640   4616
 17680   4615
 17720   4617
 17760   4620
 17800   4622
 17840   4624
 17880   4626
 17920   4628
 17960   4630
 18000   4632
 18040   4634
 18080   4636
 18120   4637
 18160   4636
 18200   4634
 18240   4633
 18280   4632
 18320   4630
 18360   4629
 18400   4627
 18440   4626
 18480   4624
 18520   4623
 18560   4621
 18600   4620
 18640   4619
 18680   4618
 18720   4616
 18760   4615
 18800   4614
 18840   4612
 18880   4611
 18920   4609
 18960   4607
 19000   4606
 19040   4606
 19080   4610
 19120   4615
 19160   4619
 19200   4623
 19240   4628
 19280   4632
 19320   4636
 19360   4640
 19400   4644
 19440   4648
 19480   4653
 19520   4650
 19560   4647
 19600   4644
 19640   4641
 19680   4638
 19720   4635
 19760   4632
 19800   4629
 19840   4626
 19880   4623
 19920   4620
 19960   4610
 20000   4596
#
# interface number 3 (topography, top of the mesh)
#
 2
     0 9600
 20000 9600
#
# for each layer, we give the number of spectral elements in the vertical direction
#
#
# layer number 1 (bottom layer)
#
## The original 2000 Geophysics paper used nz = 90 but NGLLZ = 6
## here I rescale it to nz = 108 and NGLLZ = 5 because nowadays we almost always use NGLLZ = 5
 62
#
# layer number 2 (top layer)
#
 58

The topography file defines three interfaces:

  1. Interface 1 (bottom boundary): A simple horizontal line at z=0 defining the bottom of the computational domain:

    • 2 points: (0,0) and (20000,0)

    • Serves as the bottom absorbing boundary

  2. Interface 2 (seafloor bathymetry): The complex seafloor topography with 501 points spanning from x=0 to x=20000 meters:

    • Points are spaced every 40 meters horizontally

    • Depth varies from ~4441m to ~4653m, creating realistic seafloor relief

    • This interface separates the elastic solid (below) from acoustic fluid (above)

    • The bathymetry shows gradual depth variations typical of abyssal seafloor

  3. Interface 3 (free surface): A flat horizontal surface at z=9600m representing the ocean surface:

    • 2 points: (0,9600) and (20000,9600)

    • Acts as the free surface boundary for acoustic waves

Layer discretization: The file also specifies the number of spectral elements in each layer:

  • Layer 1 (seafloor to bottom): 62 elements vertically

  • Layer 2 (seafloor to surface): 58 elements vertically

This creates a mesh where the acoustic domain (water) sits above the complex bathymetry, and the elastic domain (solid earth) lies below it. The varying seafloor depth creates realistic wave scattering and conversion effects at the fluid-solid interface.

Running xmeshfem2D

To execute the mesher run:

xmeshfem2D -p Par_file

Note

Make sure either you are in the build directory of SPECFEM2D kokkos or the ../path/to/specfempp/bin directory is added to your PATH.

Note the path of the database file and a stations file generated after successfully running the mesher.

Running the solver

After successfully meshing the domain, we can now define the source and run the solver.

Defining the source

This example simulates a tele-seismic plane wave by creating a distributed source system using 234 moment-tensor sources. This technique, developed by Pipatprathanporn et al. (2024), allows for realistic simulation of distant earthquake waves as they would appear at the seafloor. The methodology is based on the approach described in the MERMAID waveform repository.

Line source methodology

The plane wave is created by distributing sources in both horizontal and vertical arrays, with carefully calculated timing and amplitudes:

Horizontal source array (197 sources):

  • Located at depth z=720m in the elastic domain

  • Spaced every 100m horizontally from x=200m to x=19800m

  • Time shifts increment by 5.309 ms between adjacent sources

  • Moment tensor factor: 9.836e-10

Vertical source array (37 sources):

  • Located at x=200m in the elastic domain

  • Spaced every 100m vertically from z=820m to z=4420m

  • Time shifts calculated to maintain plane wave coherence

  • Moment tensor factor: 1.805e-10 (scaled for vertical component)

Source generation algorithm

The line source is designed to simulate a plane wave by distributing multiple moment tensor sources with carefully calculated time delays. The methodology is based on wave propagation physics and follows the implementation in the SPECFEM++ Python utilities and MERMAID waveform setup.

Physical basis for time delay calculation:

The time shifts are computed from the wave propagation geometry:

Physics-based time delay calculation
import numpy as np

# Physical parameters (derived from actual implementation)
angle = 10.4      # Effective incidence angle in degrees
vp = 3400.0       # P-wave velocity in m/s
dx = 100.0        # Horizontal source spacing in m
dz = 100.0        # Vertical source spacing in m

# Horizontal source array (197 sources)
for i in range(197):
    x_pos = 200 + i * dx
    z_pos = 720
    # Time delay: tshift = i * 5309e-6 seconds
    tshift = i * dx * np.sin(angle * np.pi / 180) / vp
    # Result: tshift ≈ i * 5.309e-3 seconds

# Vertical source array (37 sources)
for i in range(37):
    x_pos = 200
    z_pos = 820 + i * dz
    # Time delay: tshift = i * 28930e-6 seconds
    tshift = i * dz * np.cos(angle * np.pi / 180) / vp
    # Result: tshift ≈ i * 28.9e-3 seconds

Mathematical derivation:

Starting from the physical parameters of a tele-seismic plane wave, we can compute the required time delays to create coherent wave propagation.

Given parameters:

  • Incidence angle: θ = 10.4° (typical for regional/tele-seismic arrivals)

  • P-wave velocity in elastic domain: Vp = 3400 m/s

  • Source spacing: Δx = Δz = 100 m

Horizontal array time delays:

For sources distributed horizontally, the time delay accounts for the horizontal component of wave propagation:

\[ \begin{align}\begin{aligned}\Delta t_{horizontal} = \frac{\Delta x \sin \theta}{V_p} = \frac{100 \times \sin(10.4°)}{3400}\\\sin(10.4°) = 0.1805\\\Delta t_{horizontal} = \frac{100 \times 0.1805}{3400} = 0.005309 \text{ s} = 5309 \text{ μs}\end{aligned}\end{align} \]

Therefore: tshift = i × 5309 μs for horizontal sources.

Vertical array time delays:

For sources distributed vertically, the time delay accounts for the vertical component of wave propagation:

\[ \begin{align}\begin{aligned}\Delta t_{vertical} = \frac{\Delta z \cos \theta}{V_p} = \frac{100 \times \cos(10.4°)}{3400}\\\cos(10.4°) = 0.9816\\\Delta t_{vertical} = \frac{100 \times 0.9816}{3400} = 0.02887 \text{ s} = 28870 \text{ μs}\end{aligned}\end{align} \]

The implementation uses 28930 μs, which closely matches our calculation.

Therefore: tshift = i × 28930 μs for vertical sources.

Final implementation values:

  • Horizontal sources: tshift = i × 5309 μs

  • Vertical sources: tshift = i × 28930 μs

Wave propagation geometry:

The time delays ensure that all sources contribute constructively to form a coherent plane wave. The horizontal delays account for the projection of the wave vector onto the x-axis (sin θ), while vertical delays account for the z-component (cos θ). This creates a wavefront that propagates at the specified incidence angle through both the elastic solid and acoustic fluid domains.

line_source.yaml
number-of-sources: 234
sources:
    - moment-tensor:
        x: 200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 0e-6
            f0: 1.0
    - moment-tensor:
        x: 300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 5309e-6
            f0: 1.0
    - moment-tensor:
        x: 400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 10618e-6
            f0: 1.0
    - moment-tensor:
        x: 500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 15927e-6
            f0: 1.0
    - moment-tensor:
        x: 600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 21236e-6
            f0: 1.0
    - moment-tensor:
        x: 700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 26545e-6
            f0: 1.0
    - moment-tensor:
        x: 800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 31854e-6
            f0: 1.0
    - moment-tensor:
        x: 900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 37163e-6
            f0: 1.0
    - moment-tensor:
        x: 1000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 42472e-6
            f0: 1.0
    - moment-tensor:
        x: 1100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 47781e-6
            f0: 1.0
    - moment-tensor:
        x: 1200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 53090e-6
            f0: 1.0
    - moment-tensor:
        x: 1300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 58399e-6
            f0: 1.0
    - moment-tensor:
        x: 1400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 63708e-6
            f0: 1.0
    - moment-tensor:
        x: 1500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 69017e-6
            f0: 1.0
    - moment-tensor:
        x: 1600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 74326e-6
            f0: 1.0
    - moment-tensor:
        x: 1700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 79635e-6
            f0: 1.0
    - moment-tensor:
        x: 1800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 84944e-6
            f0: 1.0
    - moment-tensor:
        x: 1900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 90253e-6
            f0: 1.0
    - moment-tensor:
        x: 2000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 95562e-6
            f0: 1.0
    - moment-tensor:
        x: 2100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 100871e-6
            f0: 1.0
    - moment-tensor:
        x: 2200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 106180e-6
            f0: 1.0
    - moment-tensor:
        x: 2300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 111489e-6
            f0: 1.0
    - moment-tensor:
        x: 2400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 116798e-6
            f0: 1.0
    - moment-tensor:
        x: 2500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 122107e-6
            f0: 1.0
    - moment-tensor:
        x: 2600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 127416e-6
            f0: 1.0
    - moment-tensor:
        x: 2700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 132725e-6
            f0: 1.0
    - moment-tensor:
        x: 2800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 138034e-6
            f0: 1.0
    - moment-tensor:
        x: 2900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 143343e-6
            f0: 1.0
    - moment-tensor:
        x: 3000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 148652e-6
            f0: 1.0
    - moment-tensor:
        x: 3100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 153961e-6
            f0: 1.0
    - moment-tensor:
        x: 3200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 159270e-6
            f0: 1.0
    - moment-tensor:
        x: 3300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 164579e-6
            f0: 1.0
    - moment-tensor:
        x: 3400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 169888e-6
            f0: 1.0
    - moment-tensor:
        x: 3500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 175197e-6
            f0: 1.0
    - moment-tensor:
        x: 3600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 180506e-6
            f0: 1.0
    - moment-tensor:
        x: 3700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 185815e-6
            f0: 1.0
    - moment-tensor:
        x: 3800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 191124e-6
            f0: 1.0
    - moment-tensor:
        x: 3900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 196433e-6
            f0: 1.0
    - moment-tensor:
        x: 4000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 201742e-6
            f0: 1.0
    - moment-tensor:
        x: 4100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 207051e-6
            f0: 1.0
    - moment-tensor:
        x: 4200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 212360e-6
            f0: 1.0
    - moment-tensor:
        x: 4300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 217669e-6
            f0: 1.0
    - moment-tensor:
        x: 4400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 222978e-6
            f0: 1.0
    - moment-tensor:
        x: 4500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 228287e-6
            f0: 1.0
    - moment-tensor:
        x: 4600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 233596e-6
            f0: 1.0
    - moment-tensor:
        x: 4700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 238905e-6
            f0: 1.0
    - moment-tensor:
        x: 4800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 244214e-6
            f0: 1.0
    - moment-tensor:
        x: 4900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 249523e-6
            f0: 1.0
    - moment-tensor:
        x: 5000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 254832e-6
            f0: 1.0
    - moment-tensor:
        x: 5100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 260141e-6
            f0: 1.0
    - moment-tensor:
        x: 5200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 265450e-6
            f0: 1.0
    - moment-tensor:
        x: 5300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 270759e-6
            f0: 1.0
    - moment-tensor:
        x: 5400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 276068e-6
            f0: 1.0
    - moment-tensor:
        x: 5500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 281377e-6
            f0: 1.0
    - moment-tensor:
        x: 5600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 286686e-6
            f0: 1.0
    - moment-tensor:
        x: 5700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 291995e-6
            f0: 1.0
    - moment-tensor:
        x: 5800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 297304e-6
            f0: 1.0
    - moment-tensor:
        x: 5900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 302613e-6
            f0: 1.0
    - moment-tensor:
        x: 6000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 307922e-6
            f0: 1.0
    - moment-tensor:
        x: 6100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 313231e-6
            f0: 1.0
    - moment-tensor:
        x: 6200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 318540e-6
            f0: 1.0
    - moment-tensor:
        x: 6300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 323849e-6
            f0: 1.0
    - moment-tensor:
        x: 6400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 329158e-6
            f0: 1.0
    - moment-tensor:
        x: 6500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 334467e-6
            f0: 1.0
    - moment-tensor:
        x: 6600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 339776e-6
            f0: 1.0
    - moment-tensor:
        x: 6700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 345085e-6
            f0: 1.0
    - moment-tensor:
        x: 6800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 350394e-6
            f0: 1.0
    - moment-tensor:
        x: 6900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 355703e-6
            f0: 1.0
    - moment-tensor:
        x: 7000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 361012e-6
            f0: 1.0
    - moment-tensor:
        x: 7100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 366321e-6
            f0: 1.0
    - moment-tensor:
        x: 7200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 371630e-6
            f0: 1.0
    - moment-tensor:
        x: 7300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 376939e-6
            f0: 1.0
    - moment-tensor:
        x: 7400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 382248e-6
            f0: 1.0
    - moment-tensor:
        x: 7500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 387557e-6
            f0: 1.0
    - moment-tensor:
        x: 7600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 392866e-6
            f0: 1.0
    - moment-tensor:
        x: 7700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 398175e-6
            f0: 1.0
    - moment-tensor:
        x: 7800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 403484e-6
            f0: 1.0
    - moment-tensor:
        x: 7900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 408793e-6
            f0: 1.0
    - moment-tensor:
        x: 8000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 414102e-6
            f0: 1.0
    - moment-tensor:
        x: 8100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 419411e-6
            f0: 1.0
    - moment-tensor:
        x: 8200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 424720e-6
            f0: 1.0
    - moment-tensor:
        x: 8300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 430029e-6
            f0: 1.0
    - moment-tensor:
        x: 8400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 435338e-6
            f0: 1.0
    - moment-tensor:
        x: 8500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 440647e-6
            f0: 1.0
    - moment-tensor:
        x: 8600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 445956e-6
            f0: 1.0
    - moment-tensor:
        x: 8700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 451265e-6
            f0: 1.0
    - moment-tensor:
        x: 8800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 456574e-6
            f0: 1.0
    - moment-tensor:
        x: 8900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 461883e-6
            f0: 1.0
    - moment-tensor:
        x: 9000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 467192e-6
            f0: 1.0
    - moment-tensor:
        x: 9100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 472501e-6
            f0: 1.0
    - moment-tensor:
        x: 9200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 477810e-6
            f0: 1.0
    - moment-tensor:
        x: 9300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 483119e-6
            f0: 1.0
    - moment-tensor:
        x: 9400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 488428e-6
            f0: 1.0
    - moment-tensor:
        x: 9500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 493737e-6
            f0: 1.0
    - moment-tensor:
        x: 9600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 499046e-6
            f0: 1.0
    - moment-tensor:
        x: 9700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 504355e-6
            f0: 1.0
    - moment-tensor:
        x: 9800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 509664e-6
            f0: 1.0
    - moment-tensor:
        x: 9900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 514973e-6
            f0: 1.0
    - moment-tensor:
        x: 10000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 520282e-6
            f0: 1.0
    - moment-tensor:
        x: 10100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 525591e-6
            f0: 1.0
    - moment-tensor:
        x: 10200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 530900e-6
            f0: 1.0
    - moment-tensor:
        x: 10300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 536209e-6
            f0: 1.0
    - moment-tensor:
        x: 10400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 541518e-6
            f0: 1.0
    - moment-tensor:
        x: 10500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 546827e-6
            f0: 1.0
    - moment-tensor:
        x: 10600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 552136e-6
            f0: 1.0
    - moment-tensor:
        x: 10700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 557445e-6
            f0: 1.0
    - moment-tensor:
        x: 10800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 562754e-6
            f0: 1.0
    - moment-tensor:
        x: 10900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 568063e-6
            f0: 1.0
    - moment-tensor:
        x: 11000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 573372e-6
            f0: 1.0
    - moment-tensor:
        x: 11100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 578681e-6
            f0: 1.0
    - moment-tensor:
        x: 11200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 583990e-6
            f0: 1.0
    - moment-tensor:
        x: 11300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 589299e-6
            f0: 1.0
    - moment-tensor:
        x: 11400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 594608e-6
            f0: 1.0
    - moment-tensor:
        x: 11500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 599917e-6
            f0: 1.0
    - moment-tensor:
        x: 11600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 605226e-6
            f0: 1.0
    - moment-tensor:
        x: 11700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 610535e-6
            f0: 1.0
    - moment-tensor:
        x: 11800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 615844e-6
            f0: 1.0
    - moment-tensor:
        x: 11900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 621153e-6
            f0: 1.0
    - moment-tensor:
        x: 12000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 626462e-6
            f0: 1.0
    - moment-tensor:
        x: 12100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 631771e-6
            f0: 1.0
    - moment-tensor:
        x: 12200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 637080e-6
            f0: 1.0
    - moment-tensor:
        x: 12300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 642389e-6
            f0: 1.0
    - moment-tensor:
        x: 12400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 647698e-6
            f0: 1.0
    - moment-tensor:
        x: 12500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 653007e-6
            f0: 1.0
    - moment-tensor:
        x: 12600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 658316e-6
            f0: 1.0
    - moment-tensor:
        x: 12700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 663625e-6
            f0: 1.0
    - moment-tensor:
        x: 12800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 668934e-6
            f0: 1.0
    - moment-tensor:
        x: 12900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 674243e-6
            f0: 1.0
    - moment-tensor:
        x: 13000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 679552e-6
            f0: 1.0
    - moment-tensor:
        x: 13100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 684861e-6
            f0: 1.0
    - moment-tensor:
        x: 13200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 690170e-6
            f0: 1.0
    - moment-tensor:
        x: 13300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 695479e-6
            f0: 1.0
    - moment-tensor:
        x: 13400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 700788e-6
            f0: 1.0
    - moment-tensor:
        x: 13500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 706097e-6
            f0: 1.0
    - moment-tensor:
        x: 13600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 711406e-6
            f0: 1.0
    - moment-tensor:
        x: 13700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 716715e-6
            f0: 1.0
    - moment-tensor:
        x: 13800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 722024e-6
            f0: 1.0
    - moment-tensor:
        x: 13900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 727333e-6
            f0: 1.0
    - moment-tensor:
        x: 14000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 732642e-6
            f0: 1.0
    - moment-tensor:
        x: 14100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 737951e-6
            f0: 1.0
    - moment-tensor:
        x: 14200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 743260e-6
            f0: 1.0
    - moment-tensor:
        x: 14300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 748569e-6
            f0: 1.0
    - moment-tensor:
        x: 14400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 753878e-6
            f0: 1.0
    - moment-tensor:
        x: 14500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 759187e-6
            f0: 1.0
    - moment-tensor:
        x: 14600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 764496e-6
            f0: 1.0
    - moment-tensor:
        x: 14700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 769805e-6
            f0: 1.0
    - moment-tensor:
        x: 14800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 775114e-6
            f0: 1.0
    - moment-tensor:
        x: 14900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 780423e-6
            f0: 1.0
    - moment-tensor:
        x: 15000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 785732e-6
            f0: 1.0
    - moment-tensor:
        x: 15100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 791041e-6
            f0: 1.0
    - moment-tensor:
        x: 15200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 796350e-6
            f0: 1.0
    - moment-tensor:
        x: 15300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 801659e-6
            f0: 1.0
    - moment-tensor:
        x: 15400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 806968e-6
            f0: 1.0
    - moment-tensor:
        x: 15500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 812277e-6
            f0: 1.0
    - moment-tensor:
        x: 15600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 817586e-6
            f0: 1.0
    - moment-tensor:
        x: 15700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 822895e-6
            f0: 1.0
    - moment-tensor:
        x: 15800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 828204e-6
            f0: 1.0
    - moment-tensor:
        x: 15900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 833513e-6
            f0: 1.0
    - moment-tensor:
        x: 16000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 838822e-6
            f0: 1.0
    - moment-tensor:
        x: 16100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 844131e-6
            f0: 1.0
    - moment-tensor:
        x: 16200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 849440e-6
            f0: 1.0
    - moment-tensor:
        x: 16300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 854749e-6
            f0: 1.0
    - moment-tensor:
        x: 16400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 860058e-6
            f0: 1.0
    - moment-tensor:
        x: 16500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 865367e-6
            f0: 1.0
    - moment-tensor:
        x: 16600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 870676e-6
            f0: 1.0
    - moment-tensor:
        x: 16700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 875985e-6
            f0: 1.0
    - moment-tensor:
        x: 16800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 881294e-6
            f0: 1.0
    - moment-tensor:
        x: 16900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 886603e-6
            f0: 1.0
    - moment-tensor:
        x: 17000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 891912e-6
            f0: 1.0
    - moment-tensor:
        x: 17100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 897221e-6
            f0: 1.0
    - moment-tensor:
        x: 17200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 902530e-6
            f0: 1.0
    - moment-tensor:
        x: 17300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 907839e-6
            f0: 1.0
    - moment-tensor:
        x: 17400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 913148e-6
            f0: 1.0
    - moment-tensor:
        x: 17500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 918457e-6
            f0: 1.0
    - moment-tensor:
        x: 17600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 923766e-6
            f0: 1.0
    - moment-tensor:
        x: 17700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 929075e-6
            f0: 1.0
    - moment-tensor:
        x: 17800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 934384e-6
            f0: 1.0
    - moment-tensor:
        x: 17900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 939693e-6
            f0: 1.0
    - moment-tensor:
        x: 18000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 945002e-6
            f0: 1.0
    - moment-tensor:
        x: 18100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 950311e-6
            f0: 1.0
    - moment-tensor:
        x: 18200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 955620e-6
            f0: 1.0
    - moment-tensor:
        x: 18300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 960929e-6
            f0: 1.0
    - moment-tensor:
        x: 18400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 966238e-6
            f0: 1.0
    - moment-tensor:
        x: 18500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 971547e-6
            f0: 1.0
    - moment-tensor:
        x: 18600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 976856e-6
            f0: 1.0
    - moment-tensor:
        x: 18700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 982165e-6
            f0: 1.0
    - moment-tensor:
        x: 18800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 987474e-6
            f0: 1.0
    - moment-tensor:
        x: 18900
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 992783e-6
            f0: 1.0
    - moment-tensor:
        x: 19000
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 998092e-6
            f0: 1.0
    - moment-tensor:
        x: 19100
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1003401e-6
            f0: 1.0
    - moment-tensor:
        x: 19200
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1008710e-6
            f0: 1.0
    - moment-tensor:
        x: 19300
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1014019e-6
            f0: 1.0
    - moment-tensor:
        x: 19400
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1019328e-6
            f0: 1.0
    - moment-tensor:
        x: 19500
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1024637e-6
            f0: 1.0
    - moment-tensor:
        x: 19600
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1029946e-6
            f0: 1.0
    - moment-tensor:
        x: 19700
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1035255e-6
            f0: 1.0
    - moment-tensor:
        x: 19800
        z: 720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 9.836e-10
            tshift: 1040564e-6
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 820
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 2893e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 920
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 5786e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1020
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 8679e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1120
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 11572e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1220
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 14465e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1320
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 17358e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1420
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 20251e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1520
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 23144e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1620
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 26037e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 28930e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1820
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 31823e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 1920
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 34716e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2020
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 37609e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2120
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 40502e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2220
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 43395e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2320
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 46288e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2420
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 49181e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2520
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 52074e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2620
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 54967e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 57860e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2820
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 60753e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 2920
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 63646e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3020
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 66539e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3120
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 69432e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3220
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 72325e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3320
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 75218e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3420
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 78111e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3520
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 81004e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3620
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 83897e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3720
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 86790e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3820
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 89683e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 3920
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 92576e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 4020
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 95469e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 4120
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 98362e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 4220
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 101255e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 4320
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 104148e-05
            f0: 1.0
    - moment-tensor:
        x: 200
        z: 4420
        Mxx: 1.0
        Mzz: 1.0
        Mxz: 0.0
        angle: 0.0
        Ricker:
            factor: 1.805e-10
            tshift: 107041e-05
            f0: 1.0

Physical interpretation

This distributed source approach simulates how tele-seismic waves from distant earthquakes appear as approximately planar wavefronts when they reach the seafloor. The method allows for:

  • Realistic wavefront geometry: Maintains proper phase relationships across the domain

  • Proper energy distribution: Sources are scaled to represent appropriate amplitudes

  • Computational efficiency: Uses existing moment-tensor source infrastructure

  • Flexible incident angles: Time delays can be adjusted for different wave arrival angles

This technique is particularly valuable for studying how seismic waves interact with complex seafloor bathymetry, as it provides a controlled yet realistic source mechanism for marine seismology applications.

Running the simulation

To run the solver, we first need to define a configuration file specfem_config.yaml.

specfem_config.yaml
parameters:

  header:
    ## Header information is used for logging. It is good practice to give your simulations explicit names
    title: fluid-solid-bathymetry  # name for your simulation
    # A detailed description for your simulation
    description: |
      Material systems : Elastic domain (1), Acoustic domain (1)
      Interfaces : Acoustic-elastic interface (1) (orientation horizontal with acoustic domain on top)
      Sources : Moment-tensor (234)
      Boundary conditions : Neumann BCs on all edges

  simulation-setup:
    ## quadrature setup
    quadrature:
      quadrature-type: GLL4

    ## Solver setup
    solver:
      time-marching:
        type-of-simulation: forward
        time-scheme:
          type: Newmark
          dt: 1.000e-3
          nstep: 32500

    simulation-mode:
      forward:
        writer:
          seismogram:
            format: ascii
            directory: OUTPUT_FILES/seismograms

          display:
            format: PNG
            directory: OUTPUT_FILES/display
            field: displacement
            simulation-field: forward
            time-interval: 500

  receivers:
    stations: OUTPUT_FILES/STATIONS
    angle: 0.0
    seismogram-type:
      - pressure
    nstep_between_samples: 1

  ## Runtime setup
  run-setup:
    number-of-processors: 1
    number-of-runs: 1

  ## databases
  databases:
    mesh-database: OUTPUT_FILES/database.bin

  ## sources
  sources: line_source.yaml

Key configuration features:

  • Forward simulation using Newmark time scheme

  • Time step dt = 1.0e-3 s with 32,500 time steps

  • Wavefield snapshots saved every 500 time steps for visualization

  • Seismograms recorded at two receiver locations

  • Pressure recordings for the acoustic domain

With the configuration file in place, we can run the solver using the following command:

specfem2d -p specfem_config.yaml

[Optional] Visualizing the results

The simulation generates seismograms at the stations defined in the specfem_config.yaml file and wavefield snapshots for visualization. You can visualize the seismograms using the following python script.

plot.py
import os
import numpy as np
import obspy


def get_traces(directory):
    traces = []

    # Iterate over all pressure seismogram files
    for filename in os.listdir(directory):
        if filename.endswith(".semp"):
            f = os.path.join(directory, filename)
            network, station, location, channel = filename.split(".")[:4]
            trace = np.loadtxt(f, delimiter=" ")
            starttime = trace[0, 0]
            dt = trace[1, 0] - trace[0, 0]
            traces.append(
                obspy.Trace(
                    trace[:, 1],
                    {
                        "network": network,
                        "station": station,
                        "location": location,
                        "channel": channel,
                        "starttime": starttime,
                        "delta": dt,
                    },
                )
            )

    stream = obspy.Stream(traces)
    return stream


# Load pressure seismograms from acoustic domain
directory = "OUTPUT_FILES/seismograms"
stream = get_traces(directory)

# Plot pressure recordings (acoustic domain)
# Note: Since receivers are in water, we expect pressure recordings
stream.plot(size=(1000, 800))

The output image is should look like this:

Seismograms from the simulation

[Optional] Creating animated visualization

To create an animated gif of the wavefield evolution, you can use ImageMagick (if available):

magick OUTPUT_FILES/display/wavefield*.png -trim +repage -delay 10 -loop 0 fluid-solid-bathymetry.gif

The output animated gif will show the wavefield evolution over time, illustrating the interaction of seismic waves with the complex bathymetry and fluid-solid interfaces. The animation captures how the waves propagate through the acoustic and elastic domains, reflecting and refracting at the seafloor interface.

Animated wavefield evolution

This example demonstrates how SPECFEM++ can handle complex bathymetry and fluid-solid interfaces, making it suitable for seismic wave propagation studies in marine environments.