[cig-commits] r22222 - in short/3D/PyLith/trunk: libsrc/pylith/faults libsrc/pylith/friction unittests/libtests/friction unittests/libtests/friction/data

brad at geodynamics.org brad at geodynamics.org
Tue Jun 11 13:29:55 PDT 2013


Author: brad
Date: 2013-06-11 13:29:55 -0700 (Tue, 11 Jun 2013)
New Revision: 22222

Modified:
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh
   short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc
   short/3D/PyLith/trunk/libsrc/pylith/friction/RateStateAgeing.cc
   short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakening.cc
   short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTime.cc
   short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTimeStable.cc
   short/3D/PyLith/trunk/libsrc/pylith/friction/TimeWeakening.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestRateStateAgeing.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTime.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTimeStable.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh
Log:
Added unit tests for derivative of friction with slip.

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -54,10 +54,6 @@
 #include <sstream> // USES std::ostringstream
 #include <stdexcept> // USES std::runtime_error
 
-// Precomputing geometry significantly increases storage but gives a
-// slight speed improvement.
-//#define PRECOMPUTE_GEOMETRY
-
 // ----------------------------------------------------------------------
 // Default constructor.
 pylith::faults::FaultCohesiveDyn::FaultCohesiveDyn(void) :
@@ -669,9 +665,9 @@
     // Use fault constitutive model to compute traction associated with
     // friction.
     dTractionTpdtVertex = 0.0;
-    const PylithScalar jacobianShear = 0.0;
+    const PylithScalar jacobianShearVertex = 0.0;
     const bool iterating = true; // Iterating to get friction
-    CALL_MEMBER_FN(*this, constrainSolnSpaceFn)(&dTractionTpdtVertex, t, slipTpdtVertex, slipRateVertex, tractionTpdtVertex, jacobianShear, iterating);
+    CALL_MEMBER_FN(*this, constrainSolnSpaceFn)(&dTractionTpdtVertex, t, slipTpdtVertex, slipRateVertex, tractionTpdtVertex, jacobianShearVertex, iterating);
 
     // Rotate increment in traction back to global coordinate system.
     dLagrangeTpdtVertex = 0.0;
@@ -2387,6 +2383,7 @@
 	  } // for
 	} // if
 #endif
