[cig-commits] r16497 - in short/3D/PyLith/trunk: libsrc/friction playpen/friction/bar_shearwave/quad4 pylith/friction tests/2d/quad4 unittests/libtests/friction

brad at geodynamics.org brad at geodynamics.org
Tue Apr 6 17:23:42 PDT 2010


Author: brad
Date: 2010-04-06 17:23:41 -0700 (Tue, 06 Apr 2010)
New Revision: 16497

Modified:
   short/3D/PyLith/trunk/libsrc/friction/FrictionModel.hh
   short/3D/PyLith/trunk/libsrc/friction/RateStateAgeing.cc
   short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc
   short/3D/PyLith/trunk/playpen/friction/bar_shearwave/quad4/shearwave.cfg
   short/3D/PyLith/trunk/pylith/friction/SlipWeakening.py
   short/3D/PyLith/trunk/pylith/friction/StaticFriction.py
   short/3D/PyLith/trunk/tests/2d/quad4/README
   short/3D/PyLith/trunk/tests/2d/quad4/axialdisp_soln.py
   short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh
Log:
Added unit test to check friction metadata.

Modified: short/3D/PyLith/trunk/libsrc/friction/FrictionModel.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/FrictionModel.hh	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/libsrc/friction/FrictionModel.hh	2010-04-07 00:23:41 UTC (rev 16497)
@@ -304,6 +304,9 @@
   int _numPropsVertex; ///< Number of properties per vertex.
   int _numVarsVertex; ///< Number of state variables per vertex.
 
+  /// Property and state variable metadata.
+  const pylith::materials::Metadata _metadata;
+
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :
   
@@ -330,9 +333,6 @@
 
   std::string _label; ///< Label of friction model.
 
