Cubit Mesh#

We use Cubit to generate the finite-element mesh. Due to its size, we do not include the finite-element mesh in the PyLith source or binary distributions. See the instructions in the input/README.md file for how to download the mesh.

Overview#

We use contours of the Cascadia Subduction Zone from Slab v1.0 [Hayes et al., 2012] for the geometry of the subduction interface. We ignore topography and bathymetry and use a flat surface at an elevation of mean sea level. The data file cas_contours_dep.in.txt.gz provides the subduction interface contours. The Python script generate_cubit.py reads in the subduction interface contour files, constructs the geometry, marks the boundaries, fault surfaces, and materials, and generates the finite-element mesh.

Tip

We define the coordinate systems we use in the simulations in the Python script coordsys.py to make it easier to convert to and from various georeference coordinate systems in the pre- and post-processing. PyLith will automatically convert among compatible coordinate systems during the simulation.

Important

We recommend running the generate_cubit.py Python script from within the Cubit application. You can copy and paste the lines into the command console or load the Python script into the Cubit script editor.

Geometry#

We construct the geometry with the following steps:

  1. Construct basic building blocks.

    1. Construct a box for the domain.

    2. Load the subduction interface contours and construct a surface.

    3. Calculate the average surface normal for the top of the slab.

    4. Construct the bottom of the slab and build a volume for the slab.

    5. Construct a splay fault using the slab interface contours.

    6. Create a box to subdivide the surface for the top of the slab.

    7. Construct a surface corresponding to the continental Moho.

  2. Combine the basic building blocks.

    1. Fragment the domain with the slab volume.

    2. Fragment the domain with the continental Moho surface.

    3. Fragment the domain with the splay surface to create a wedge.

    4. Inscribe the patch onto the top of the slab.

  3. Get ids of the various surfaces for use in marking boundaries, faults, and materials.

Generate the mesh#

We increase the discretization size with distance from the top of the subduction interface. We generate the mesh and then use Gmsh mesh quality tools to improve the shape of the cells.

Finite-element mesh with tetrahedral cells generated by Cubit.

Fig. 146 Finite-element mesh with tetrahedral cells generated by Cubit.#

Mark boundaries, faults, and materials#

  1. Create material blocks for each volume to make it easy to assign different material properties to each one.

  2. Create sidesets corresponding to boundary conditions and faults.