Common Information#

In addition to the finite-element mesh, PyLith requires files to specify the simulation parameters. We specify parameters common to all simulations in a directory in pylithapp.cfg, which contains numerous comments, so we only summarize the parameters here.

We output the solution over the domain and the ground surface (+y boundary).

Listing 98 Parameters for output of the solution over the domain and ground surface (+y boundary).#
[pylithapp.problem]
solution_observers = [domain, boundary]
solution_observers.boundary = pylith.meshio.OutputSolnBoundary

[pylithapp.problem.solution_observers.boundary]
label = boundary_ypos
label_value = 13

These static and quasi-static simulations solve the elasticity equation. We use the same material properties for several simulations in this directory, so we specify them in pylithapp.cfg to avoid repeating the information in the file with parameters for each simulation. We use a SimpleDB spatial database so that we can simply use a different spatial database file when we change the bulk rheology.

Listing 99 Material parameters for isotropic, linear elasticity. We only show the details for the slab material.#
[pylithapp.problem]
materials = [slab, crust, wedge]

[pylithapp.problem.materials.slab]
description = Slab material below main fault
label_value = 1

db_auxiliary_field = spatialdata.spatialdb.SimpleDB
db_auxiliary_field.description = Elastic properties for slab
db_auxiliary_field.iohandler.filename = mat_elastic.spatialdb

auxiliary_subfields.density.basis_order = 0
auxiliary_subfields.gravitational_acceleration.basis_order = 0
bulk_rheology.auxiliary_subfields.bulk_modulus.basis_order = 0
bulk_rheology.auxiliary_subfields.shear_modulus.basis_order = 0

Similarly, for all of the simulations in this directory we use Dirichlet (displacement) boundary conditions on the +x, -x, and -y boundaries that constrain the displacement component perpendicular to the fault.

Listing 100 Dirichlet boundary condition parameters common to all simulations in this directory. We only show the details for the +x boundary.#
[pylithapp.problem]
bc = [bc_xneg, bc_xpos, bc_yneg]
bc.bc_xneg = pylith.bc.DirichletTimeDependent
bc.bc_xpos = pylith.bc.DirichletTimeDependent
bc.bc_yneg = pylith.bc.DirichletTimeDependent

[pylithapp.problem.bc.bc_xpos]
label = boundary_xpos
label_value = 11
constrained_dof = [0]
db_auxiliary_field = pylith.bc.ZeroDB
db_auxiliary_field.description = Dirichlet BC +x edge

auxiliary_subfields.initial_amplitude.basis_order = 0