[CIG-SHORT] Kinematic faults vs dynamic faults and fault opening

Brad Aagaard baagaard at usgs.gov
Wed May 16 14:31:00 PDT 2012


On 05/16/2012 02:09 PM, Hongfeng Yang wrote:
> Do you mean
> if u_n> 0, we set T_f = 0 even if the cohesion is nonzero?

Yes. If the fault opening displacement is zero (u_n == 0) then PyLith 
uses the friction model T_f = -mu_f*T_n + T_c (T_f is friction, mu_f is 
the coef of friction, T_c is cohesion). If the fault opening 
displacement is positive (fault opens) then the two sides of the fault 
are no longer in contact with each other and so we de-couple the two 
sides of the fault and they become traction free. This means the 
tractions should be zero.

> In my rupture simulations, I run into the fault opening case on a curved
> fault surface. The error is the following
>
> WARNING! Fault opening with nonzero traction., v_fault: 7063, opening:
> 10.7885, normal traction: -4870.89
> mpinemesis: faults/FaultCohesiveDyn.cc:348: virtual void
> pylith::faults::FaultCohesiveDyn::integrateResidual(const
> pylith::topology::Field<pylith::topology::Mesh>&, double,
> pylith::topology::SolutionFields*): Assertion `fabs(tractionNormal)<
> _zeroTolerance' failed.
> [0]0:Return code = 0, signaled with Aborted
>
> What may be the reason to cause the large u_n in the above case? Ill
> shape element? And how can I fix it in addition to increase the value of
> zero_Tolerance?

If the fault opening is 10.8, is the lateral slip larger or smaller? If 
the lateral slip is 100, then the fault opening might be "small" but if 
the lateral slip is 1.0, then the fault opening is "large" and something 
odd is happening. How smooth is the solution? If you have numerical 
noise or instabilities then this could easily occur.

> Another question is whether there is an option toenforce u_n to be a
> small value if u_n> zero_Tolerance, in order to avoid fault opening
> during dynamic rupture simulation?I looked into
> thefaults/FaultCohesiveDyn.ccand did not find such thing.

The PyLith scecdynrup branch hardwires fault opening to be zero in order 
to satisfy the SCEC benchmark problem descriptions. I suggest 
investigating what is causing the fault opening before trying to force 
it to go away numerically.

Regards,
Brad


> On 04/23/2012 05:02 PM, Brad Aagaard wrote:
>> Brad,
>>
>> A more complete explanation of the fault opening condition and zero
>> tractions is summarized mathematically by:
>>
>> T_n * u_n = 0
>>
>> T_n = normal traction
>> u_n = normal displacement
>>
>> If T_n<= 0, then u_n = 0 and if u_n> 0, then T_n = 0. Also note that
>> if u_n = 0, we set T_f = 0 even if the cohesion is nonzero because
>> contact is lost.
>>
>> Brad
>>
>>
>>
>> Brad Hager pointed out that we also impose the condition
>>
>> On 04/23/2012 01:44 PM, Brad Aagaard wrote:
>>> On 04/23/2012 11:34 AM, bhhager wrote:
>>>> I am confused by your description. I think that dike intrusion
>>>> should result when the magma pressure is large relative to the
>>>> background (compressive) stress, thereby forcing the dike to open by
>>>> exerting a large compressive normal traction on the medium bounding
>>>> the dike. (Imagine a flat jack wedging the medium apart.)
>>>>
>>>> In other words, crack opening is aided by high fluid pressures (that
>>>> is, highly-compressive) that push the fault open. (Ahead of the
>>>> fault, the medium might go into tension, but that's another story.)
>>>>
>>>> Following this "logic," I don't see why putting the compressive
>>>> tractions on a fault that are needed to push the adjacent planes
>>>> apart should be inconsistent with the frictional sliding case
>>>> requiring either compressive or zero normal tractions.
>>>>
>>>> If this is correct, you can shorten your TODO list.
>>>>
>>>> What am I missing?
>>> In the current version of PyLith, the FaultCohesiveDyn object implements
>>> what I would describe as a frictional contact:
>>>
>>> T_f = C - mu_f*Tn if Tn<= 0
>>>
>>> T_f = 0 if Tn> 0
>>>
>>> T_f = shear traction (friction) on fault
>>> C = Cohesion
>>> mu_f = coefficient of friction
>>> T_n = normal fault traction
>>>
>>> In implementing this contact condition, if the fault opens then we
>>> enforce zero tractions (shear and normal) on the fault surface so that
>>> it is a free surface. This corresponds to frictional contact behavior.
>>>
>>> If the deformation causing the fault opening is part of the elasticity
>>> solution, then the frictional contact implementation allows the fault to
>>> open (with the fault surface becoming traction free). On the other hand,
>>> if one wants to simulate a dike intrusion via imposed tractions on an
>>> interior surface (a flat jack wedging the medium apart) to approximate
>>> intrusion of a fluid, this is incompatible with enforcing a free surface
>>> when fault opening occurs. One can simulate dike intrusion via
>>> prescribed slip, but it is more naturally done via tractions.
>>>
>>> In the past we have discussed modeling dike intrusions by adding a
>>> FaultCohesiveTract object. I think we can add in the functionality that
>>> most people would want for dike intrusions by simply adding a switch
>>> that allows initial tractions to be imposed even when the fault is open.
>>> This alone would not allow for transient intrusions but when combined
>>> with the planned spatial and temporal perturbations in fault tractions
>>> (intended for earthquake rupture nucleation), it could extend the
>>> behavior to cover some simple transient intrusions as well.
>>>
>>> Brad
>>> _______________________________________________
>>> CIG-SHORT mailing list
>>> CIG-SHORT at geodynamics.org
>>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>>
>> _______________________________________________
>> CIG-SHORT mailing list
>> CIG-SHORT at geodynamics.org
>> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short
>>
>
>
>
>
> _______________________________________________
> CIG-SHORT mailing list
> CIG-SHORT at geodynamics.org
> http://geodynamics.org/cgi-bin/mailman/listinfo/cig-short



More information about the CIG-SHORT mailing list