+
 	// Update traction increment based on value required to stick
 	// versus friction
 	const PylithScalar dlp = -(tractionShearMag - frictionStress) * tractionTpdt[0] / tractionShearMag;

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -243,7 +243,6 @@
   /** Constrain solution space in 2-D.
    *
    * @param dLagrangeTpdt Adjustment to Lagrange multiplier.
-   * @param dSlip Adjustment to slip.
    * @param t Current time.
    * @param slip Slip assoc. w/Lagrange multiplier vertex.
    * @param slipRate Slip rate assoc. w/Lagrange multiplier vertex.
@@ -262,7 +261,6 @@
   /** Constrain solution space in 3-D.
    *
    * @param dLagrangeTpdt Adjustment to Lagrange multiplier.
-   * @param dSlip Adjustment to slip.
    * @param t Current time.
    * @param slip Slip assoc. w/Lagrange multiplier vertex.
    * @param slipRate Slip rate assoc. w/Lagrange multiplier vertex.

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -379,11 +379,11 @@
   const PylithScalar* stateVarsVertex = (_varsFiberDim > 0) ?
     &_propsStateVarsVertex[_propsFiberDim] : 0;
 
-  const PylithScalar friction = _calcFrictionDeriv(t, slip, slipRate, normalTraction,
-						   propertiesVertex, _propsFiberDim,
-						   stateVarsVertex, _varsFiberDim);
+  const PylithScalar frictionDeriv = _calcFrictionDeriv(t, slip, slipRate, normalTraction,
+							propertiesVertex, _propsFiberDim,
+							stateVarsVertex, _varsFiberDim);
   
-  PYLITH_METHOD_RETURN(friction);
+  PYLITH_METHOD_RETURN(frictionDeriv);
 } // calcFrictionDeriv
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/RateStateAgeing.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/RateStateAgeing.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/RateStateAgeing.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -32,7 +32,7 @@
 #include <cassert> // USES assert()
 #include <sstream> // USES std::ostringstream
 #include <stdexcept> // USES std::runtime_error
-#include <iostream>
+
 // ----------------------------------------------------------------------
 namespace pylith {
   namespace friction {
@@ -367,9 +367,9 @@
     const PylithScalar slipRate0 = properties[p_slipRate0];
 
     if (slipRate >= slipRateLinear) {
-      frictionDeriv = -normalTraction * a / (slipRate * _dt);
+      frictionDeriv = normalTraction * a / (slipRate * _dt);
     } else {
-      frictionDeriv = -normalTraction * a / (slipRateLinear * _dt);
+      frictionDeriv = normalTraction * a / (slipRateLinear * _dt);
     } // else
   } // if    
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakening.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakening.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakening.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -329,11 +329,11 @@
     const PylithScalar slipCum = stateVars[s_slipCum] + fabs(slip - slipPrev);
 
     if (slipCum < properties[p_d0]) {
-      frictionDeriv = -normalTraction * (properties[p_coefS] - properties[p_coefD]) / properties[p_d0];
+      frictionDeriv = normalTraction * (properties[p_coefS] - properties[p_coefD]) / properties[p_d0];
     } // if
   } // if
 
-  PetscLogFlops(7);
+  PetscLogFlops(6);
 
   return frictionDeriv;
 } // _calcFrictionDeriv

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTime.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTime.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTime.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -336,11 +336,11 @@
     const PylithScalar slipCum = stateVars[s_slipCum] + fabs(slip - slipPrev);
 
     if (slipCum < properties[p_d0] && t < properties[p_weaktime]) {
-      frictionDeriv = -normalTraction * (properties[p_coefS] - properties[p_coefD]) / properties[p_d0];
+      frictionDeriv = normalTraction * (properties[p_coefS] - properties[p_coefD]) / properties[p_d0];
     } // if
   } // if
 
-  PetscLogFlops(7);
+  PetscLogFlops(6);
 
   return frictionDeriv;
 } // _calcFrictionDeriv

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTimeStable.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTimeStable.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/SlipWeakeningTimeStable.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -359,11 +359,11 @@
       timeWeak = (t - properties[p_weaktime]) / properties[p_t0];
     } // if/else
     if (slipWeak > timeWeak && slipCum < properties[p_d0]) {
-      frictionDeriv = -normalTraction * (properties[p_coefS] - properties[p_coefD]) / properties[p_d0];
+      frictionDeriv = normalTraction * (properties[p_coefS] - properties[p_coefD]) / properties[p_d0];
     } // if
   } // if
 
-  PetscLogFlops(11);
+  PetscLogFlops(10);
 
   return frictionDeriv;
 } // _calcFrictionDeriv

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/TimeWeakening.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/TimeWeakening.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/TimeWeakening.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -32,7 +32,7 @@
 #include <cassert> // USES assert()
 #include <sstream> // USES std::ostringstream
 #include <stdexcept> // USES std::runtime_error
-#include <iostream>
+
 // ----------------------------------------------------------------------
 namespace pylith {
   namespace friction {

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -44,10 +44,6 @@
 #include "spatialdata/geocoords/CSCart.hh" // USES CSCart
 #include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
 
-#include <cstring> // USES memcpy()
-
-//#define PRECOMPUTE_GEOMETRY
-
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::friction::TestFrictionModel );
 
@@ -326,6 +322,38 @@
 } // testCalcFriction
     
 // ----------------------------------------------------------------------
+// Test calcFrictionDeriv()
+void
+pylith::friction::TestFrictionModel::testCalcFrictionDeriv(void)
+{ // testCalcFrictionDeriv
+  PYLITH_METHOD_BEGIN;
+
+  topology::Mesh mesh;
+  faults::FaultCohesiveDyn fault;
+  StaticFriction friction;
+  StaticFrictionData data;
+  _initialize(&mesh, &fault, &friction, &data);
+
+  const PylithScalar t = 1.5;
+  const PylithScalar slip = 1.2;
+  const PylithScalar slipRate = -2.3;
+  const PylithScalar normalTraction = -2.4e-3;
+  const PylithScalar frictionCoef = 0.6;
+  const PylithScalar cohesion = 1.0e+6/data.pressureScale;
+  const PylithScalar frictionDerivE = 0.0;
+  const int vertex = 2;
+
+  friction.timeStep(data.dt);
+  friction.retrievePropsStateVars(vertex);
+  const PylithScalar frictionDeriv = friction.calcFrictionDeriv(t, slip, slipRate, normalTraction);
+
+  const PylithScalar tolerance = 1.0e-06;
+  CPPUNIT_ASSERT_DOUBLES_EQUAL(frictionDerivE, frictionDeriv, tolerance);
+
+  PYLITH_METHOD_END;
+} // testCalcFrictionDeriv
+    
+// ----------------------------------------------------------------------
 // Test updateStateVars()
 void
 pylith::friction::TestFrictionModel::testUpdateStateVars(void)
@@ -728,6 +756,51 @@
 } // _testCalcFriction
 
 // ----------------------------------------------------------------------
+// Test _calcFriction()
+void
+pylith::friction::TestFrictionModel::test_calcFrictionDeriv(void)
+{ // _testCalcFrictionDeriv
+  PYLITH_METHOD_BEGIN;
+
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
+
+  const int numLocs = _data->numLocs;
+  const int numPropsVertex = _data->numPropsVertex;
+  const int numVarsVertex = _data->numVarsVertex;
+  
+  scalar_array properties(numPropsVertex);
+  scalar_array stateVars(numVarsVertex);
+
+  for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+    for (int i=0; i < numPropsVertex; ++i)
+      properties[i] = _data->properties[iLoc*numPropsVertex+i];
+    for (int i=0; i < numVarsVertex; ++i)
+      stateVars[i] = _data->stateVars[iLoc*numVarsVertex+i];
+    const PylithScalar t = 1.5;
+    const PylithScalar slip = _data->slip[iLoc];
+    const PylithScalar slipRate = _data->slipRate[iLoc];
+    const PylithScalar normalTraction = _data->normalTraction[iLoc];
+
+    _friction->timeStep(_data->dt);
+    const PylithScalar frictionDeriv = 
+      _friction->_calcFrictionDeriv(t, slip, slipRate, normalTraction,
+				    &properties[0], properties.size(),
+				    &stateVars[0], stateVars.size());
+    
+    const PylithScalar frictionDerivE = _data->frictionDeriv[iLoc];
+    
+    const PylithScalar tolerance = 1.0e-06;
+    if (0.0 != frictionDerivE)
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, frictionDeriv/frictionDerivE, tolerance);
+    else
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(frictionDerivE, frictionDeriv, tolerance);
+  } // for
+
+  PYLITH_METHOD_END;
+} // _testCalcFrictionDeriv
+
+// ----------------------------------------------------------------------
 // Test _updateStateVars()
 void
 pylith::friction::TestFrictionModel::test_updateStateVars(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -58,6 +58,7 @@
   CPPUNIT_TEST( testGetField );
   CPPUNIT_TEST( testRetrievePropsStateVars );
   CPPUNIT_TEST( testCalcFriction );
+  CPPUNIT_TEST( testCalcFrictionDeriv );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();
@@ -92,6 +93,9 @@
   /// Test calcFriction()
   void testCalcFriction(void);
 
+  /// Test calcFrictionDeriv()
+  void testCalcFrictionDeriv(void);
+
   /// Test updateStateVars().
   void testUpdateStateVars(void);
 
@@ -129,6 +133,9 @@
   /// Test _calcFriction().
   void test_calcFriction(void);
 
+  /// Test _calcFrictionDeriv().
+  void test_calcFrictionDeriv(void);
+
   /// Test _updateStateVars().
   void test_updateStateVars(void);
 

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestRateStateAgeing.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestRateStateAgeing.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestRateStateAgeing.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -54,6 +54,7 @@
   CPPUNIT_TEST( testDimStateVars );
   CPPUNIT_TEST( testHasPropStateVar );
   CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_calcFrictionDeriv );
   CPPUNIT_TEST( test_updateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -53,6 +53,7 @@
   CPPUNIT_TEST( testDimStateVars );
   CPPUNIT_TEST( testHasPropStateVar );
   CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_calcFrictionDeriv );
   CPPUNIT_TEST( test_updateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTime.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTime.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTime.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -53,6 +53,7 @@
   CPPUNIT_TEST( testDimStateVars );
   CPPUNIT_TEST( testHasPropStateVar );
   CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_calcFrictionDeriv );
   CPPUNIT_TEST( test_updateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTimeStable.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTimeStable.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakeningTimeStable.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -53,6 +53,7 @@
   CPPUNIT_TEST( testDimStateVars );
   CPPUNIT_TEST( testHasPropStateVar );
   CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_calcFrictionDeriv );
   CPPUNIT_TEST( test_updateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -53,6 +53,7 @@
   CPPUNIT_TEST( testDimStateVars );
   CPPUNIT_TEST( testHasPropStateVar );
   CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_calcFrictionDeriv );
   CPPUNIT_TEST( test_updateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -47,6 +47,7 @@
   CPPUNIT_TEST( testDimStateVars );
   CPPUNIT_TEST( testHasPropStateVar );
   CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_calcFrictionDeriv );
   CPPUNIT_TEST( test_updateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -40,6 +40,7 @@
   propertiesNondim(0),
   stateVarsNondim(0),
   friction(0),
+  frictionDeriv(0),
   slip(0),
   slipRate(0),
   normalTraction(0),

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -66,6 +66,7 @@
   PylithScalar* stateVarsNondim; ///< Nondimensional state variables at locations.
 
   PylithScalar* friction; ///< Friction at locations.
+  PylithScalar* frictionDeriv; ///< Derivative of friction with slip at locations.
   PylithScalar* slip; ///< Slip at locations.
   PylithScalar* slipRate; ///< Slip rate at locations.
   PylithScalar* normalTraction; ///< Normal traction at locations.

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -133,6 +133,11 @@
   1000001.164378652801948,
 };
 
+const PylithScalar pylith::friction::RateStateAgeingData::_frictionDeriv[] = {
+  -2.2*0.0125/(0.0011*0.01),
+  -2.3*0.0225/(0.0021*0.01),
+};
+
 const PylithScalar pylith::friction::RateStateAgeingData::_slip[] = {
   0.12,
   0.22,
@@ -178,6 +183,7 @@
   propertiesNondim = const_cast<PylithScalar*>(_propertiesNondim);
   stateVarsNondim = const_cast<PylithScalar*>(_stateVarsNondim);
   friction = const_cast<PylithScalar*>(_friction);
+  frictionDeriv = const_cast<PylithScalar*>(_frictionDeriv);
   slip = const_cast<PylithScalar*>(_slip);
   slipRate = const_cast<PylithScalar*>(_slipRate);
   normalTraction = const_cast<PylithScalar*>(_normalTraction);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/RateStateAgeingData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -86,6 +86,8 @@
 
   static const PylithScalar _friction[];
 
+  static const PylithScalar _frictionDeriv[];
+
   static const PylithScalar _slip[];
 
   static const PylithScalar _slipRate[];

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -125,6 +125,11 @@
   1000001.15,
 };
 
+const PylithScalar pylith::friction::SlipWeakeningData::_frictionDeriv[] = {
+  -2.2*0.1/0.8,
+  0.0,
+};
+
 const PylithScalar pylith::friction::SlipWeakeningData::_slip[] = {
   0.12,
   0.25,
@@ -172,6 +177,7 @@
   propertiesNondim = const_cast<PylithScalar*>(_propertiesNondim);
   stateVarsNondim = const_cast<PylithScalar*>(_stateVarsNondim);
   friction = const_cast<PylithScalar*>(_friction);
+  frictionDeriv = const_cast<PylithScalar*>(_frictionDeriv);
   slip = const_cast<PylithScalar*>(_slip);
   slipRate = const_cast<PylithScalar*>(_slipRate);
   normalTraction = const_cast<PylithScalar*>(_normalTraction);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -86,6 +86,8 @@
 
   static const PylithScalar _friction[];
 
+  static const PylithScalar _frictionDeriv[];
+
   static const PylithScalar _slip[];
 
   static const PylithScalar _slipRate[];

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -133,6 +133,11 @@
   1000001.15,
 };
 
+const PylithScalar pylith::friction::SlipWeakeningTimeData::_frictionDeriv[] = {
+  -2.2*0.1/0.8,
+  0.0,
+};
+
 const PylithScalar pylith::friction::SlipWeakeningTimeData::_slip[] = {
   0.12,
   0.25,
@@ -180,6 +185,7 @@
   propertiesNondim = const_cast<PylithScalar*>(_propertiesNondim);
   stateVarsNondim = const_cast<PylithScalar*>(_stateVarsNondim);
   friction = const_cast<PylithScalar*>(_friction);
+  frictionDeriv = const_cast<PylithScalar*>(_frictionDeriv);
   slip = const_cast<PylithScalar*>(_slip);
   slipRate = const_cast<PylithScalar*>(_slipRate);
   normalTraction = const_cast<PylithScalar*>(_normalTraction);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -86,6 +86,8 @@
 
   static const PylithScalar _friction[];
 
+  static const PylithScalar _frictionDeriv[];
+
   static const PylithScalar _slip[];
 
   static const PylithScalar _slipRate[];

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -271,6 +271,15 @@
   11.15e+5,
 };
 
+const PylithScalar pylith::friction::SlipWeakeningTimeStableData::_frictionDeriv[6] = {
+  -2.2e+5*0.1/0.8,
+  0.0,
+  0.0,
+  0.0,
+  0.0,
+  0.0,
+};
+
 const PylithScalar pylith::friction::SlipWeakeningTimeStableData::_slip[6] = {
   0.15,
   0.15,
@@ -343,6 +352,7 @@
   propertiesNondim = const_cast<PylithScalar*>(_propertiesNondim);
   stateVarsNondim = const_cast<PylithScalar*>(_stateVarsNondim);
   friction = const_cast<PylithScalar*>(_friction);
+  frictionDeriv = const_cast<PylithScalar*>(_frictionDeriv);
   slip = const_cast<PylithScalar*>(_slip);
   slipRate = const_cast<PylithScalar*>(_slipRate);
   normalTraction = const_cast<PylithScalar*>(_normalTraction);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningTimeStableData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -86,6 +86,8 @@
 
   static const PylithScalar _friction[];
 
+  static const PylithScalar _frictionDeriv[];
+
   static const PylithScalar _slip[];
 
   static const PylithScalar _slipRate[];

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -88,6 +88,11 @@
   1.0e+6,
 };
 
+const PylithScalar pylith::friction::StaticFrictionData::_frictionDeriv[] = {
+  0.0,
+  0.0,
+};
+
 const PylithScalar pylith::friction::StaticFrictionData::_slip[] = {
   0.12,
   0.25,
@@ -130,6 +135,7 @@
   propertiesNondim = const_cast<PylithScalar*>(_propertiesNondim);
   stateVarsNondim = const_cast<PylithScalar*>(_stateVarsNondim);
   friction = const_cast<PylithScalar*>(_friction);
+  frictionDeriv = const_cast<PylithScalar*>(_frictionDeriv);
   slip = const_cast<PylithScalar*>(_slip);
   slipRate = const_cast<PylithScalar*>(_slipRate);
   normalTraction = const_cast<PylithScalar*>(_normalTraction);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -86,6 +86,8 @@
 
   static const PylithScalar _friction[];
 
+  static const PylithScalar _frictionDeriv[];
+
   static const PylithScalar _slip[];
 
   static const PylithScalar _slipRate[];

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc	2013-06-11 20:29:55 UTC (rev 22222)
@@ -117,6 +117,11 @@
   1000001.15,
 };
 
+const PylithScalar pylith::friction::TimeWeakeningData::_frictionDeriv[] = {
+  0.0,
+  0.0,
+};
+
 const PylithScalar pylith::friction::TimeWeakeningData::_slip[] = {
   0.12,
   0.25,
@@ -162,6 +167,7 @@
   propertiesNondim = const_cast<PylithScalar*>(_propertiesNondim);
   stateVarsNondim = const_cast<PylithScalar*>(_stateVarsNondim);
   friction = const_cast<PylithScalar*>(_friction);
+  frictionDeriv = const_cast<PylithScalar*>(_frictionDeriv);
   slip = const_cast<PylithScalar*>(_slip);
   slipRate = const_cast<PylithScalar*>(_slipRate);
   normalTraction = const_cast<PylithScalar*>(_normalTraction);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh	2013-06-11 20:04:36 UTC (rev 22221)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh	2013-06-11 20:29:55 UTC (rev 22222)
@@ -86,6 +86,8 @@
 
   static const PylithScalar _friction[];
 
+  static const PylithScalar _frictionDeriv[];
+
   static const PylithScalar _slip[];
 
   static const PylithScalar _slipRate[];



More information about the CIG-COMMITS mailing list