-  /// Property and state variable metadata.
-  const pylith::materials::Metadata _metadata;
-
   /** Properties for current vertex.
    *
    * size = numProps

Modified: short/3D/PyLith/trunk/libsrc/friction/RateStateAgeing.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/RateStateAgeing.cc	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/libsrc/friction/RateStateAgeing.cc	2010-04-07 00:23:41 UTC (rev 16497)
@@ -55,17 +55,17 @@
 
       // Values expected in spatial database
       const int numDBProperties = 6;
-      const char* dbProperties[] = {
+      const char* dbProperties[6] = {
 	"reference-friction-coefficient",
 	"reference-slip-rate",
 	"characteristic-slip-distance",
 	"constitutive-parameter-a",
 	"constitutive-parameter-b",
-	  "cohesion"
+	"cohesion",
       };
 
       const int numDBStateVars = 1;
-      const char* dbStateVars[] = {
+      const char* dbStateVars[1] = {
             "state-variable"
       };
       

Modified: short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc	2010-04-07 00:23:41 UTC (rev 16497)
@@ -54,16 +54,16 @@
 
       // Values expected in spatial database
       const int numDBProperties = 4;
-      const char* dbProperties[] = { "static-coefficient",
-				     "dynamic-coefficient",
-				     "slip-weakening-parameter",
-				     "cohesion"
- };      
+      const char* dbProperties[4] = { "static-coefficient",
+				      "dynamic-coefficient",
+				      "slip-weakening-parameter",
+				      "cohesion",
+      };
 
       const int numDBStateVars = 2;
-      const char* dbStateVars[] = { "cumulative-slip",
-				    "previous-slip"
-};      
+      const char* dbStateVars[2] = { "cumulative-slip",
+				     "previous-slip",
+      };      
       
     } // _SlipWeakening
   } // friction

Modified: short/3D/PyLith/trunk/playpen/friction/bar_shearwave/quad4/shearwave.cfg
===================================================================
--- short/3D/PyLith/trunk/playpen/friction/bar_shearwave/quad4/shearwave.cfg	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/playpen/friction/bar_shearwave/quad4/shearwave.cfg	2010-04-07 00:23:41 UTC (rev 16497)
@@ -99,10 +99,10 @@
 db_initial_tractions.values = [traction-shear,traction-normal]
 db_initial_tractions.data = [-6001.0*MPa, -10000.0*MPa]
 
-friction = pylith.friction.StaticFriction
+friction = pylith.friction.SlipWeakening
 
 friction.db_properties = spatialdata.spatialdb.UniformDB
-friction.db_properties.label = Static friction
+friction.db_properties.label = Slip weakening friction
 friction.db_properties.values = [friction-coefficient,cohesion]
 friction.db_properties.data = [0.6*m,0.0*Pa]
 

Modified: short/3D/PyLith/trunk/pylith/friction/SlipWeakening.py
===================================================================
--- short/3D/PyLith/trunk/pylith/friction/SlipWeakening.py	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/pylith/friction/SlipWeakening.py	2010-04-07 00:23:41 UTC (rev 16497)
@@ -36,7 +36,7 @@
     FrictionModel.__init__(self, name)
     self.availableFields = \
         {'vertex': \
-           {'info': ["static_coefficient","dynamic_coefficient","slip_weakening_parameter","cumulative_slip","previous_slip"],
+           {'info': ["static_coefficient","dynamic_coefficient","slip_weakening_parameter","cohesion"],
             'data': []},
          'cell': \
            {'info': [],

Modified: short/3D/PyLith/trunk/pylith/friction/StaticFriction.py
===================================================================
--- short/3D/PyLith/trunk/pylith/friction/StaticFriction.py	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/pylith/friction/StaticFriction.py	2010-04-07 00:23:41 UTC (rev 16497)
@@ -36,7 +36,7 @@
     FrictionModel.__init__(self, name)
     self.availableFields = \
         {'vertex': \
-           {'info': ["friction_coefficient"],
+           {'info': ["friction_coefficient","cohesion"],
             'data': []},
          'cell': \
            {'info': [],

Modified: short/3D/PyLith/trunk/tests/2d/quad4/README
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/README	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/tests/2d/quad4/README	2010-04-07 00:23:41 UTC (rev 16497)
@@ -2,36 +2,28 @@
 DOMAIN
 ======================================================================
 
--400 <= x <= +400
--400 <= y <= +400
+-4000 <= x <= +4000
+-4000 <= y <= +4000
 
-Mesh is quad4 cells with nominal 100m discretization size.
+Mesh is quad4 cells with nominal 1000m discretization size.
 
-======================================================================
-AXIAL COMPRESSION
-======================================================================
 
-2-D axial compression test with linear quadrilateral cells.
+AXIAL COMPRESSION (axialdisp.cfg)
+  See axialdisp_soln.py
 
-         Uy=-1.0 m
-         ----------
-         |        |
-Ux=0.0 m |        |
-         |        |
-         |        |
-         ----------
-         Uy=+1.0 m
+SHEAR (sheardisp.cfg)
+  See sheardisp_soln.py
 
-Dirichlet boundary conditions
-  Ux(0,y) = 0.0
-  Uy(x,-400) = +1.0 m
-  Uy(x,+400) = -1.0 m
+DISLOCATION (dislocation.cfg)
+  See dislocation_soln.py
 
-Analytical solution
-  Ux(x,y) = 0
-  Uy(x,y) = -0.004 * y
+DISLOCATION2 (dislocation2.cfg)
+  See dislocation2_soln.py
 
+SMALL STRAIN RIGID BODY ROTATION (lgdeform_rigidbody.cfg)
 
+SMALL STRAIN COMPRESSION (lfdeform_traction.cfg)
+
 ======================================================================
 SHEAR
 ======================================================================
@@ -55,7 +47,7 @@
 
 Analytical solution
   Ux(x,y) = 0
-  Uy(x,y) = -0.004 * x
+  Uy(x,y) = -0.0025 * x
 
 
 ======================================================================

Modified: short/3D/PyLith/trunk/tests/2d/quad4/axialdisp_soln.py
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/axialdisp_soln.py	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/tests/2d/quad4/axialdisp_soln.py	2010-04-07 00:23:41 UTC (rev 16497)
@@ -14,6 +14,22 @@
 ##
 ## @brief Analytical solution to axial displacement problem.
 
+## 2-D axial compression test with linear quadrilateral cells.
+##
+##          Uy=-a
+##          ----------
+##          |        |
+## Ux=-b    |        |
+##          |        |
+##          |        |
+##          ----------
+##          Uy=+a
+## 
+## Dirichlet boundary conditions
+##   Ux(0,y) = -b
+##   Uy(x,-4000) = +a
+##   Uy(x,+4000) = -a
+
 import numpy
 
 # Physical properties

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc	2010-04-07 00:23:41 UTC (rev 16497)
@@ -32,14 +32,39 @@
 } // setUp
 
 // ----------------------------------------------------------------------
+// Test properties metadata.
+void
+pylith::friction::TestStaticFriction::testPropertiesMetadata(void)
+{ // testPropertiesMetadata
+  StaticFriction model;
+
+  CPPUNIT_ASSERT_EQUAL(2, model._metadata.numDBProperties());
+  const char* const* names = model._metadata.dbProperties();
+  CPPUNIT_ASSERT_EQUAL(std::string("friction-coefficient"), 
+		       std::string(names[0]));
+  CPPUNIT_ASSERT_EQUAL(std::string("cohesion"),
+		       std::string(names[1]));
+} // testPropertiesMetadata
+
+// ----------------------------------------------------------------------
+// Test state variable metadata.
+void
+pylith::friction::TestStaticFriction::testStateVarsMetadata(void)
+{ // testStateVarsMetadata
+  StaticFriction model;
+
+  CPPUNIT_ASSERT_EQUAL(0, model._metadata.numDBStateVars());
+} // testStateVarsMetadata
+
+// ----------------------------------------------------------------------
 // Test hasProperty().
 void
 pylith::friction::TestStaticFriction::testHasProperty(void)
 { // testHasProperty
-  StaticFriction material;
+  StaticFriction model;
 
-  CPPUNIT_ASSERT(material.hasProperty("friction_coefficient"));
-  CPPUNIT_ASSERT(!material.hasProperty("aaa"));
+  CPPUNIT_ASSERT(model.hasProperty("friction_coefficient"));
+  CPPUNIT_ASSERT(!model.hasProperty("aaa"));
 } // testHasProperty
 
 // ----------------------------------------------------------------------
@@ -47,9 +72,9 @@
 void
 pylith::friction::TestStaticFriction::testHasStateVar(void)
 { // testHasStateVar
-  StaticFriction material;
+  StaticFriction model;
 
-  CPPUNIT_ASSERT(!material.hasStateVar("aaa"));
+  CPPUNIT_ASSERT(!model.hasStateVar("aaa"));
 } // testHasStateVar
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh	2010-04-06 23:55:38 UTC (rev 16496)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh	2010-04-07 00:23:41 UTC (rev 16497)
@@ -37,6 +37,8 @@
   // CPPUNIT TEST SUITE /////////////////////////////////////////////////
   CPPUNIT_TEST_SUITE( TestStaticFriction );
 
+  CPPUNIT_TEST( testPropertiesMetadata );
+  CPPUNIT_TEST( testStateVarsMetadata );
   CPPUNIT_TEST( testDBToProperties );
   CPPUNIT_TEST( testNonDimProperties );
   CPPUNIT_TEST( testDimProperties );
@@ -56,6 +58,12 @@
   /// Setup testing data.
   void setUp(void);
 
+  /// Test properties metadata.
+  void testPropertiesMetadata(void);
+
+  /// Test state variable metadata.
+  void testStateVarsMetadata(void);
+
   /// Test hasProperty().
   void testHasProperty(void);
 



More information about the CIG-COMMITS mailing list