[cig-commits] r20649 - short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction

brad at geodynamics.org brad at geodynamics.org
Thu Aug 30 16:02:09 PDT 2012


Author: brad
Date: 2012-08-30 16:02:08 -0700 (Thu, 30 Aug 2012)
New Revision: 20649

Modified:
   short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/RateStateAgeing.cc
Log:
Prevent zero initial state in RateStateAgeing.

Modified: short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/RateStateAgeing.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/RateStateAgeing.cc	2012-08-30 17:53:53 UTC (rev 20648)
+++ short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/RateStateAgeing.cc	2012-08-30 23:02:08 UTC (rev 20649)
@@ -318,8 +318,10 @@
     const PylithScalar b = properties[p_b];
     const PylithScalar L = properties[p_L];
     const PylithScalar slipRate0 = properties[p_slipRate0];
-    const PylithScalar theta = stateVars[s_state];
 
+    // Prevent zero value for theta
+    const PylithScalar theta = std::max(stateVars[s_state], 1.0e-10);
+
     if (slipRate >= slipRateLinear) {
       mu_f = f0 + a*log(slipRate / slipRate0) + b*log(slipRate0*theta/L);
     } else {
@@ -376,7 +378,7 @@
 
   // Since regulatized friction -> 0 as slipRate -> 0, limit slip
   // rate to some minimum value
-  const PylithScalar slipRateEff = std::max(_linearSlipRate, slipRate);
+  const PylithScalar slipRateEff = std::max(1.0e-2*_linearSlipRate, slipRate);
 
   const PylithScalar dt = _dt;
   const PylithScalar thetaTVertex = stateVars[s_state];



More information about the CIG-COMMITS mailing list