Power law rheology

Dear everyone,
I am currently running viscoelastic simulations (for postseismic study) using power law rheology. I would like to add transient relaxation to power law rheology. Is there a way to do that in Pylith?
Jian Zhang

Can you be more precise (for example, provide equations) of what you mean by “add transient relaxation to power law rheology”?


In a Burgers-type power law rheology, the strain due to steady-state creep and transient creep are in series:
In steady-state creep:
In transient creep:

Details are avaliable in Agata et al., 2019 (Nature Communications)

Dear Jiang,

This implementation of power-law rheology is not presently available in PyLith. It would require adding a new rheology. Are you interested in doing this?


Yes, I am very interested in doing this. I hope we can add the rheology, which seems important to model postseismic deformation.

The general workflow for adding a bulk rheology for elasticity for PyLith is (for details, see PyLith development environment Docker image — PyLith Installer v3.0.3-1 documentation and Developer Guide — PyLith 3.0.3 documentation, and Adding New Governing Equations and/or Bulk Rheologies — PyLith 3.0.3 documentation in particular):

  1. Fork the PyLith GitHub repository
  2. Setup the PyLith development environment using the provided Docker container.
  3. Implement the new functionality by adding new files analogous to the existing PowerLaw bulk rheology files
    a. Implement the C++ objects for a new bulk rheology (libsrc/pylith/materials)
    a. Implement the C++ point-wise functions for a new bulk rheology (libsrc/pylith/fekernels)
    c. Create the SWIG interface files that allow Python to call C++ code (modulesrc/materials)
    d. Implement the Python object for a new bulk rheology (pylith/materials)

Note: We are starting to design a simpler workflow for extending PyLith in this way, but the implementation is many months away as we want to finish implementing several features first.