The TPV34 benchmark features a right-lateral, planar, vertical, strike-slip fault set in a half-space. The velocity structure is the actual 3D velocity structure surrounding the Imperial Fault, as given by the SCEC Community Velocity Model CVM-H.

The Imperial Fault.

The Imperial Fault. The red line marks the Imperial Fault. It straddles the California-Mexico border, south of the Salton Sea. The Imperial Fault is approximately 45 km long and 15 km deep, with a nearly vertical dip angle ranging from 81 to 90 degrees according to the SCEC Community Fault Model CFM-4.


The model volume is a half-space. The fault is a vertical, planar, strike-slip fault. The fault reaches the Earth’s surface. Rupture is allowed within a rectangular area measuring 30000 m along-strike and 15000 m down-dip.

There is a circular nucleation zone on the fault surface. The hypocenter is located 15 km from the left edge of the fault, at a depth of 7.5 km.

TPV34 overview.

TPV34 overview.

The geometry is generated with Gmsh. All the files that are needed for the simulation are provided at

Modeled TPV34 fault in Gmsh.

Modeled TPV34 fault in Gmsh.


To obtain the velocity structure for TPV34, we need to install and run the SCEC Community Velocity Model software distribution CVM-H. For TPV34, we are using CVM-H version 15.1.0 and we use ASAGI to map the material properties variations onto the mesh. Detailed explanations are provided at We generate 2 netcdf files of different spatial resolution to map more finely the 3D material properties close to the fault. The domain of validity of each netcdf files read by ASAGI is defined by the yaml tpv34_material.yaml file:

[rho, mu, lambda]: !IdentityMap
    # apply a finer CVM-H data inside the refinement zone
    - !AxisAlignedCuboidalDomainFilter
        x: [-25000.0, 25000.0]
        y: [-25000.0, 25000.0]
        z: [-15000.0, 0.0]
      components: !ASAGI
        parameters: [rho, mu, lambda]
        var: data
    # apply a coarser CVM-H data outside the refinement zone
    - !ASAGI
        parameters: [rho, mu, lambda]
        var: data


TPV34 uses a linear slip weakening law on the fault. The parameters are listed in Table below.


inside the nucleation zone




static friction coefficient



dynamic friction coefficient



critical distance



The cohesion is 1.02 MPa at the earth’s surface. It is 0 MPa at depths greater than 2400 m, and is linearly tapered in the uppermost 2400 m. The spatial dependence of the cohesion is straightforwardly mapped using Easi.

[mu_d, mu_s, d_c]: !ConstantMap
    mu_d: 0.45
    mu_s: 0.58
    d_c: 0.18
[cohesion]: !FunctionMap
    cohesion: |
      return -425.0*max(z+2400.0,0.0);

Initial stress

The initial shear stress on the fault is pure right-lateral.

The initial shear stress is \(\tau_0\) = (30 MPa)(\(\mu_x\))

The initial normal stress on the fault is \(\sigma_0\) = (60 MPa)(\(\mu_x\)).

In above formulas, we define \(\mu_x = \mu / \mu_0\), where \(\mu\) is shear modulus and \(\mu_0\) = 32.03812032 GPa.

[s_xx, s_yy, s_zz, s_xy, s_yz, s_xz]: !EvalModel
  parameters: [radius,mux]
  model: !Switch
    [mux]: !AffineMap
        x: [1.0,0.0,0.0]
        z: [0.0,0.0,1.0]
        x: 0.0
        z: 0.0
      components: !ASAGI
        parameters: [mux]
        var: data
    [radius]: !FunctionMap
        radius: |
          xHypo =     0.0;
          zHypo = -7500.0;
          return sqrt(((x+xHypo)*(x+xHypo))+((z-zHypo)*(z-zHypo)));
  components: !FunctionMap
      s_xx:     return -60000000.0*mux;
      s_yy:     return -60000000.0*mux;
      s_zz:     return 0.0;
      s_xy: |
        pi = 4.0 * atan (1.0);
        s_xy0 = 30000000.0*mux;
        s_xy1 = 0.0;
        if (radius<=1400.0) {
          s_xy1 = 4950000.0*mux;
        } else {
          if (radius<=2000.0) {
            s_xy1 = 2475000.0*(1.0+cos(pi*(radius-1400.0)/600.0))*mux;
        return s_xy0 + s_xy1;
      s_yz:     return 0.0;
      s_xz:     return 0.0;


All examples here can be visualized in Paraview. The output folder contains a series of files for fault dynamic rupture (hdf5 and .xdmf), wavefield (hdf5 and .xdmf), on-fault receiver (.dat) and off-fault receivers (.dat). The fault dynamic rupture and wavefield files can be loaded in Paraview. For example, open Paraview and then go through File > import > ‘prefix’-fault.xdmf.

Fault slip rate along-strike direction

Fault slip rate in the along-strike direction (SRs) at a rupture time of 3 seconds in TPV34, visualized using Paraview.