Skip to content

Commit

Permalink
Merge pull request #486 from geodynamics/baagaard/update-examples-3ds…
Browse files Browse the repository at this point in the history
…ubduction

Update examples/subduction-3d (steps 1-4) for v3.0
  • Loading branch information
baagaard-usgs authored Jun 19, 2022
2 parents 37a2ac7 + ee40272 commit 56a0c33
Show file tree
Hide file tree
Showing 134 changed files with 7,151 additions and 1,112 deletions.
11 changes: 5 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,11 @@ autom4te.cache
/build
/dist
output/
examples/3d/subduction/mesh/geometry_surfs.jou
examples/3d/subduction/mesh/*.exo
examples/3d/subduction/mesh/*.sat
examples/3d/subduction/spatialdb/fault_slabtop_slowslip.spatialdb
examples/3d/subduction/spatialdb/fault_slabtop_slowslip.timedb
examples/3d/subduction/spatialdb/mat_initial_stress_grav-*.spatialdb
examples/subduction-3d/scratch/*.spatialdb
examples/subduction-3d/scratch/*.sat
examples/subduction-3d/scratch/*.txt
examples/subduction-3d/scratch/*.jou
examples/subduction-3d/input/*.exo
/docs/_build/
/doc-latex/userguide/userguide.pdf
/doc-latex/userguide/userguide.aux
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
## Description

PyLith is an open-source finite-element code for dynamic and
quasistatic simulations of crustal deformation, primarily earthquakes
quasi-static simulations of crustal deformation, primarily earthquakes
and volcanoes.

* Main page: [https://geodynamics.org/resources/pylith](https://geodynamics.org/resources/pylith)
Expand Down
28 changes: 28 additions & 0 deletions docs/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,34 @@ dist_noinst_DATA = \
user/examples/subduction-2d/figs/step03-diagram.svg \
user/examples/subduction-2d/figs/step03-solution.jpg \
user/examples/subduction-3d/index.md \
user/examples/subduction-3d/common-information.md \
user/examples/subduction-3d/exercises.md \
user/examples/subduction-3d/meshing-cubit.md \
user/examples/subduction-3d/step01-axialdisp.md \
user/examples/subduction-3d/step02-coseismic.md \
user/examples/subduction-3d/step03-interseismic.md \
user/examples/subduction-3d/step04-eqcycle.md \
user/examples/subduction-3d/figs/cascadia.png \
user/examples/subduction-3d/figs/conceptualmodel.png \
user/examples/subduction-3d/figs/cubit-geometry-patch.png \
user/examples/subduction-3d/figs/cubit-geometry.png \
user/examples/subduction-3d/figs/cubit-mesh.jpg \
user/examples/subduction-3d/figs/diagrams.tex \
user/examples/subduction-3d/figs/generate.sh \
user/examples/subduction-3d/figs/step01-diagram.pdf \
user/examples/subduction-3d/figs/step01-diagram.svg \
user/examples/subduction-3d/figs/step01-solution.jpg \
user/examples/subduction-3d/figs/step02-diagram.pdf \
user/examples/subduction-3d/figs/step02-diagram.svg \
user/examples/subduction-3d/figs/step02-solution.jpg \
user/examples/subduction-3d/figs/step03-diagram.pdf \
user/examples/subduction-3d/figs/step03-diagram.svg \
user/examples/subduction-3d/figs/step03-solution.jpg \
user/examples/subduction-3d/figs/step04-diagram.pdf \
user/examples/subduction-3d/figs/step04-diagram.svg \
user/examples/subduction-3d/figs/step04-solution.jpg \
user/examples/subduction-3d/figs/step06-diagram.pdf \
user/examples/subduction-3d/figs/step06-diagram.svg \
user/examples/examples-other.md \
user/examples/index.md \
user/examples/paraview-python.md \
Expand Down
2 changes: 1 addition & 1 deletion docs/intro/development-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Future implementation of features is guided by several target applications, including

* Earthquake cycle modeling with quasistatic simulation of interseismic deformation and dynamic simulation of coseismic deformation.
* Earthquake cycle modeling with quasi-static simulation of interseismic deformation and dynamic simulation of coseismic deformation.
* Inversion of geodetic data for slow slip events, fault creep, and long-term fault slip rates.
* Quasistatic and dynamic modeling of fluids and faulting.

Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/box-2d/step01_axialdisp-synopsis.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* spatialdata.spatialdb.ZeroDB
2 changes: 1 addition & 1 deletion docs/user/examples/box-2d/step02_sheardisp-synopsis.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* spatialdata.spatialdb.SimpleDB
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* pylith.bc.NeumannTimeDependent
* spatialdata.spatialdb.SimpleDB
2 changes: 1 addition & 1 deletion docs/user/examples/box-2d/step04_sheardispic-synopsis.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.problems.InitialConditionDomain
* pylith.bc.DirichletTimeDependent
* spatialdata.spatialdb.SimpleDB
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
* pylith.materials.IsotropicLinearElasticity
* spatialdata.spatialdb.UniformDB
* pylith.meshio.DataWriterHDF5
* Quasistatic simulation
* Quasi-static simulation
* backward Euler time stepping
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* pylith.bc.NeumannTimeDependent
* spatialdata.spatialdb.SimpleDB
2 changes: 1 addition & 1 deletion docs/user/examples/box-3d/step01_axialdisp-synopsis.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* spatialdata.spatialdb.ZeroDB
2 changes: 1 addition & 1 deletion docs/user/examples/box-3d/step02_sheardisp-synopsis.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* spatialdata.spatialdb.SimpleDB
* spatialdata.spatialdb.ZeroDB
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* pylith.bc.NeumannTimeDependent
* spatialdata.spatialdb.SimpleDB
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/box-3d/step04_sheardispic-synopsis.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Static simulation
* ILU preconditioner
* LU preconditioner
* pylith.problems.InitialConditionDomain
* pylith.bc.DirichletTimeDependent
* spatialdata.spatialdb.SimpleDB
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Quasistatic simulation
* Quasi-static simulation
* backward Euler time stepping
* ILU preconditioner
* LU preconditioner
* pylith.bc.DirichletTimeDependent
* pylith.bc.NeumannTimeDependent
* spatialdata.spatialdb.SimpleDB
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ In some cases, a later step may make use of output from an earlier step; these c
| **Example Suite** | **Difficulty** | **Description** |
|:------------------------------------------|:------------:|:---------------------------------------------------------------------------------------------|
| [`box-2d`](box-2d/index.md) | novice | Simple axial and shear deformation in static and quasistatic simulations in 2D box with a mesh in an ASCII text file.
| [`box-2d`](box-2d/index.md) | novice | Simple axial and shear deformation in static and quasi-static simulations in 2D box with a mesh in an ASCII text file.
| [`box-3d`](box-3d/index.md) | novice | Same as `2d/box` but with a 3D box and a mesh from Gmsh or Cubit.
| [`strikeslip-2d`](strikeslip-2d/index.md) | beginner | Prescribed coseismic slip and multiple earthquake ruptures in 2D with a mesh from Gmsh or Cubit.
| [`reverse-2d`](reverse-2d/index.md) | beginner | Gravity, surface loads, and prescribed coseismic slip on multiple reverse faults in 2D with a mesh from Gmsh or Cubit.
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/magma-2d/common-information.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The settings contained in `pylithapp.cfg` for this problem consist of:
* `pylithapp.problem` Parameters that define the boundary value problem and it solution, such as the type of solver, solution fields.
* `pylithapp.problem.materials` Paramters that specify the governing equation and bulk rheologies.

These quasistatic simulations solve the poroelasticity equation, so we have a solution field with displacement, pressure, and volumetric strain subfields.
These quasi-static simulations solve the poroelasticity equation, so we have a solution field with displacement, pressure, and volumetric strain subfields.
We specify a basis order of 2 for the displacement subfield, and 1 for each of the remaining subfields.

We use the material properties in all of the simulations in this directory, so we specify them in `pylithapp.cfg` to avoid repeating the information in the file with parameters for each simulation.
2 changes: 1 addition & 1 deletion docs/user/examples/magma-2d/step01-inflation.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ At the beginning of the output written to the terminal, we see that PyLith is re
The scales for nondimensionalization .
PyLith detects the use of poroelasticity without a fault and selects appropriate preconditioning options as discussed in {ref}`sec-user-run-pylith-petsc-options`.

At the end of the output written to the termial, we see that the solver advanced the solution 51 time steps.
At the end of the output written to the terminal, we see that the solver advanced the solution 51 time steps.
At each time step, the linear converges in 1 iteration and the norm of the residual met the absolute convergence tolerance (`ksp_atol`) .
The nonlinear solve converged in 1 iteration, which we expect because this is a linear problem, and the residual met the absolute convergence tolerance (`snes_atol`).

Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/paraview-python.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The primary advantage of the ParaView Python scripts is that they make it easy t

There are several different ways to run the ParaView Python scripts:

* Within the ParaView GUI, select `View`→`Python Shell`.
* Within the ParaView GUI, select `View`$\rightarrow$`Python Shell`.
Override the default parameters as desired (which we will discuss later in this section).
Click on the `Run Script` button, and navigate to the select the script you want to run.
* From a shell (terminal window) start ParaView from the command line with the `--script=FILENAME` where `FILENAME` is the relative or absolute path to the ParaView Python script.
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/reverse-2d/common-information.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The settings contained in `pylithapp.cfg` for this problem consist of:
* `pylithapp.problem.materials` Paramters that specify the governing equation and bulk rheologies.
* `pylithapp.problem.bc` Boundary condition parameters common aomong the simulations in this directory.

These static and quasistatic simulations solve the elasticity equation.
These static and quasi-static simulations solve the elasticity equation.
We use the default solution field (displacement); we will override this for the simulations with a fault.

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.
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/reverse-2d/step01-gravity.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ At the beginning of the output written to the terminal, we see that PyLith is re
The output also shows the scales for nondimensionalization and the PETSc options selected by PyLith.
This simulation did not use a fault, so PyLith used the LU preconditioner.

At the end of the output written to the termial, we see that the solver advanced the solution one time step (static simulation).
At the end of the output written to the terminal, we see that the solver advanced the solution one time step (static simulation).
The linear solve converged after 1 iterations and the norm of the residual met the relative convergence tolerance (`ksp_rtol`) .
The nonlinear solve converged in 1 iteration, which we expect because this is a linear problem, and the residual met the absolute convergence tolerance (`snes_atol`).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* spatialdata.spatialdb.ZeroDB
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Quasistatic simulation
* Quasi-static simulation
* pylith.materials.Elasticity
* pylith.materials.IsotropicLinearMaxwell
* pylith.faults.FaultCohesiveKin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* spatialdata.spatialdb.ZeroDB
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Quasistatic simulation
* Quasi-static simulation
* pylith.materials.Elasticity
* pylith.materials.IsotropicPowerLaw
* pylith.faults.FaultCohesiveKin
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/strikeslip-2d/step01-slip.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ At the beginning of the output written to the terminal, we see that PyLith is re
The scales for nondimensionalization remain the default values for a quasistatic problem.
PyLith detects the presence of a fault based on the Lagrange multiplier for the fault in the solution field and selects appropriate preconditioning options as discussed in {ref}`sec-user-run-pylith-petsc-options`.

At the end of the output written to the termial, we see that the solver advanced the solution one time step (static simulation).
At the end of the output written to the terminal, we see that the solver advanced the solution one time step (static simulation).
The linear solve converged after 35 iterations and the norm of the residual met the absolute convergence tolerance (`ksp_atol`) .
The nonlinear solve converged in 1 iteration, which we expect because this is a linear problem, and the residual met the absolute convergence tolerance (`snes_atol`).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Quasistatic simulation
* Quasi-static simulation
* spatialdata.spatialdb.SimpleDB
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
* spatialdata.spatialdb.UniformDB
* pylith.meshio.OutputSolnBoundary
* pylith.meshio.DataWriterHDF5
* Quasistatic simulation
* Quasi-static simulation
* spatialdata.spatialdb.SimpleDB
2 changes: 1 addition & 1 deletion docs/user/examples/strikeslip-2d/step04-varslip.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ $ pylith step04_varslip.cfg
```

The beginning of the output written to the terminal matches that in our previous simulations.
At the end of the output written to the termial, we see that the solver advanced the solution one time step (static simulation).
At the end of the output written to the terminal, we see that the solver advanced the solution one time step (static simulation).
The linear solve converged after 73 iterations and the norm of the residual met the absolute convergence tolerance (`ksp_atol`).
The nonlinear solve converged in 1 iteration, which we expect because this is a linear problem, and the residual met the absolute convergence tolerance (`snes_atol`).

Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/subduction-2d/common-information.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The settings contained in `pylithapp.cfg` for this problem consist of:
* `pylithapp.journal.info` Parameters that control the verbosity of the output written to stdout for the different components.
* `pylithapp.mesh_generator` Parameters for importing the finite-element mesh.
* `pylithapp.problem` Parameters that define the boundary value problem and it solution, such as the type of solver, solution fields.
* `pylithapp.problem.materials` Paramters that specify the governing equation and bulk rheologies.
* `pylithapp.problem.materials` Parameters that specify the governing equation and bulk rheologies.

The physical properties for each material are specified in spatial database files.
For example, the elastic properties for the continental crust are in `mat_concrust.spatialdb`.
Expand Down
2 changes: 1 addition & 1 deletion docs/user/examples/subduction-2d/step01-coseismic.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ ts_type = beuler
At the beginning of the output written to the terminal, we see that PyLith is reading the mesh using the `MeshIOPetsc` reader and that it found the domain to extend from -600 km to +600 km in the x direction and from -600 km to 0 in the y direction.
The output also includes the scales used for nondimensionalization and the default PETSc options.

At the end of the output written to the termial, we see that the solver advanced the solution one time step (static simulation).
At the end of the output written to the terminal, we see that the solver advanced the solution one time step (static simulation).
The linear solve converged after 85 iterations and the norm of the residual met the absolute convergence tolerance (`ksp_atol`) .
The nonlinear solve converged in 1 iteration, which we expect because this is a linear problem, and the residual met the absolute convergence tolerance (`snes_atol`).

Expand Down
20 changes: 20 additions & 0 deletions docs/user/examples/subduction-3d/common-information.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 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.

The settings contained in `pylithapp.cfg` for this problem consist of:

* `pylithapp.metadata` Metadata common to all of the simulations in the directory.
* `pylithapp.journal.info` Parameters that control the verbosity of the output written to stdout for the different components.
* `pylithapp.mesh_generator` Parameters for importing the finite-element mesh.
* `pylithapp.problem` Parameters that define the boundary value problem and it solution, such as the type of solver, solution fields, and output over the domain.
* `pylithapp.problem.materials` Parameters that specify the governing equation and bulk rheologies.
* `pylithapp.problem.bc` Parameters that specify the boundary conditions.

To make it easier to switch between elastic and viscoelastic bulk rheologies for different simulations, we separate the material parameters relevant to the bulk rheologies into two parameter files: `mat_elastic.cfg` and `mat_viscoelastic.cfg`.
We use `mat_elastic.cfg` when we want all materials to use elastic bulk rheologies.
We use `mat_viscoelastic.cfg` when we want the mantle and bottom of the slab to use viscoelastic bulk rheologies.
The physical properties for each material are specified in spatial database files.
For example, the elastic properties for the crust are in `mat_crust_elastic.spatialdb`.
The spatial database files for elastic properties all use just a single point to specify uniform physical properties within each material.
7 changes: 7 additions & 0 deletions docs/user/examples/subduction-3d/exercises.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Suggested Exercises

1. Change the elastic bulk rheology properties to be depth dependent.
2. Add spatial variation to the slip distribution in Step 2.
3. Change the distribution of aseismic slip (creep) in Steps 3 and 4.
4. Change the distribution of slow slip in Step 6 and the GPS stations used in Steps 6 and 7.
5. Optimize the depth variation of the initial stresses in Step 8a to minimize the deformation.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 56a0c33

Please sign in to comment.