[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