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

brad at geodynamics.org brad at geodynamics.org
Wed Sep 5 09:16:40 PDT 2012


Author: brad
Date: 2012-09-05 09:16:39 -0700 (Wed, 05 Sep 2012)
New Revision: 20689

Modified:
   short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/FrictionModel.cc
   short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/RateStateAgeing.cc
Log:
Added warning when friction model contains a state variable and no initial value is given. Improved default value for state variable in RateStateAgeing.

Modified: short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/FrictionModel.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/FrictionModel.cc	2012-09-05 14:49:33 UTC (rev 20688)
+++ short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/FrictionModel.cc	2012-09-05 16:16:39 UTC (rev 20689)
@@ -234,7 +234,9 @@
     } // for
     // Close database
     _dbInitialState->close();
-  } // if
+  } else if (_metadata.numDBStateVars()) {
+    std::cerr << "WARNING: No initial state given for friction model '" << label() << "'. Using default value of zero." << std::endl;
+  } // if/else
 
   // Setup buffers for restrict/update of properties and state variables.
   _propsStateVarsVertex.resize(fieldsFiberDim);

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-09-05 14:49:33 UTC (rev 20688)
+++ short/3D/PyLith/branches/v1.7-stable/libsrc/pylith/friction/RateStateAgeing.cc	2012-09-05 16:16:39 UTC (rev 20689)
@@ -319,8 +319,8 @@
     const PylithScalar L = properties[p_L];
     const PylithScalar slipRate0 = properties[p_slipRate0];
 
-    // Prevent zero value for theta
-    const PylithScalar theta = std::max(stateVars[s_state], 1.0e-12);
+    // Prevent zero value for theta, reasonable value is L / slipRate0
+    const PylithScalar theta = (stateVars[s_state] > 0.0) ? stateVars[s_state] : L / slipRate0;
 
     if (slipRate >= slipRateLinear) {
       mu_f = f0 + a*log(slipRate / slipRate0) + b*log(slipRate0*theta/L);



More information about the CIG-COMMITS mailing list