# How to set up friction behavior and free creep on the same fault

**URL:** <https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380>\
**Category:** PyLith\
**Tags:** seismology\
**Created:** [April 26, 2022, 3:20am UTC](https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380 "2022-04-26T03:20:51Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![egg\_wang](https://avatars.discourse-cdn.com/v4/letter/e/e19b73/32.png) [@egg\_wang](https://community.geodynamics.org/u/egg_wang)\
**Post date:** [April 26, 2022, 3:20am UTC](https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380/1 "2022-04-26T03:20:51Z")

</div>

Hello,

I wonder how to assign slip-weakening frition behavior at shallow part of the subduction fault, and set the deep part of the same fault as free creep. I noticed that these two conditions seemed to work only in different types of fault interface condition (FaultCohesiveDyn and FaultCohesiveKin).The following is the content of my error and the corresponding part in cfg. Please tell me how to solve this problem.

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/geodynamics/original/2X/9/9268751bab873fae53add16e77bf0e30e7ae074c.png)

# ----------------------------------------------------------------------

# faults

# ----------------------------------------------------------------------

[pylithapp.timedependent]  
interfaces = [fault\_slabtop, fault\_slabbot]

# Set the type of fault interface condition.

[pylithapp.timedependent.interfaces]  
fault\_slabtop = pylith.faults.FaultCohesiveDyn  
fault\_slabbot = pylith.faults.FaultCohesiveKin

# Slab top -------------------------------------------------------------

[pylithapp.timedependent.interfaces.fault\_slabtop]  
id = 100  
label = fault\_slabtop  
edge = fault\_slabtop\_edge

# We must define the quadrature information for fault cells.

# The fault cells are 2D (surface).

quadrature.cell = pylith.feassemble.FIATSimplex  
quadrature.cell.dimension = 2

# Velocity weakening Friction

friction = pylith.friction.SlipWeakening  
friction.label = Slip weakening

# Force healing after each time step, so weakening is confined to each

# time step and is not carried over into subsequent time steps.

friction.force\_healing = True

friction.db\_properties = spatialdata.spatialdb.SimpleGridDB  
friction.db\_properties.label = Slip weakening  
friction.db\_properties.filename = spatialdb/fault\_slabtop\_slipweakening.spatialdb

# Use the constant slip rate time function.

[pylithapp.timedependent.interfaces.fault\_slabtop.eq\_srcs.rupture]  
slip\_function = pylith.faults.ConstRateSlipFn

# Creep

[pylithapp.timedependent.interfaces.fault\_slabtop.eq\_srcs.rupture.slip\_function]  
slip\_rate = spatialdata.spatialdb.SimpleGridDB  
slip\_rate.label = Slab top slip rate  
slip\_rate.filename = spatialdb/fault\_slabtop\_creep.spatialdb  
slip\_rate.query\_type = linear

slip\_time = spatialdata.spatialdb.UniformDB  
slip\_time.label = top slip time  
slip\_time.values = [slip-time]  
slip\_time.data = [0.0\*year]

# output

[pylithapp.timedependent.interfaces.fault\_slabtop.output]  
writer = pylith.meshio.DataWriterHDF5  
writer.filename = output/laterramp-fault-slabtop.h5  
vertex\_info\_fields = [normal\_dir, strike\_dir, dip\_dir, slip\_time\_rupture]  
vertex\_data\_fields = [slip, slip\_rate, traction]

---

<div class="post-metadata">

**Author:** ![baagaard](https://yyz2.discourse-cdn.com/flex036/user_avatar/community.geodynamics.org/baagaard/32/615_2.png) [@baagaard](https://community.geodynamics.org/u/baagaard)\
**Post date:** [April 26, 2022, 3:43am UTC](https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380/2 "2022-04-26T03:43:34Z")

</div>

PyLith does not currently support combining prescribed slip (implemented by FaultCohesiveKin) over one part of the fault and spontaneous rupture (friction, implemented by FaultCohesiveDyn) over another part of the fault.

---

<div class="post-metadata">

**Author:** ![egg\_wang](https://avatars.discourse-cdn.com/v4/letter/e/e19b73/32.png) [@egg\_wang](https://community.geodynamics.org/u/egg_wang)\
**Post date:** [April 26, 2022, 2:28pm UTC](https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380/3 "2022-04-26T14:28:08Z")

</div>

Dear Aagard,

I try to set these two conditions on two faults(slabtop\_1, slabtop\_2), which make up the whole slabtop. I don’t know if it is feasible. And now there is a new error  
**"RuntimeError: Error occurred while adjusting topology to create cohesive cells for fault ‘fault\_slabtop\_2’.Error in topology of mesh associated with symmetry of adjacency information."**.  
I thought this might be related to the wrong burried edges of slabtop\_1 and slabtop\_2, but I did not find the problem. Here is my .exo file.  
[mesh\_laterramp\_tet.zip](https://community.geodynamics.org/uploads/short-url/maiFtiZTzeg48Ayc2V5xrbGLRwQ.zip) (5.3 MB)

---

<div class="post-metadata">

**Author:** ![baagaard](https://yyz2.discourse-cdn.com/flex036/user_avatar/community.geodynamics.org/baagaard/32/615_2.png) [@baagaard](https://community.geodynamics.org/u/baagaard)\
**Post date:** [April 26, 2022, 3:54pm UTC](https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380/4 "2022-04-26T15:54:57Z")

</div>

PyLith does not support breaking up a fault into two smaller faults without imposing a buried edge between the two smaller faults. Adding the buried edge will force zero slip on the buried edge between the two smaller faults, so that is not what you want to do. The solution is to have EITHER prescribed slip OR spontaneous rupture (fault friction) over the entire fault surface.

---

<div class="post-metadata">

**Author:** ![egg\_wang](https://avatars.discourse-cdn.com/v4/letter/e/e19b73/32.png) [@egg\_wang](https://community.geodynamics.org/u/egg_wang)\
**Post date:** [April 28, 2022, 1:07pm UTC](https://community.geodynamics.org/t/how-to-set-up-friction-behavior-and-free-creep-on-the-same-fault/2380/5 "2022-04-28T13:07:32Z")

</div>

Dear Aagard,

I accepted your suggestion and tried to simulate spontaneous rupture on the fault according to **examples /3d/subduction/step05**.I modified and completed the .cfg. However, the convergence of nonlinear solutions is always poor and the error is reported as follow. I want to know whether step05 has been completed at present, if not, how can I improve the convergence for the nonliner solve?  
Here is my modified step05.cfg and pyithapp.cfg.  
[step05\_new.zip](https://community.geodynamics.org/uploads/short-url/6Iq8HFTAjDooWt1LtQnO32UlGFW.zip) (2.6 MB)

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/geodynamics/original/2X/3/33abdd3c5dfc3f16d5e2df47d4ed71655b46280e.png)
