[cig-commits] r17034 - in short/3D/PyLith/trunk/unittests/libtests/friction: . data
surendra at geodynamics.org
surendra at geodynamics.org
Sat Jul 10 07:43:33 PDT 2010
Author: surendra
Date: 2010-07-10 07:43:32 -0700 (Sat, 10 Jul 2010)
New Revision: 17034
Added:
short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.cc
short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh
short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc
short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh
Modified:
short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am
Log:
Added unittests for time-weakening friction
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am 2010-07-10 14:15:47 UTC (rev 17033)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am 2010-07-10 14:43:32 UTC (rev 17034)
@@ -25,28 +25,32 @@
TestFrictionModel.cc \
TestStaticFriction.cc \
TestSlipWeakening.cc \
- TestRateStateAgeing.cc
+ TestRateStateAgeing.cc \
+ TestTimeWeakening.cc
noinst_HEADERS = \
TestFrictionModel.hh \
TestStaticFriction.hh \
TestSlipWeakening.hh \
- TestRateStateAgeing.hh
+ TestRateStateAgeing.hh \
+ TestTimeWeakening.hh
# Source files associated with testing data
testfriction_SOURCES += \
data/FrictionModelData.cc \
data/StaticFrictionData.cc \
data/SlipWeakeningData.cc \
- data/RateStateAgeingData.cc
+ data/RateStateAgeingData.cc \
+ data/TimeWeakeningData.cc
noinst_HEADERS += \
data/FrictionModelData.hh \
data/StaticFrictionData.hh \
data/SlipWeakeningData.hh \
- data/RateStateAgeingData.hh
+ data/RateStateAgeingData.hh \
+ data/TimeWeakeningData.hh
AM_CPPFLAGS = \
$(PYTHON_EGG_CPPFLAGS) -I$(PYTHON_INCDIR) \
Added: short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.cc (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.cc 2010-07-10 14:43:32 UTC (rev 17034)
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestTimeWeakening.hh" // Implementation of class methods
+
+#include "data/TimeWeakeningData.hh" // USES TimeWeakeningData
+
+#include "pylith/friction/TimeWeakening.hh" // USES TimeWeakening
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::friction::TestTimeWeakening );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::friction::TestTimeWeakening::setUp(void)
+{ // setUp
+ _friction = new TimeWeakening();
+ _data = new TimeWeakeningData();
+ setupNormalizer();
+} // setUp
+
+// ----------------------------------------------------------------------
+// Test properties metadata.
+void
+pylith::friction::TestTimeWeakening::testPropertiesMetadata(void)
+{ // testPropertiesMetadata
+ TimeWeakening model;
+
+ CPPUNIT_ASSERT_EQUAL(4, model._metadata.numDBProperties());
+ const char* const* names = model._metadata.dbProperties();
+ CPPUNIT_ASSERT_EQUAL(std::string("static-coefficient"),
+ std::string(names[0]));
+ CPPUNIT_ASSERT_EQUAL(std::string("dynamic-coefficient"),
+ std::string(names[1]));
+ CPPUNIT_ASSERT_EQUAL(std::string("time-weakening-parameter"),
+ std::string(names[2]));
+ CPPUNIT_ASSERT_EQUAL(std::string("cohesion"),
+ std::string(names[3]));
+} // testPropertiesMetadata
+
+// ----------------------------------------------------------------------
+// Test state variable metadata.
+void
+pylith::friction::TestTimeWeakening::testStateVarsMetadata(void)
+{ // testStateVarsMetadata
+ TimeWeakening model;
+
+ CPPUNIT_ASSERT_EQUAL(1, model._metadata.numDBStateVars());
+ const char* const* names = model._metadata.dbStateVars();
+ CPPUNIT_ASSERT_EQUAL(std::string("Elapsed-time"),
+ std::string(names[0]));
+} // testStateVarsMetadata
+
+// ----------------------------------------------------------------------
+// Test hasProperty().
+void
+pylith::friction::TestTimeWeakening::testHasProperty(void)
+{ // testHasProperty
+ TimeWeakening material;
+
+ CPPUNIT_ASSERT(material.hasProperty("static_coefficient"));
+ CPPUNIT_ASSERT(material.hasProperty("dynamic_coefficient"));
+ CPPUNIT_ASSERT(material.hasProperty("time_weakening_parameter"));
+ CPPUNIT_ASSERT(!material.hasProperty("aaa"));
+} // testHasProperty
+
+// ----------------------------------------------------------------------
+// Test hasStateVar().
+void
+pylith::friction::TestTimeWeakening::testHasStateVar(void)
+{ // testHasStateVar
+ TimeWeakening material;
+
+ CPPUNIT_ASSERT(material.hasStateVar("Elapsed_time"));
+ CPPUNIT_ASSERT(!material.hasStateVar("aaa"));
+} // testHasStateVar
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestTimeWeakening.hh 2010-07-10 14:43:32 UTC (rev 17034)
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/friction/TestTimeWeakening.hh
+ *
+ * @brief C++ TestTimeWeakening object
+ *
+ * C++ unit testing for TimeWeakening.
+ */
+
+#if !defined(pylith_friction_testelasticisotropic3d_hh)
+#define pylith_friction_testelasticisotropic3d_hh
+
+#include "TestFrictionModel.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace friction {
+ class TestTimeWeakening;
+ } // friction
+} // pylith
+
+/// C++ unit testing for TimeWeakening
+class pylith::friction::TestTimeWeakening : public TestFrictionModel
+{ // class TestTimeWeakening
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestTimeWeakening );
+
+ CPPUNIT_TEST( testPropertiesMetadata );
+ CPPUNIT_TEST( testStateVarsMetadata );
+ 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 properties metadata.
+ void testPropertiesMetadata(void);
+
+ /// Test state variable metadata.
+ void testStateVarsMetadata(void);
+
+ /// Test hasProperty().
+ void testHasProperty(void);
+
+ /// Test hasStateVar().
+ void testHasStateVar(void);
+
+}; // class TestTimeWeakening
+
+#endif // pylith_friction_testelasticisotropic3d_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.cc 2010-07-10 14:43:32 UTC (rev 17034)
@@ -0,0 +1,169 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "TimeWeakeningData.hh"
+
+const int pylith::friction::TimeWeakeningData::_numLocs = 2;
+
+const int pylith::friction::TimeWeakeningData::_numProperties = 4;
+
+const int pylith::friction::TimeWeakeningData::_numStateVars = 1;
+
+const int pylith::friction::TimeWeakeningData::_numDBProperties = 4;
+
+const int pylith::friction::TimeWeakeningData::_numDBStateVars = 1;
+
+const int pylith::friction::TimeWeakeningData::_numPropsVertex = 4;
+
+const int pylith::friction::TimeWeakeningData::_numVarsVertex = 1;
+
+const double pylith::friction::TimeWeakeningData::_lengthScale = 1.00000000e+03;
+
+const double pylith::friction::TimeWeakeningData::_timeScale = 1.00000000e+00;
+
+const double pylith::friction::TimeWeakeningData::_pressureScale = 2.25000000e+10;
+
+const double pylith::friction::TimeWeakeningData::_densityScale = 1.00000000e+03;
+
+const double pylith::friction::TimeWeakeningData::_dt = 0.01;
+
+const int pylith::friction::TimeWeakeningData::_numPropertyValues[] = {
+ 1,
+ 1,
+ 1,
+ 1,
+};
+
+const int pylith::friction::TimeWeakeningData::_numStateVarValues[] = {
+ 1,
+};
+
+const char* pylith::friction::TimeWeakeningData::_dbPropertyValues[] = {
+ "static-coefficient",
+ "dynamic-coefficient",
+ "time-weakeneing-parameter",
+ "cohesion",
+};
+
+const char* pylith::friction::TimeWeakeningData::_dbStateVarValues[] = {
+ "Elapsed-slip",
+};
+
+const double pylith::friction::TimeWeakeningData::_dbProperties[] = {
+ 0.6,
+ 0.5,
+ 0.8,
+ 1000000,
+ 0.6,
+ 0.5,
+ 0.4,
+ 1000000,
+};
+
+const double pylith::friction::TimeWeakeningData::_dbStateVars[] = {
+ 0.4,
+ 0.5,
+};
+
+const double pylith::friction::TimeWeakeningData::_properties[] = {
+ 0.6,
+ 0.5,
+ 0.8,
+ 1000000,
+ 0.6,
+ 0.5,
+ 0.4,
+ 1000000,
+};
+
+const double pylith::friction::TimeWeakeningData::_stateVars[] = {
+ 0.4,
+ 0.5,
+};
+
+const double pylith::friction::TimeWeakeningData::_propertiesNondim[] = {
+ 0.6,
+ 0.5,
+ 0.8,
+ 0.000044444444,
+ 0.6,
+ 0.5,
+ 0.4,
+ 0.000044444444,
+};
+
+const double pylith::friction::TimeWeakeningData::_stateVarsNondim[] = {
+ 0.4,
+ 0.5,
+};
+
+const double pylith::friction::TimeWeakeningData::_friction[] = {
+ 1000001.21,
+ 1000001.15,
+};
+
+const double pylith::friction::TimeWeakeningData::_slip[] = {
+ 0.12,
+ 0.25,
+};
+
+const double pylith::friction::TimeWeakeningData::_slipRate[] = {
+ 0.74,
+ 0.64,
+};
+
+const double pylith::friction::TimeWeakeningData::_normalTraction[] = {
+ -2.2,
+ -2.3,
+};
+
+const double pylith::friction::TimeWeakeningData::_stateVarsUpdated[] = {
+ 0.41,
+ 0.51,
+};
+
+pylith::friction::TimeWeakeningData::TimeWeakeningData(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);
+ dt = _dt;
+ 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::TimeWeakeningData::~TimeWeakeningData(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/TimeWeakeningData.hh 2010-07-10 14:43:32 UTC (rev 17034)
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_friction_timeweakeningdata_hh)
+#define pylith_friction_timeweakeningdata_hh
+
+#include "FrictionModelData.hh"
+
+namespace pylith {
+ namespace friction {
+ class TimeWeakeningData;
+ } // pylith
+} // friction
+
+class pylith::friction::TimeWeakeningData : public FrictionModelData
+{
+
+public:
+
+ /// Constructor
+ TimeWeakeningData(void);
+
+ /// Destructor
+ ~TimeWeakeningData(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 double _dt;
+
+ 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_timeweakeningdata_hh
+
+// End of file
More information about the CIG-COMMITS
mailing list