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).
[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.
[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.
[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