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
.
This limits duplicate information in the parameter files for each simulation.
Metadata, Mesh, and Output#
The pylithapp.metadata
section specifies metadata common to all simulations in the directory.
We control the verbosity of the output written to stdout using journal.info
.
We set the parameters for importing the finite-element mesh in pylithapp.mesh_generator
.
Physics#
All of the simulations in this example suite solve the elasticity equation without inertia,
The default PyLith settings target solving the quasi-static elasticity equation, so we can use the default TimeDependent
problem and solution field with a single displacement subfield of basis order 1.
[pylithapp]
# Default problem and solution field.
problem = pylith.problems.TimeDependent
problem.solution = pylith.problems.SolnDisp
[pylithapp.problem.solution.subfields]
# The default basis order for solution subfields is 1 (linear variation within cells).
displacement.basis_order = 1
[pylithapp.problem]
# Default output for the solution is over the domain.
solution_observers = [domain]
The default material and bulk rheology also target solving the quasi-static elasticity equation. The default bulk rheology is isotropic linear elasticity.
[pylithapp.problem]
materials = [elastic]
materials.elastic = pylith.materials.Elasticity
[pylithapp.problem.materials.elastic]
elastic.bulk_rheology = pylith.materials.IsotropicLinearElasticity
In this suite of examples we have a single material, and we must specify a description for the material and the label value.
In this case the label value corresponds to the material-id
in the finite-element mesh file.
The physical properties for each material are specified in a spatial database.
The material properties are uniform, so we use a single UniformDB
to specify the material properties in pylithapp.cfg
.
When we have a spatial variation in the material properties, we specify them in a spatial database file.
With uniform properties we use a basis order of 0 for the auxiliary subfields.
[pylithapp.problem]
materials = [elastic]
[pylithapp.problem.materials.elastic]
description = Elastic material
label_value = 0
# We will use uniform material properties, so we use the UniformDB
# spatial database.
db_auxiliary_field = spatialdata.spatialdb.UniformDB
db_auxiliary_field.description = Elastic properties
db_auxiliary_field.values = [density, vs, vp]
db_auxiliary_field.data = [2500*kg/m**3, 3.0*km/s, 5.2915026*km/s]
# Set the discretization of the material auxiliary fields (properties).
# We have uniform material properties, so we can use a basis order of 0.
auxiliary_subfields.density.basis_order = 0
bulk_rheology.auxiliary_subfields.bulk_modulus.basis_order = 0
bulk_rheology.auxiliary_subfields.shear_modulus.basis_order = 0