Custom friction (failure) laws implemented for PyLith v2 used in:
E. Bolotskaya, B.H. Hager, and J-P. Ampuero; Effects of failure parameterization on pre- and co-seismic earthquake rupture (in review with GJI)
Double slip-weakening (DSW) model:
where
Exponential cohesive zone (ECZ):
where
Parabolic cohesive zone (PCZ):
where
- friction/ directory
- spatialdb_examples/ directory
- README.md
- LICENSE
Contains all the files needed to implement custom friction laws in PyLith v2. The directory contains the original ViscousFriction example files and the 3 new friction model files:
DoubleSlipWeakeningFrictionNoHeal
*ExponentialCohesiveZoneNoHeal
*ParabolicCohesiveZoneNoHeal
*
* Healing is not implemented in these laws. If you're interested in implementing it, refer to the SlipWeakening
friction in original PyLith and the forceHealing
flag for guidance.
To use: substitute the contents of pylith/templates/friction with the contents of friction/ directory here and build/install as described in friction/README
Here are the energy curves (shear stress vs. slip) recovered from PyLith dynamic rupture simulations with these custom friction laws (color - node position along the fault). Slip-weakening friction (SW) is also shown.
Contains 3 example spatialdb files for the new friction laws.
Use in .cfg file (DSW):
[pylithapp.timedependent.interfaces.fault]
# Use DSW friction.
friction = pylith.friction.contrib.DoubleSlipWeakeningFrictionNoHeal
friction.label = DoubleSlipWeakeningFrictionNoHeal
# Set the friction model parameters.
friction.db_properties = spatialdata.spatialdb.SimpleDB
friction.db_properties.label = DoubleSlipWeakeningFrictionNoHeal_properties
friction.db_properties.iohandler.filename = spatialdb/1_friction_DSW.spatialdb.spatialdb
Use in .cfg file (ECZ):
[pylithapp.timedependent.interfaces.fault]
# Use ECZ friction.
friction = pylith.friction.contrib.ExponentialCohesiveZoneNoHeal
friction.label = ExponentialCohesiveZoneNoHeal
# Set the friction model parameters.
friction.db_properties = spatialdata.spatialdb.SimpleDB
friction.db_properties.label = ExponentialCohesiveZoneNoHeal_properties
friction.db_properties.iohandler.filename = spatialdb/2_friction_EXP.spatialdb
Use in .cfg file (PCZ):
[pylithapp.timedependent.interfaces.fault]
# Use PCZ friction.
friction = pylith.friction.contrib.ParabolicCohesiveZoneNoHeal
friction.label = ParabolicCohesiveZoneNoHeal
# Set the friction model parameters.
friction.db_properties = spatialdata.spatialdb.SimpleDB
friction.db_properties.label = ParabolicCohesiveZoneNoHeal_properties
friction.db_properties.iohandler.filename = spatialdb/3_friction_PAR.spatialdb
The results obtained using these failure laws are part of my Thesis: Bolotskaya, E., 2023. Effects of fault failure parameterization and bulk rheology on earthquake rupture (Doctoral dissertation, Massachusetts Institute of Technology)
and a publication submitted to GJI: E. Bolotskaya, B.H. Hager, and J-P. Ampuero, "Effects of failure parameterization on pre- and co-seismic earthquake rupture"
Please contact me if you use these custom friction laws for your research and would like a citation before the publication is out.
Release on Zenodo: