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

surendra at geodynamics.org surendra at geodynamics.org
Mon Jan 25 18:01:00 PST 2010


Author: surendra
Date: 2010-01-25 18:00:59 -0800 (Mon, 25 Jan 2010)
New Revision: 16180

Added:
   short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc
   short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh
Log:
Implemented SlipWeakening ( not compiling - 1 error) - forgot to add files last time

Added: short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.cc	2010-01-26 02:00:59 UTC (rev 16180)
@@ -0,0 +1,279 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "SlipWeakening.hh" // implementation of object methods
+
+#include "pylith/materials/Metadata.hh" // USES Metadata
+
+#include "pylith/utils/array.hh" // USES double_array
+#include "pylith/utils/constdefs.h" // USES MAXDOUBLE
+
+#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
+
+#include "petsc.h" // USES PetscLogFlops
+
+#include <cassert> // USES assert()
+#include <sstream> // USES std::ostringstream
+#include <stdexcept> // USES std::runtime_error
+
+// ----------------------------------------------------------------------
+namespace pylith {
+  namespace friction {
+    namespace _SlipWeakening {
+
+      // Number of physical properties.
+      const int numProperties = 3;
+
+      // Physical properties.
+      const pylith::materials::Metadata::ParamDescription properties[] = {
+	{ "static-coefficient", 1, pylith::topology::FieldBase::SCALAR },
+	{ "dynamic-coefficient", 2, pylith::topology::FieldBase::SCALAR },
+        { "slip-weakening-parameter", 3, pylith::topology::FieldBase::SCALAR },
+      };
+
+      // Number of State Variables.
+      const int numStateVars = 2;
+
+      // State Variables.
+      const pylith::materials::Metadata::ParamDescription stateVars[] = {
+	{ "cumulative-slip", 1, pylith::topology::FieldBase::SCALAR },
+	{ "previous-slip", 2, pylith::topology::FieldBase::SCALAR },
+      };
+
+      // Values expected in spatial database
+      const int numDBProperties = 3;
+      const char* dbProperties[] = { "static-coefficient"
+				     "dynamic-coefficient"
+				     "slip-weakening-parameter"
+ };      
+
+      const int numDBStateVars = 2;
+      const char* dbStateVars[] = { "cumulative-slip"
+				     "previous-slip"
+};      
+      
+    } // _SlipWeakening
+  } // friction
+} // pylith
+
+// Indices of physical properties
+const int pylith::friction::SlipWeakening::p_coef = 0;
+
+// Indices of database values (order must match dbProperties)
+const int pylith::friction::SlipWeakening::db_coef = 0;
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::friction::SlipWeakening::SlipWeakening(void) :
+  FrictionModel(materials::Metadata(_SlipWeakening::properties,
+				    _SlipWeakening::numProperties,
+				    _SlipWeakening::dbProperties,
+				    _SlipWeakening::numDBProperties,
+				    0, 0,
+				    0, 0))
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Destructor.
+pylith::friction::SlipWeakening::~SlipWeakening(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Compute properties from values in spatial database.
+void
+pylith::friction::SlipWeakening::_dbToProperties(
+					   double* const propValues,
+					   const double_array& dbValues) const
+{ // _dbToProperties
+  assert(0 != propValues);
+  const int numDBValues = dbValues.size();
+  assert(_SlipWeakening::numDBProperties == numDBValues);
+
+  const double db_static = dbValues[db_coef];
+  const double db_dynamic = dbValues[db_coef+1];
+  const double db_d0 = dbValues[db_coef+2];
+ 
+  if (db_static <= 0.0) {
+    std::ostringstream msg;
+    msg << "Spatial database returned nonpositive value for static coefficient "
+	<< "of friction.\n"
+	<< "static coefficient of friction: " << db_static << "\n";
+    throw std::runtime_error(msg.str());
+  } // if
+
+  if (db_dynamic <= 0.0) {
+    std::ostringstream msg;
+    msg << "Spatial database returned nonpositive value for dynamic coefficient "
+	<< "of friction.\n"
+	<< "dynamic coefficient of friction: " << db_dynamic << "\n";
+    throw std::runtime_error(msg.str());
+  } // if
+
+  if (db_d0 <= 0.0) {
+    std::ostringstream msg;
+    msg << "Spatial database returned nonpositive value for slip weakening parameter "
+	<< "of friction.\n"
+	<< "slip weakening parameter of friction: " << db_d0 << "\n";
+    throw std::runtime_error(msg.str());
+  } // if
+
+  propValues[p_coef] = db_static;
+  propValues[p_coef+1] = db_dynamic;
+  propValues[p_coef+2] = db_d0;
+} // _dbToProperties
+
+// ----------------------------------------------------------------------
+// Nondimensionalize properties.
+void
+pylith::friction::SlipWeakening::_nondimProperties(double* const values,
+						    const int nvalues) const
+{ // _nondimProperties
+  assert(0 != _normalizer);
+  assert(0 != values);
+
+  const double lengthScale = _normalizer->lengthScale();
+
+  values[nvalues-1] = values[nvalues-1] / lengthScale;
+
+  assert(nvalues == _SlipWeakening::numProperties);
+
+} // _nondimProperties
+
+// ----------------------------------------------------------------------
+// Dimensionalize properties.
+void
+pylith::friction::SlipWeakening::_dimProperties(double* const values,
+						      const int nvalues) const
+{ // _dimProperties
+  assert(0 != _normalizer);
+  assert(0 != values);
+
+  const double lengthScale = _normalizer->lengthScale();
+
+  values[nvalues-1] = values[nvalues-1] * lengthScale;
+
+  assert(nvalues == _SlipWeakening::numProperties);
+
+} // _dimProperties
+
+// ----------------------------------------------------------------------
+// Compute state variables from values in spatial database.
+void
+pylith::friction::SlipWeakening::_dbToStateVars(
+					   double* const stateValues,
+					   const double_array& dbValues) const
+{ // _dbToStateVars
+  assert(0 != stateValues);
+  const int numDBValues = dbValues.size();
+  assert(_SlipWeakening::numDBProperties == numDBValues);
+
+  const double cumulativeSlip = dbValues[db_coef+3];
+  const double previousSlip = dbValues[db_coef+4];
+ 
+  stateValues[0] = cumulativeSlip;
+  stateValues[1] = previousSlip;
+
+} // _dbToStateVars
+
+// ----------------------------------------------------------------------
+// Nondimensionalize state variables.
+void
+pylith::friction::SlipWeakening::_nondimStateVars(double* const values,
+						    const int nvalues) const
+{ // _nondimStateVars
+  assert(0 != _normalizer);
+  assert(0 != values);
+
+  const double lengthScale = _normalizer->lengthScale();
+
+  values[nvalues-1] = values[nvalues-1] / lengthScale;
+  values[nvalues-2] = values[nvalues-2] / lengthScale;
+
+  assert(nvalues == _SlipWeakening::numStateVars);
+
+} // _nondimStateVars
+
+// ----------------------------------------------------------------------
+// Dimensionalize state variables.
+void
+pylith::friction::SlipWeakening::_dimStateVars(double* const values,
+						      const int nvalues) const
+{ // _dimStateVars
+  assert(0 != _normalizer);
+  assert(0 != values);
+
+  const double lengthScale = _normalizer->lengthScale();
+
+  values[nvalues-1] = values[nvalues-1] * lengthScale;
+  values[nvalues-2] = values[nvalues-2] * lengthScale;
+
+  assert(nvalues == _SlipWeakening::numStateVars);
+
+} // _dimStateVars
+
+// ----------------------------------------------------------------------
+// Compute friction from properties and state variables.
+double
+pylith::friction::SlipWeakening::_calcFriction(const double slip,
+						const double slipRate,
+						const double normalTraction,
+						const double* properties,
+						const int numProperties,
+						const double* stateVars,
+						const int numStateVars)
+{ // _calcFriction
+  assert(0 != properties);
+  assert(_numPropsVertex == numProperties);
+  assert(0 != numStateVars);
+  assert(_numVarsVertex == numStateVars);
+
+  _updateStateVars(const_cast<double*>(&stateVars[0]),numStateVars,&properties[0],numProperties);
+
+  const double friction = (normalTraction < 0) ?
+    ((stateVars[0] < properties[p_coef+2]) ?
+     properties[p_coef]-(properties[p_coef]-properties[p_coef+1]) *
+     stateVars[0] / properties[p_coef+2] * normalTraction : 
+     properties[p_coef+1] * normalTraction) : 0.0;
+
+  //  PetscLogFlops(1);
+
+  return friction;
+} // _calcFriction
+
+// ----------------------------------------------------------------------
+// Update state variables (for next time step).
+void
+pylith::friction::SlipWeakening::_updateStateVars(double* const stateVars,
+						  const int numStateVars,
+						  const double* properties,
+						  const int numProperties)
+{ // _updateStateVars
+
+  assert(0 != numStateVars);
+  assert(0 != numProperties);
+
+  const double* previousSlip = &stateVars[1];
+  const double* cumulativeSlip = &stateVars[0];
+  
+  const double* tmpPreviousSlip = previousSlip;
+  
+  previousSlip = cumulativeSlip;
+  cumulativeSlip += fabs(slip - tmpPreviousSlip);
+    
+} // _updateStateVars
+
+
+// End of file 

Added: short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/libsrc/friction/SlipWeakening.hh	2010-01-26 02:00:59 UTC (rev 16180)
@@ -0,0 +1,145 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/** @file libsrc/friction/SlipWeakening.hh
+ *
+ * @brief C++ slip weakening fault constitutive model.
+ */
+
+#if !defined(pylith_friction_slipweakening_hh)
+#define pylith_friction_slipweakening_hh
+
+// Include directives ---------------------------------------------------
+#include "FrictionModel.hh" // ISA FrictionModel
+
+// SlipWeakening -------------------------------------------------------
+/** @brief C++ slip weakening fault constitutive model.
+ *
+ * Friction is equal to the product of a coefficient of friction (function
+ * of slip path length) and the normal traction.
+ */
+
+class pylith::friction::SlipWeakening : public FrictionModel
+{ // class SlipWeakening
+  friend class TestSlipWeakening; // unit testing
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Default constructor.
+  SlipWeakening(void);
+
+  /// Destructor.
+  ~SlipWeakening(void);
+
+  // PROTECTED METHODS //////////////////////////////////////////////////
+protected :
+
+  /// These methods should be implemented by every constitutive model.
+
+  /** Compute properties from values in spatial database.
+   *
+   * @param propValues Array of property values.
+   * @param dbValues Array of database values.
+   */
+  void _dbToProperties(double* const propValues,
+		       const double_array& dbValues) const;
+
+  /** Nondimensionalize properties.
+   *
+   * @param values Array of property values.
+   * @param nvalues Number of values.
+   */
+  void _nondimProperties(double* const values,
+			 const int nvalues) const;
+
+  /** Dimensionalize properties.
+   *
+   * @param values Array of property values.
+   * @param nvalues Number of values.
+   */
+  void _dimProperties(double* const values,
+		      const int nvalues) const;
+
+  /** Compute friction from properties and state variables.
+   *
+   * @param slip Current slip at location.
+   * @param slipRate Current slip rate at location.
+   * @param normalTraction Normal traction at location.
+   * @param properties Properties at location.
+   * @param numProperties Number of properties.
+   * @param stateVars State variables at location.
+   * @param numStateVars Number of state variables.
+   */
+  virtual
+  void _dbToStateVars(double* const stateValues,
+		      const double_array& dbValues) const;
+
+  /** Nondimensionalize state variables.
+   *
+   * @param values Array of initial state values.
+   * @param nvalues Number of values.
+   */
+  virtual
+  void _nondimStateVars(double* const values,
+			   const int nvalues) const;
+  
+  /** Dimensionalize state variables.
+   *
+   * @param values Array of initial state values.
+   * @param nvalues Number of values.
+   */
+  virtual
+  void _dimStateVars(double* const values,
+			const int nvalues) const;
+
+  /** Compute friction from properties and state variables.
+   *
+   * @param slip Current slip at location.
+   * @param slipRate Current slip rate at location.
+   * @param normalTraction Normal traction at location.
+   * @param properties Properties at location.
+   * @param numProperties Number of properties.
+   * @param stateVars State variables at location.
+   * @param numStateVars Number of state variables.
+   */
+  double _calcFriction(const double slip,
+		       const double slipRate,
+		       const double normalTraction,
+		       const double* properties,
+		       const int numProperties,
+		       const double* stateVars,
+		       const int numStateVars);
+  virtual
+  void _updateStateVars(double* const stateVars,
+			const int numStateVars,
+			const double* properties,
+			const int numProperties);
+
+  // PRIVATE MEMBERS ////////////////////////////////////////////////////
+private :
+
+  static const int p_coef;
+  static const int db_coef;
+
+  // NOT IMPLEMENTED ////////////////////////////////////////////////////
+private :
+
+  SlipWeakening(const SlipWeakening&); ///< Not implemented.
+  const SlipWeakening& operator=(const SlipWeakening&); ///< Not implemented
+
+}; // class SlipWeakening
+
+#endif // pylith_friction_slipweakening_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.cc	2010-01-26 02:00:59 UTC (rev 16180)
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestSlipWeakening.hh" // Implementation of class methods
+
+#include "data/SlipWeakeningData.hh" // USES SlipWeakeningData
+
+#include "pylith/friction/SlipWeakening.hh" // USES SlipWeakening
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::friction::TestSlipWeakening );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::friction::TestSlipWeakening::setUp(void)
+{ // setUp
+  _friction = new SlipWeakening();
+  _data = new SlipWeakeningData();
+  setupNormalizer();
+} // setUp
+
+// ----------------------------------------------------------------------
+// Test hasProperty().
+void
+pylith::friction::TestSlipWeakening::testHasProperty(void)
+{ // testHasProperty
+  SlipWeakening material;
+
+  CPPUNIT_ASSERT(material.hasProperty("static-coefficient"));
+  CPPUNIT_ASSERT(material.hasProperty("dynamic-coefficient"));
+  CPPUNIT_ASSERT(material.hasProperty("slip-weakening-parameter"));
+  CPPUNIT_ASSERT(!material.hasProperty("aaa"));
+} // testHasProperty
+
+// ----------------------------------------------------------------------
+// Test hasStateVar().
+void
+pylith::friction::TestSlipWeakening::testHasStateVar(void)
+{ // testHasStateVar
+  SlipWeakening material;
+
+  CPPUNIT_ASSERT(!material.hasStateVar("aaa"));
+} // testHasStateVar
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestSlipWeakening.hh	2010-01-26 02:00:59 UTC (rev 16180)
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/friction/TestSlipWeakening.hh
+ *
+ * @brief C++ TestSlipWeakening object
+ *
+ * C++ unit testing for SlipWeakening.
+ */
+
+#if !defined(pylith_friction_testelasticisotropic3d_hh)
+#define pylith_friction_testelasticisotropic3d_hh
+
+#include "TestFrictionModel.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace friction {
+    class TestSlipWeakening;
+  } // friction
+} // pylith
+
+/// C++ unit testing for SlipWeakening
+class pylith::friction::TestSlipWeakening : public TestFrictionModel
+{ // class TestSlipWeakening
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestSlipWeakening );
+
+  CPPUNIT_TEST( testDBToProperties );
+  CPPUNIT_TEST( testNonDimProperties );
+  CPPUNIT_TEST( testDimProperties );
+  CPPUNIT_TEST( testDBToStateVars );
+  CPPUNIT_TEST( testNonDimStateVars );
+  CPPUNIT_TEST( testDimStateVars );
+  CPPUNIT_TEST( testHasProperty );
+  CPPUNIT_TEST( testHasStateVar );
+  CPPUNIT_TEST( test_calcFriction );
+  CPPUNIT_TEST( test_updateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Test hasProperty().
+  void testHasProperty(void);
+
+  /// Test hasStateVar().
+  void testHasStateVar(void);
+
+}; // class TestSlipWeakening
+
+#endif // pylith_friction_testelasticisotropic3d_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.cc	2010-01-26 02:00:59 UTC (rev 16180)
@@ -0,0 +1,136 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "SlipWeakeningData.hh"
+
+const int pylith::friction::SlipWeakeningData::_numLocs = 2;
+
+const int pylith::friction::SlipWeakeningData::_numProperties = 3;
+
+const int pylith::friction::SlipWeakeningData::_numStateVars = 0;
+
+const int pylith::friction::SlipWeakeningData::_numDBProperties = 3;
+
+const int pylith::friction::SlipWeakeningData::_numDBStateVars = 0;
+
+const int pylith::friction::SlipWeakeningData::_numPropsVertex = 3;
+
+const int pylith::friction::SlipWeakeningData::_numVarsVertex = 0;
+
+const double pylith::friction::SlipWeakeningData::_lengthScale =   1.00000000e+03;
+
+const double pylith::friction::SlipWeakeningData::_timeScale =   1.00000000e+00;
+
+const double pylith::friction::SlipWeakeningData::_pressureScale =   2.25000000e+10;
+
+const double pylith::friction::SlipWeakeningData::_densityScale =   1.00000000e+03;
+
+const int pylith::friction::SlipWeakeningData::_numPropertyValues[] = {
+1,
+};
+
+const int* pylith::friction::SlipWeakeningData::_numStateVarValues = 0;
+
+const char* pylith::friction::SlipWeakeningData::_dbPropertyValues[] = {
+"static-coefficient",
+"dynamic-coefficient",
+"slip-weakeneing-parameter",
+};
+
+const char** pylith::friction::SlipWeakeningData::_dbStateVarValues = 0;
+
+const double pylith::friction::SlipWeakeningData::_dbProperties[] = {
+  0.6,
+  0.6,
+  0.8,
+  0.8,
+  0.7,
+  0.7,
+};
+
+const double* pylith::friction::SlipWeakeningData::_dbStateVars = 0;
+
+const double pylith::friction::SlipWeakeningData::_properties[] = {
+  0.6,
+  0.6,
+  0.6,
+  0.6,
+  0.6,
+  0.6,
+};
+
+const double* pylith::friction::SlipWeakeningData::_stateVars = 0;
+
+const double pylith::friction::SlipWeakeningData::_propertiesNondim[] = {
+   0.6,
+   0.6,
+};
+
+const double* pylith::friction::SlipWeakeningData::_stateVarsNondim = 0;
+
+const double pylith::friction::SlipWeakeningData::_friction[] = {
+  1.32,
+   0.0,
+};
+
+const double pylith::friction::SlipWeakeningData::_slip[] = {
+  0.12,
+  0.25,
+};
+
+const double pylith::friction::SlipWeakeningData::_slipRate[] = {
+  0.74,
+  0.64,
+};
+
+const double pylith::friction::SlipWeakeningData::_normalTraction[] = {
+  -2.2,
+  0.8,
+};
+
+const double* pylith::friction::SlipWeakeningData::_stateVarsUpdated = 0;
+
+pylith::friction::SlipWeakeningData::SlipWeakeningData(void)
+{ // constructor
+  numLocs = _numLocs;
+  numProperties = _numProperties;
+  numStateVars = _numStateVars;
+  numDBProperties = _numDBProperties;
+  numDBStateVars = _numDBStateVars;
+  numPropsVertex = _numPropsVertex;
+  numVarsVertex = _numVarsVertex;
+  lengthScale = _lengthScale;
+  timeScale = _timeScale;
+  pressureScale = _pressureScale;
+  densityScale = _densityScale;
+  numPropertyValues = const_cast<int*>(_numPropertyValues);
+  numStateVarValues = const_cast<int*>(_numStateVarValues);
+  dbPropertyValues = const_cast<char**>(_dbPropertyValues);
+  dbStateVarValues = const_cast<char**>(_dbStateVarValues);
+  dbProperties = const_cast<double*>(_dbProperties);
+  dbStateVars = const_cast<double*>(_dbStateVars);
+  properties = const_cast<double*>(_properties);
+  stateVars = const_cast<double*>(_stateVars);
+  propertiesNondim = const_cast<double*>(_propertiesNondim);
+  stateVarsNondim = const_cast<double*>(_stateVarsNondim);
+  friction = const_cast<double*>(_friction);
+  slip = const_cast<double*>(_slip);
+  slipRate = const_cast<double*>(_slipRate);
+  normalTraction = const_cast<double*>(_normalTraction);
+  stateVarsUpdated = const_cast<double*>(_stateVarsUpdated);
+} // constructor
+
+pylith::friction::SlipWeakeningData::~SlipWeakeningData(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/SlipWeakeningData.hh	2010-01-26 02:00:59 UTC (rev 16180)
@@ -0,0 +1,93 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_friction_slipweakeningdata_hh)
+#define pylith_friction_slipweakeningdata_hh
+
+#include "FrictionModelData.hh"
+
+namespace pylith {
+  namespace friction {
+     class SlipWeakeningData;
+  } // pylith
+} // friction
+
+class pylith::friction::SlipWeakeningData : public FrictionModelData
+{
+
+public: 
+
+  /// Constructor
+  SlipWeakeningData(void);
+
+  /// Destructor
+  ~SlipWeakeningData(void);
+
+private:
+
+  static const int _numLocs;
+
+  static const int _numProperties;
+
+  static const int _numStateVars;
+
+  static const int _numDBProperties;
+
+  static const int _numDBStateVars;
+
+  static const int _numPropsVertex;
+
+  static const int _numVarsVertex;
+
+  static const double _lengthScale;
+
+  static const double _timeScale;
+
+  static const double _pressureScale;
+
+  static const double _densityScale;
+
+  static const int _numPropertyValues[];
+
+  static const int* _numStateVarValues;
+
+  static const char* _dbPropertyValues[];
+
+  static const char** _dbStateVarValues;
+
+  static const double _dbProperties[];
+
+  static const double* _dbStateVars;
+
+  static const double _properties[];
+
+  static const double* _stateVars;
+
+  static const double _propertiesNondim[];
+
+  static const double* _stateVarsNondim;
+
+  static const double _friction[];
+
+  static const double _slip[];
+
+  static const double _slipRate[];
+
+  static const double _normalTraction[];
+
+  static const double* _stateVarsUpdated;
+
+};
+
+#endif // pylith_friction_slipweakeningdata_hh
+
+// End of file



More information about the CIG-COMMITS mailing list