[cig-commits] r16164 - in short/3D/PyLith/trunk: libsrc/friction unittests/libtests/friction unittests/libtests/friction/data unittests/libtests/materials/data
brad at geodynamics.org
brad at geodynamics.org
Fri Jan 22 16:30:52 PST 2010
Author: brad
Date: 2010-01-22 16:30:50 -0800 (Fri, 22 Jan 2010)
New Revision: 16164
Added:
short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc
short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh
Removed:
short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.cc
short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.hh
Modified:
short/3D/PyLith/trunk/libsrc/friction/Makefile.am
short/3D/PyLith/trunk/libsrc/friction/StaticFriction.cc
short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am
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/data/FrictionModelData.cc
short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.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/materials/data/MaterialData.cc
Log:
Finished setting up unit tests for StaticFriction.
Modified: short/3D/PyLith/trunk/libsrc/friction/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/Makefile.am 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/libsrc/friction/Makefile.am 2010-01-23 00:30:50 UTC (rev 16164)
@@ -15,6 +15,7 @@
subpkginclude_HEADERS = \
FrictionModel.hh \
+ FrictionModel.icc \
StaticFriction.hh \
frictionfwd.hh
Modified: short/3D/PyLith/trunk/libsrc/friction/StaticFriction.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/StaticFriction.cc 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/libsrc/friction/StaticFriction.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -37,7 +37,7 @@
// Physical properties.
const pylith::materials::Metadata::ParamDescription properties[] = {
- { "friction-coefficient", 1, pylith::topology::FieldBase::SCALAR },
+ { "friction_coefficient", 1, pylith::topology::FieldBase::SCALAR },
};
// Values expected in spatial database
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/Makefile.am 2010-01-23 00:30:50 UTC (rev 16164)
@@ -21,29 +21,25 @@
# Primary source files
testfriction_SOURCES = \
- test_friction.cc
+ test_friction.cc \
+ TestFrictionModel.cc \
+ TestStaticFriction.cc
-# TestFrictionModel.cc \
-# TestStaticFriction.cc
-
noinst_HEADERS =
+ TestFrictionModel.hh \
+ TestStaticFriction.hh
-# TestFrictionModel.hh \
-# TestStaticFriction.hh
-
# Source files associated with testing data
-testfriction_SOURCES +=
+testfriction_SOURCES += \
+ data/FrictionModelData.cc \
+ data/StaticFrictionData.cc
-# data/FrictionModelData.cc \
-# data/StaticFrictionData.cc
+noinst_HEADERS += \
+ data/FrictionModelData.hh \
+ data/StaticFrictionData.hh
-noinst_HEADERS +=
-
-# data/FrictionModelData.hh \
-# data/StaticFrictionData.hh
-
AM_CPPFLAGS = \
$(PYTHON_EGG_CPPFLAGS) -I$(PYTHON_INCDIR) \
$(PETSC_SIEVE_FLAGS) $(PETSC_INCLUDE)
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -12,18 +12,16 @@
#include <portinfo>
-#include "TestElasticMaterial.hh" // Implementation of class methods
+#include "TestFrictionModel.hh" // Implementation of class methods
-#include "data/ElasticMaterialData.hh" // USES ElasticMaterialData
-#include "data/ElasticStrain1DData.hh" // USES ElasticStrain1DData
+#include "data/StaticFrictionData.hh" // USES StaticFrictionData
-#include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
#include "pylith/meshio/MeshIOAscii.hh" // USES MeshIOAscii
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
+#include "pylith/friction/StaticFriction.hh" // USES StaticFriction
#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
#include "pylith/utils/array.hh" // USES double_array
@@ -37,584 +35,493 @@
//#define PRECOMPUTE_GEOMETRY
// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::materials::TestElasticMaterial );
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::friction::TestFrictionModel );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
+typedef pylith::topology::Mesh::SieveSubMesh SieveSubMesh;
typedef pylith::topology::Mesh::RealSection RealSection;
// ----------------------------------------------------------------------
-// Test dbInitialStress()
+// Test label()
void
-pylith::materials::TestElasticMaterial::testDBInitialStress(void)
-{ // testDBInitialStress
+pylith::friction::TestFrictionModel::testLabel(void)
+{ // testLabel
+ const std::string& label = "the database";
+ StaticFriction friction;
+ friction.label(label.c_str());
+
+ CPPUNIT_ASSERT_EQUAL(label, std::string(friction.label()));
+} // testLabel
+
+// ----------------------------------------------------------------------
+// Test timestep()
+void
+pylith::friction::TestFrictionModel::testTimeStep(void)
+{ // testTimeStep
+ const double dt = 2.0;
+ StaticFriction friction;
+ friction.timeStep(dt);
+
+ CPPUNIT_ASSERT_EQUAL(dt, friction.timeStep());
+} // testTimeStep
+
+// ----------------------------------------------------------------------
+// Test dbProperties()
+void
+pylith::friction::TestFrictionModel::testDBProperties(void)
+{ // testDBProperties
const std::string& label = "my_database";
spatialdata::spatialdb::SimpleDB db;
db.label(label.c_str());
- ElasticIsotropic3D material;
- material.dbInitialStress(&db);
+ StaticFriction friction;
+ friction.dbProperties(&db);
- CPPUNIT_ASSERT(0 != material._dbInitialStress);
- CPPUNIT_ASSERT_EQUAL(label, std::string(material._dbInitialStress->label()));
-} // testDBInitialStress
+ CPPUNIT_ASSERT(0 != friction._dbProperties);
+ CPPUNIT_ASSERT_EQUAL(label, std::string(friction._dbProperties->label()));
+} // testDBProperties
// ----------------------------------------------------------------------
-// Test dbInitialStrain()
+// Test dbStateVars()
void
-pylith::materials::TestElasticMaterial::testDBInitialStrain(void)
-{ // testDBInitialStrain
+pylith::friction::TestFrictionModel::testDBStateVars(void)
+{ // testDBStateVars
const std::string& label = "my_database";
spatialdata::spatialdb::SimpleDB db;
db.label(label.c_str());
- ElasticIsotropic3D material;
- material.dbInitialStrain(&db);
+ StaticFriction friction;
+ friction.dbInitialState(&db);
- CPPUNIT_ASSERT(0 != material._dbInitialStrain);
- CPPUNIT_ASSERT_EQUAL(label, std::string(material._dbInitialStrain->label()));
-} // testDBInitialStrain
+ CPPUNIT_ASSERT(0 != friction._dbInitialState);
+ CPPUNIT_ASSERT_EQUAL(label, std::string(friction._dbInitialState->label()));
+} // testDBStateVars
// ----------------------------------------------------------------------
+// Test normalizer()
+void
+pylith::friction::TestFrictionModel::testNormalizer(void)
+{ // testNormalizer
+ spatialdata::units::Nondimensional normalizer;
+ const double lengthScale = 2.0;
+ normalizer.lengthScale(lengthScale);
+
+ StaticFriction friction;
+ friction.normalizer(normalizer);
+
+ CPPUNIT_ASSERT(0 != friction._normalizer);
+ CPPUNIT_ASSERT_EQUAL(lengthScale, friction._normalizer->lengthScale());
+} // testNormalizer
+
+// ----------------------------------------------------------------------
// Test initialize()
void
-pylith::materials::TestElasticMaterial::testInitialize(void)
+pylith::friction::TestFrictionModel::testInitialize(void)
{ // testInitialize
topology::Mesh mesh;
- ElasticStrain1D material;
- ElasticStrain1DData data;
- _initialize(&mesh, &material, &data);
+ StaticFriction friction;
+ StaticFrictionData data;
+ _initialize(&mesh, &friction, &data);
- // Get cells associated with material
- const int materialId = 24;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- assert(!sieveMesh.isNull());
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->getLabelStratum("material-id", materialId);
- SieveMesh::point_type cell = *cells->begin();
+#if 1
+ CPPUNIT_ASSERT(false);
+#else
+ // :TODO: ADD STUFF HERE
+ // Test propertiesVertex with mesh
- const double tolerance = 1.0e-06;
- const int tensorSize = material._tensorSize;
- const int numQuadPts = data.numLocs;
-
- // Test initialStress field
- CPPUNIT_ASSERT(0 != material._initialFields);
- const ALE::Obj<RealSection>& stressSection =
- material._initialFields->get("initial stress").section();
- CPPUNIT_ASSERT(!stressSection.isNull());
- int fiberDim = numQuadPts * tensorSize;
- CPPUNIT_ASSERT_EQUAL(fiberDim, stressSection->getFiberDimension(cell));
- const double* initialStress = stressSection->restrictPoint(cell);
- CPPUNIT_ASSERT(0 != initialStress);
- const double* initialStressE = data.initialStress;
- CPPUNIT_ASSERT(0 != initialStressE);
- for (int i=0; i < fiberDim; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, initialStress[i]/initialStressE[i],
- tolerance);
-
- // Test initialStrain field
- CPPUNIT_ASSERT(0 != material._initialFields);
- const ALE::Obj<RealSection>& strainSection =
- material._initialFields->get("initial strain").section();
- CPPUNIT_ASSERT(!strainSection.isNull());
- fiberDim = numQuadPts * tensorSize;
- CPPUNIT_ASSERT_EQUAL(fiberDim, strainSection->getFiberDimension(cell));
- const double* initialStrain = strainSection->restrictPoint(cell);
- CPPUNIT_ASSERT(0 != initialStrain);
- const double* initialStrainE = data.initialStrain;
- CPPUNIT_ASSERT(0 != initialStrainE);
- for (int i=0; i < fiberDim; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, initialStrain[i]/initialStrainE[i],
- tolerance);
-
// Test cell arrays
- size_t size = data.numLocs*data.numPropsQuadPt;
- CPPUNIT_ASSERT_EQUAL(size, material._propertiesCell.size());
+ size_t size = data.numLocs*data.numPropsVertex;
+ CPPUNIT_ASSERT_EQUAL(size, friction._propertiesVertex.size());
- size = data.numLocs*data.numVarsQuadPt;
- CPPUNIT_ASSERT_EQUAL(size, material._stateVarsCell.size());
+ size = data.numLocs*data.numVarsVertex;
+ CPPUNIT_ASSERT_EQUAL(size, friction._stateVarsVertex.size());
- size = data.numLocs*tensorSize;
- CPPUNIT_ASSERT_EQUAL(size, material._initialStressCell.size());
-
- size = data.numLocs*tensorSize;
- CPPUNIT_ASSERT_EQUAL(size, material._initialStrainCell.size());
-
size = data.numLocs;
- CPPUNIT_ASSERT_EQUAL(size, material._densityCell.size());
-
- size = data.numLocs*tensorSize;
- CPPUNIT_ASSERT_EQUAL(size, material._stressCell.size());
-
- int numElasticConsts = 0;
- switch (data.dimension)
- { // switch
- case 1 :
- numElasticConsts = 1;
- break;
- case 2 :
- numElasticConsts = 6;
- break;
- case 3 :
- numElasticConsts = 21;
- break;
- default :
- assert(0);
- } // switch
- size = data.numLocs*numElasticConsts;
- CPPUNIT_ASSERT_EQUAL(size, material._elasticConstsCell.size());
+ CPPUNIT_ASSERT_EQUAL(size, material._frictionVertex.size());
+#endif
} // testInitialize
// ----------------------------------------------------------------------
// Test retrievePropsAndVars().
void
-pylith::materials::TestElasticMaterial::testRetrievePropsAndVars(void)
+pylith::friction::TestFrictionModel::testRetrievePropsAndVars(void)
{ // testRetrievePropsAndVars
topology::Mesh mesh;
- ElasticStrain1D material;
- ElasticStrain1DData data;
- _initialize(&mesh, &material, &data);
+ StaticFriction friction;
+ StaticFrictionData data;
+ _initialize(&mesh, &friction, &data);
- // Get cells associated with material
- const int materialId = 24;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- assert(!sieveMesh.isNull());
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->getLabelStratum("material-id", materialId);
- SieveMesh::point_type cell = *cells->begin();
+#if 1
+ CPPUNIT_ASSERT(false);
+#else
+ // ADD STUFF HERE
- material.retrievePropsAndVars(cell);
+ friction.retrievePropsAndVars(vertex);
const double tolerance = 1.0e-06;
- const int tensorSize = material._tensorSize;
- const int numQuadPts = data.numLocs;
- const int numVarsQuadPt = data.numVarsQuadPt;
+ const int numVarsVertex = data.numVarsVertex;
- // Test cell arrays
+ // Test vertex arrays
const double* propertiesE = data.properties;
CPPUNIT_ASSERT(0 != propertiesE);
const double_array& properties = material._propertiesCell;
- size_t size = data.numLocs*data.numPropsQuadPt;
+ size_t size = data.numLocs*data.numPropsVertex;
CPPUNIT_ASSERT_EQUAL(size, properties.size());
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, properties[i]/propertiesE[i],
tolerance);
const double* stateVarsE = data.stateVars;
- CPPUNIT_ASSERT( (0 < numVarsQuadPt && 0 != stateVarsE) ||
- (0 == numVarsQuadPt && 0 == stateVarsE) );
+ CPPUNIT_ASSERT( (0 < numVarsVertex && 0 != stateVarsE) ||
+ (0 == numVarsVertex && 0 == stateVarsE) );
const double_array& stateVars = material._stateVarsCell;
- size = data.numLocs*numVarsQuadPt;
+ size = data.numLocs*numVarsVertex;
CPPUNIT_ASSERT_EQUAL(size, stateVars.size());
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, stateVars[i]/stateVarsE[i],
tolerance);
-
- const double* initialStressE = data.initialStress;
- CPPUNIT_ASSERT(0 != initialStressE);
- const double_array& initialStress = material._initialStressCell;
- size = data.numLocs*tensorSize;
- CPPUNIT_ASSERT_EQUAL(size, initialStress.size());
- for (size_t i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, initialStress[i]/initialStressE[i],
- tolerance);
-
- const double* initialStrainE = data.initialStrain;
- CPPUNIT_ASSERT(0 != initialStrainE);
- const double_array& initialStrain = material._initialStrainCell;
- size = data.numLocs*tensorSize;
- CPPUNIT_ASSERT_EQUAL(size, initialStrain.size());
- for (size_t i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, initialStrain[i]/initialStrainE[i],
- tolerance);
+#endif
} // testRetrievePropsAndVars
// ----------------------------------------------------------------------
-// Test calcDensity()
+// Test calcFriction()
void
-pylith::materials::TestElasticMaterial::testCalcDensity(void)
-{ // testCalcDensity
+pylith::friction::TestFrictionModel::testCalcFriction(void)
+{ // testCalcFriction
topology::Mesh mesh;
- ElasticStrain1D material;
- ElasticStrain1DData data;
- _initialize(&mesh, &material, &data);
+ StaticFriction friction;
+ StaticFrictionData data;
+ _initialize(&mesh, &friction, &data);
- // Get cells associated with material
- const int materialId = 24;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- assert(!sieveMesh.isNull());
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->getLabelStratum("material-id", materialId);
- SieveMesh::point_type cell = *cells->begin();
+#if 1
+ CPPUNIT_ASSERT(false);
+#else
- material.retrievePropsAndVars(cell);
- const double_array& density = material.calcDensity();
+ friction.retrievePropsAndVars(vertex);
+ const double_array& friction = friction.calcFriction();
- const int tensorSize = material._tensorSize;
- const int numQuadPts = data.numLocs;
-
- const double* densityE = data.density;
- CPPUNIT_ASSERT(0 != densityE);
- const size_t size = numQuadPts;
+ const double* densityE = data.friction;
+ CPPUNIT_ASSERT(0 != frictionE);
+ const size_t size = numVertexs;
CPPUNIT_ASSERT_EQUAL(size, density.size());
const double tolerance = 1.0e-06;
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, density[i]/densityE[i], tolerance);
-} // testCalcDensity
+#endif
+} // testCalcFriction
// ----------------------------------------------------------------------
-// Test calcStress()
-void
-pylith::materials::TestElasticMaterial::testCalcStress(void)
-{ // testCalcStress
- topology::Mesh mesh;
- ElasticStrain1D material;
- ElasticStrain1DData data;
- _initialize(&mesh, &material, &data);
-
- // Get cells associated with material
- const int materialId = 24;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- assert(!sieveMesh.isNull());
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->getLabelStratum("material-id", materialId);
- SieveMesh::point_type cell = *cells->begin();
-
- const int tensorSize = material._tensorSize;
- const int numQuadPts = data.numLocs;
-
- // Setup total strain
- double_array strain(data.strain, numQuadPts*tensorSize);
-
- material.retrievePropsAndVars(cell);
- const double_array& stress = material.calcStress(strain);
-
- const double* stressE = data.stress;
- CPPUNIT_ASSERT(0 != stressE);
- const size_t size = numQuadPts * tensorSize;
- CPPUNIT_ASSERT_EQUAL(size, stress.size());
- const double tolerance = 1.0e-06;
- for (size_t i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, stress[i]/stressE[i], tolerance);
-} // testCalcStress
-
-// ----------------------------------------------------------------------
-// Test calcDerivElastic()
-void
-pylith::materials::TestElasticMaterial::testCalcDerivElastic(void)
-{ // testCalcDerivElastic
- topology::Mesh mesh;
- ElasticStrain1D material;
- ElasticStrain1DData data;
- _initialize(&mesh, &material, &data);
-
- // Get cells associated with material
- const int materialId = 24;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- assert(!sieveMesh.isNull());
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->getLabelStratum("material-id", materialId);
- SieveMesh::point_type cell = *cells->begin();
-
- const int tensorSize = material._tensorSize;
- const int numQuadPts = data.numLocs;
-
- // Setup total strain
- double_array strain(data.strain, numQuadPts*tensorSize);
-
- material.retrievePropsAndVars(cell);
- const double_array& elasticConsts = material.calcDerivElastic(strain);
-
- int numElasticConsts = 0;
- switch (data.dimension)
- { // switch
- case 1 :
- numElasticConsts = 1;
- break;
- case 2 :
- numElasticConsts = 6;
- break;
- case 3 :
- numElasticConsts = 21;
- break;
- default :
- assert(0);
- } // switch
-
- const double* elasticConstsE = data.elasticConsts;
- CPPUNIT_ASSERT(0 != elasticConstsE);
- const size_t size = numQuadPts * numElasticConsts;
- CPPUNIT_ASSERT_EQUAL(size, elasticConsts.size());
- const double tolerance = 1.0e-06;
- for (size_t i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, elasticConsts[i]/elasticConstsE[i],
- tolerance);
-} // testCalcDerivElastic
-
-// ----------------------------------------------------------------------
// Test updateStateVars()
void
-pylith::materials::TestElasticMaterial::testUpdateStateVars(void)
+pylith::friction::TestFrictionModel::testUpdateStateVars(void)
{ // testUpdateStateVars
std::cout << "\n\nWARNING!! WARNING!! WARNING!!\n"
"Need to implement using material with state variables.\n\n";
} // testUpdateStateVars
// ----------------------------------------------------------------------
-// Test calcStableTimeStepImplicit()
-void
-pylith::materials::TestElasticMaterial::testStableTimeStepImplicit(void)
-{ // testStableTimeStepImplicit
- topology::Mesh mesh;
- ElasticStrain1D material;
- ElasticStrain1DData data;
- _initialize(&mesh, &material, &data);
-
- // Get cells associated with material
- const int materialId = 24;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- assert(!sieveMesh.isNull());
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->getLabelStratum("material-id", materialId);
- SieveMesh::point_type cell = *cells->begin();
-
- material.retrievePropsAndVars(cell);
- const double dt = material.stableTimeStepImplicit(mesh);
-
- const double tolerance = 1.0e-06;
- const double dtE = data.dtStableImplicit;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dt/dtE, tolerance);
-} // testStableTimeStepImplicit
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
-pylith::materials::TestElasticMaterial::setUp(void)
+pylith::friction::TestFrictionModel::setUp(void)
{ // setUp
- TestMaterial::setUp();
- _matElastic = 0;
- _dataElastic = 0;
+ _friction = 0;
+ _data = 0;
} // setUp
// ----------------------------------------------------------------------
// Tear down testing data.
void
-pylith::materials::TestElasticMaterial::tearDown(void)
+pylith::friction::TestFrictionModel::tearDown(void)
{ // tearDown
- TestMaterial::tearDown();
- delete _matElastic; _matElastic = 0;
- delete _dataElastic; _dataElastic = 0;
+ delete _friction; _friction = 0;
+ delete _data; _data = 0;
} // tearDown
// ----------------------------------------------------------------------
-// Test _calcDensity()
+// Test _dbToProperties().
void
-pylith::materials::TestElasticMaterial::test_calcDensity(void)
-{ // _testCalcDensity
- CPPUNIT_ASSERT(0 != _matElastic);
- CPPUNIT_ASSERT(0 != _dataElastic);
- const ElasticMaterialData* data = _dataElastic;
-
- const int numLocs = data->numLocs;
- const int numPropsQuadPt = data->numPropsQuadPt;
- const int numVarsQuadPt = data->numVarsQuadPt;
+pylith::friction::TestFrictionModel::testDBToProperties(void)
+{ // testDBToProperties
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
- double density = 0;
- double_array properties(numPropsQuadPt);
- double_array stateVars(numVarsQuadPt);
+ const int numLocs = _data->numLocs;
+ const int numDBProperties = _data->numDBProperties;
+ double_array dbValues(numDBProperties);
+ const int propertiesSize = _data->numPropsVertex;
+ double_array properties(propertiesSize);
+
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
- memcpy(&properties[0], &data->properties[iLoc*numPropsQuadPt],
- numPropsQuadPt*sizeof(double));
- memcpy(&stateVars[0], &data->stateVars[iLoc*numVarsQuadPt],
- numVarsQuadPt*sizeof(double));
+ for (int i=0; i < numDBProperties; ++i)
+ dbValues[i] = _data->dbProperties[iLoc*numDBProperties+i];
- _matElastic->_calcDensity(&density,
- &properties[0], properties.size(),
- &stateVars[0], stateVars.size());
+ _friction->_dbToProperties(&properties[0], dbValues);
- const double densityE = data->density[iLoc];
-
+ const double* const propertiesE = &_data->properties[iLoc*propertiesSize];
const double tolerance = 1.0e-06;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, density/densityE, tolerance);
+ for (int i=0; i < propertiesSize; ++i) {
+ if (fabs(propertiesE[i]) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0,
+ properties[i]/propertiesE[i],
+ tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(propertiesE[i], properties[i],
+ tolerance);
+ } // for
} // for
-} // _testCalcDensity
+} // testDBToProperties
// ----------------------------------------------------------------------
-// Test _calcStress()
+// Test _nondimProperties().
void
-pylith::materials::TestElasticMaterial::test_calcStress(void)
-{ // _testCalcStress
- CPPUNIT_ASSERT(0 != _matElastic);
- CPPUNIT_ASSERT(0 != _dataElastic);
- const ElasticMaterialData* data = _dataElastic;
+pylith::friction::TestFrictionModel::testNonDimProperties(void)
+{ // testNonDimProperties
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
+
+ const int numLocs = _data->numLocs;
+ const int propertiesSize = _data->numPropsVertex;
+ double_array propertiesNondim(propertiesSize);
+ double_array properties(propertiesSize);
- const bool computeStateVars = true;
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ for (int i=0; i < propertiesSize; ++i)
+ properties[i] = _data->properties[iLoc*propertiesSize+i];
+ _friction->_nondimProperties(&properties[0], properties.size());
+
+ const double* const propertiesNondimE =
+ &_data->propertiesNondim[iLoc*propertiesSize];
+ CPPUNIT_ASSERT(0 != propertiesNondimE);
- const int numLocs = data->numLocs;
- const int numPropsQuadPt = data->numPropsQuadPt;
- const int numVarsQuadPt = data->numVarsQuadPt;
- const int tensorSize = _matElastic->_tensorSize;
+ const double tolerance = 1.0e-06;
+ for (int i=0; i < propertiesSize; ++i) {
+ if (fabs(propertiesNondimE[i]) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0,
+ properties[i]/propertiesNondimE[i],
+ tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(propertiesNondimE[i], properties[i],
+ tolerance);
+ } // for
+ } // for
+} // testNonDimProperties
+
+// ----------------------------------------------------------------------
+// Test _dimProperties().
+void
+pylith::friction::TestFrictionModel::testDimProperties(void)
+{ // testDimProperties
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
- double_array stress(tensorSize);
- double_array properties(numPropsQuadPt);
- double_array stateVars(numVarsQuadPt);
- double_array strain(tensorSize);
- double_array initialStress(tensorSize);
- double_array initialStrain(tensorSize);
+ const int numLocs = _data->numLocs;
+ const int propertiesSize = _data->numPropsVertex;
+ double_array properties(propertiesSize);
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
- memcpy(&properties[0], &data->properties[iLoc*numPropsQuadPt],
- properties.size()*sizeof(double));
- memcpy(&stateVars[0], &data->stateVars[iLoc*numVarsQuadPt],
- stateVars.size()*sizeof(double));
- memcpy(&strain[0], &data->strain[iLoc*tensorSize],
- strain.size()*sizeof(double));
- memcpy(&initialStress[0], &data->initialStress[iLoc*tensorSize],
- initialStress.size()*sizeof(double));
- memcpy(&initialStrain[0], &data->initialStrain[iLoc*tensorSize],
- initialStrain.size()*sizeof(double));
+ for (int i=0; i < propertiesSize; ++i)
+ properties[i] = _data->propertiesNondim[iLoc*propertiesSize+i];
+ _friction->_dimProperties(&properties[0], properties.size());
+
+ const double* const propertiesE =
+ &_data->properties[iLoc*propertiesSize];
+ CPPUNIT_ASSERT(0 != propertiesE);
- _matElastic->_calcStress(&stress[0], stress.size(),
- &properties[0], properties.size(),
- &stateVars[0], stateVars.size(),
- &strain[0], strain.size(),
- &initialStress[0], initialStress.size(),
- &initialStrain[0], initialStrain.size(),
- computeStateVars);
+ const double tolerance = 1.0e-06;
+ for (int i=0; i < propertiesSize; ++i) {
+ if (fabs(propertiesE[i]) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0,
+ properties[i]/propertiesE[i],
+ tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(propertiesE[i], properties[i],
+ tolerance);
+ } // for
+ } // for
+} // testDimProperties
- const double* stressE = &data->stress[iLoc*tensorSize];
- CPPUNIT_ASSERT(0 != stressE);
+// ----------------------------------------------------------------------
+// Test _dbToStateVars().
+void
+pylith::friction::TestFrictionModel::testDBToStateVars(void)
+{ // testDBToStateVars
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
+
+ const int numLocs = _data->numLocs;
+ const int numDBStateVars = _data->numDBStateVars;
+ double_array dbValues(numDBStateVars);
+ const int stateVarsSize = _data->numVarsVertex;
+ double_array stateVars(stateVarsSize);
+
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ for (int i=0; i < numDBStateVars; ++i)
+ dbValues[i] = _data->dbStateVars[iLoc*numDBStateVars+i];
+
+ _friction->_dbToStateVars(&stateVars[0], dbValues);
+
+ const double* const stateVarsE =
+ (stateVarsSize > 0) ? &_data->stateVars[iLoc*stateVarsSize] : 0;
+ CPPUNIT_ASSERT( (0 < stateVarsSize && 0 != stateVarsE) ||
+ (0 == stateVarsSize && 0 == stateVarsE) );
const double tolerance = 1.0e-06;
- for (int i=0; i < tensorSize; ++i)
- if (fabs(stressE[i]) > tolerance)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, stress[i]/stressE[i],
+ for (int i=0; i < stateVarsSize; ++i) {
+ if (fabs(stateVarsE[i]) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0,
+ stateVars[i]/stateVarsE[i],
tolerance);
else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(stressE[i], stress[i],
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(stateVarsE[i], stateVars[i],
tolerance);
+ } // for
} // for
-} // _testCalcStress
+} // testDBToStateVars
// ----------------------------------------------------------------------
-// Test _calcElasticConsts()
+// Test _nondimStateVars().
void
-pylith::materials::TestElasticMaterial::test_calcElasticConsts(void)
-{ // _testCalcElasticConsts
- CPPUNIT_ASSERT(0 != _matElastic);
- CPPUNIT_ASSERT(0 != _dataElastic);
- const ElasticMaterialData* data = _dataElastic;
-
- int numConsts = 0;
- int tensorSize = 0;
- switch(data->dimension)
- { // switch
- case 1 :
- numConsts = 1;
- tensorSize = 1;
- break;
- case 2 :
- numConsts = 6;
- tensorSize = 3;
- break;
- case 3 :
- numConsts = 21;
- tensorSize = 6;
- break;
- } // switch
- const int numLocs = data->numLocs;
- const int numPropsQuadPt = data->numPropsQuadPt;
- const int numVarsQuadPt = data->numVarsQuadPt;
+pylith::friction::TestFrictionModel::testNonDimStateVars(void)
+{ // testNonDimStateVars
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
- double_array elasticConsts(numConsts);
- double_array properties(numPropsQuadPt);
- double_array stateVars(numVarsQuadPt);
- double_array strain(tensorSize);
- double_array initialStress(tensorSize);
- double_array initialStrain(tensorSize);
+ const int numLocs = _data->numLocs;
+ const int stateVarsSize = _data->numVarsVertex;
+ double_array stateVars(stateVarsSize);
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
- memcpy(&properties[0], &data->properties[iLoc*numPropsQuadPt],
- numPropsQuadPt*sizeof(double));
- memcpy(&stateVars[0], &data->stateVars[iLoc*numVarsQuadPt],
- numVarsQuadPt*sizeof(double));
- memcpy(&strain[0], &data->strain[iLoc*tensorSize],
- tensorSize*sizeof(double));
- memcpy(&initialStress[0], &data->initialStress[iLoc*tensorSize],
- tensorSize*sizeof(double));
- memcpy(&initialStrain[0], &data->initialStrain[iLoc*tensorSize],
- tensorSize*sizeof(double));
+ for (int i=0; i < stateVarsSize; ++i)
+ stateVars[i] = _data->dbStateVars[iLoc*stateVarsSize+i];
+ _friction->_nondimStateVars(&stateVars[0], stateVars.size());
+
+ const double* const stateVarsNondimE =
+ (stateVarsSize > 0) ? &_data->stateVarsNondim[iLoc*stateVarsSize] : 0;
+ CPPUNIT_ASSERT( (0 < stateVarsSize && 0 != stateVarsNondimE) ||
+ (0 == stateVarsSize && 0 == stateVarsNondimE) );
- _matElastic->_calcElasticConsts(&elasticConsts[0], elasticConsts.size(),
- &properties[0], properties.size(),
- &stateVars[0], stateVars.size(),
- &strain[0], strain.size(),
- &initialStress[0], initialStress.size(),
- &initialStrain[0], initialStrain.size());
+ const double tolerance = 1.0e-06;
+ for (int i=0; i < stateVarsSize; ++i) {
+ if (fabs(stateVarsNondimE[i]) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0,
+ stateVars[i]/stateVarsNondimE[i],
+ tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(stateVarsNondimE[i], stateVars[i],
+ tolerance);
+ } // for
+ } // for
+} // testNonDimStateVars
- const double* elasticConstsE = &data->elasticConsts[iLoc*numConsts];
- CPPUNIT_ASSERT(0 != elasticConstsE);
+// ----------------------------------------------------------------------
+// Test _dimStateVars().
+void
+pylith::friction::TestFrictionModel::testDimStateVars(void)
+{ // testDimStateVars
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
+
+ const int numLocs = _data->numLocs;
+ const int stateVarsSize = _data->numVarsVertex;
+ double_array stateVars(stateVarsSize);
+
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ for (int i=0; i < stateVarsSize; ++i)
+ stateVars[i] = _data->stateVarsNondim[iLoc*stateVarsSize+i];
+ _friction->_dimStateVars(&stateVars[0], stateVars.size());
+ const double* const stateVarsE =
+ (stateVarsSize > 0) ? &_data->stateVars[iLoc*stateVarsSize] : 0;
+ CPPUNIT_ASSERT( (0 < stateVarsSize && 0 != stateVarsE) ||
+ (0 == stateVarsSize && 0 == stateVarsE) );
+
const double tolerance = 1.0e-06;
- for (int i=0; i < numConsts; ++i)
- if (fabs(elasticConstsE[i]) > tolerance)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, elasticConsts[i]/elasticConstsE[i],
+ for (int i=0; i < stateVarsSize; ++i) {
+ if (fabs(stateVarsE[i]) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0,
+ stateVars[i]/stateVarsE[i],
tolerance);
else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(elasticConstsE[i], elasticConsts[i],
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(stateVarsE[i], stateVars[i],
tolerance);
+ } // for
} // for
-} // _testCalcElasticConsts
+} // testDimStateVars
// ----------------------------------------------------------------------
+// Test _calcFriction()
+void
+pylith::friction::TestFrictionModel::test_calcFriction(void)
+{ // _testCalcFriction
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
+
+ const int numLocs = _data->numLocs;
+ const int numPropsVertex = _data->numPropsVertex;
+ const int numVarsVertex = _data->numVarsVertex;
+
+ double_array properties(numPropsVertex);
+ double_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 double slip = _data->slip[iLoc];
+ const double slipRate = _data->slipRate[iLoc];
+ const double normalTraction = _data->normalTraction[iLoc];
+
+ const double friction = _friction->_calcFriction(
+ slip, slipRate, normalTraction,
+ &properties[0], properties.size(),
+ &stateVars[0], stateVars.size());
+
+ const double frictionE = _data->friction[iLoc];
+
+ const double tolerance = 1.0e-06;
+ if (0.0 != frictionE)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, friction/frictionE, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(frictionE, friction, tolerance);
+ } // for
+} // _testCalcFriction
+
+// ----------------------------------------------------------------------
// Test _updateStateVars()
void
-pylith::materials::TestElasticMaterial::test_updateStateVars(void)
+pylith::friction::TestFrictionModel::test_updateStateVars(void)
{ // test_updateStateVars
- CPPUNIT_ASSERT(0 != _matElastic);
- CPPUNIT_ASSERT(0 != _dataElastic);
- const ElasticMaterialData* data = _dataElastic;
+ CPPUNIT_ASSERT(0 != _friction);
+ CPPUNIT_ASSERT(0 != _data);
const bool computeStateVars = true;
- const int numLocs = data->numLocs;
- const int numPropsQuadPt = data->numPropsQuadPt;
- const int numVarsQuadPt = data->numVarsQuadPt;
- const int tensorSize = _matElastic->_tensorSize;
+ const int numLocs = _data->numLocs;
+ const int numPropsVertex = _data->numPropsVertex;
+ const int numVarsVertex = _data->numVarsVertex;
- double_array properties(numPropsQuadPt);
- double_array stateVars(numVarsQuadPt);
- double_array strain(tensorSize);
- double_array initialStress(tensorSize);
- double_array initialStrain(tensorSize);
+ double_array properties(numPropsVertex);
+ double_array stateVars(numVarsVertex);
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
- memcpy(&properties[0], &data->properties[iLoc*numPropsQuadPt],
- numPropsQuadPt*sizeof(double));
- memcpy(&stateVars[0], &data->stateVars[iLoc*numVarsQuadPt],
- numVarsQuadPt*sizeof(double));
- memcpy(&strain[0], &data->strain[iLoc*tensorSize],
- tensorSize*sizeof(double));
- memcpy(&initialStress[0], &data->initialStress[iLoc*tensorSize],
- tensorSize*sizeof(double));
- memcpy(&initialStrain[0], &data->initialStrain[iLoc*tensorSize],
- tensorSize*sizeof(double));
+ 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];
- _matElastic->_updateStateVars(&stateVars[0], stateVars.size(),
- &properties[0], properties.size(),
- &strain[0], strain.size(),
- &initialStress[0], initialStress.size(),
- &initialStrain[0], initialStrain.size());
+ _friction->_updateStateVars(&stateVars[0], stateVars.size(),
+ &properties[0], properties.size());
const double* stateVarsE =
- (numVarsQuadPt > 0) ? &data->stateVarsUpdated[iLoc*numVarsQuadPt] : 0;
- CPPUNIT_ASSERT( (0 < numVarsQuadPt && 0 != stateVarsE) ||
- (0 == numVarsQuadPt && 0 == stateVarsE) );
+ (numVarsVertex > 0) ? &_data->stateVarsUpdated[iLoc*numVarsVertex] : 0;
+ CPPUNIT_ASSERT( (0 < numVarsVertex && 0 != stateVarsE) ||
+ (0 == numVarsVertex && 0 == stateVarsE) );
const double tolerance = 1.0e-06;
- for (int i=0; i < numVarsQuadPt; ++i)
- if (fabs(stateVarsE[i]) > tolerance)
+ for (int i=0; i < numVarsVertex; ++i)
+ if (0.0 != stateVarsE[i])
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, stateVars[i]/stateVarsE[i],
tolerance);
else
@@ -624,50 +531,31 @@
} // test_updateStateVars
// ----------------------------------------------------------------------
-// Test _stableTimeStepImplicit()
-void
-pylith::materials::TestElasticMaterial::test_stableTimeStepImplicit(void)
-{ // _testCalcDensity
- CPPUNIT_ASSERT(0 != _matElastic);
- CPPUNIT_ASSERT(0 != _dataElastic);
- const ElasticMaterialData* data = _dataElastic;
-
- const double dt =
- _matElastic->_stableTimeStepImplicit(data->properties, data->numPropsQuadPt,
- data->stateVars, data->numVarsQuadPt);
-
- const double dtE = data->dtStableImplicit;
-
- const double tolerance = 1.0e-06;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dt/dtE, tolerance);
-} // _testStableTimeStepImplicit
-
-// ----------------------------------------------------------------------
// Setup nondimensionalization.
void
-pylith::materials::TestElasticMaterial::setupNormalizer(void)
+pylith::friction::TestFrictionModel::setupNormalizer(void)
{ // setupNormalizer
spatialdata::units::Nondimensional normalizer;
normalizer.lengthScale(_data->lengthScale);
normalizer.pressureScale(_data->pressureScale);
normalizer.timeScale(_data->timeScale);
normalizer.densityScale(_data->densityScale);
- _material->normalizer(normalizer);
- _matElastic->normalizer(normalizer);
+ _friction->normalizer(normalizer);
} // setupNormalizer
// ----------------------------------------------------------------------
// Setup mesh and material.
void
-pylith::materials::TestElasticMaterial::_initialize(
+pylith::friction::TestFrictionModel::_initialize(
topology::Mesh* mesh,
- ElasticStrain1D* material,
- const ElasticStrain1DData* data)
+ StaticFriction* friction,
+ const StaticFrictionData* data)
{ // _initialize
CPPUNIT_ASSERT(0 != mesh);
- CPPUNIT_ASSERT(0 != material);
+ CPPUNIT_ASSERT(0 != friction);
CPPUNIT_ASSERT(0 != data);
+#if 0
meshio::MeshIOAscii iohandler;
iohandler.filename("data/line3.mesh");
iohandler.read(mesh);
@@ -739,12 +627,13 @@
material->dbProperties(&db);
material->id(materialId);
- material->label("my_material");
+ material->label("my_friction");
material->normalizer(normalizer);
material->dbInitialStress(&dbStress);
material->dbInitialStrain(&dbStrain);
material->initialize(*mesh, &quadrature);
+#endif
} // _initialize
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.hh 2010-01-23 00:30:50 UTC (rev 16164)
@@ -31,6 +31,7 @@
namespace friction {
class TestFrictionModel;
class FrictionModelData;
+ class StaticFrictionData;
} // friction
} // pylith
@@ -48,6 +49,8 @@
CPPUNIT_TEST( testNormalizer );
CPPUNIT_TEST( testInitialize );
CPPUNIT_TEST( testRetrievePropsAndVars );
+ CPPUNIT_TEST( testCalcFriction );
+ CPPUNIT_TEST( testUpdateStateVars );
CPPUNIT_TEST_SUITE_END();
@@ -69,9 +72,6 @@
/// Test normalizer().
void testNormalizer(void);
- /// Test needNewJacobian()
- void testNeedNewJacobian(void);
-
/// Test initialize()
void testInitialize(void);
@@ -97,18 +97,30 @@
virtual
void tearDown(void);
+ /// Test _dbToProperties().
+ void testDBToProperties(void);
+
+ /// Test _nondimProperties().
+ void testNonDimProperties(void);
+
+ /// Test _dimProperties().
+ void testDimProperties(void);
+
+ /// Test _dbToStateVars().
+ void testDBToStateVars(void);
+
+ /// Test _nondimStateVars().
+ void testNonDimStateVars(void);
+
+ /// Test _dimStateVars().
+ void testDimStateVars(void);
+
/// Test _calcFriction().
void test_calcFriction(void);
/// Test _updateStateVars().
void test_updateStateVars(void);
- /// Test hasProperty().
- void testHasProperty(void);
-
- /// Test hasStateVar().
- void testHasStateVar(void);
-
// PROTECTED METHODS //////////////////////////////////////////////////
protected :
@@ -127,8 +139,12 @@
/** Setup mesh and material.
*
* @param mesh Finite-element mesh.
+ * @param friction Friction model.
+ * @param data Data with properties for friction model.
*/
- void _initialize(topology::SubMesh* mesh);
+ void _initialize(topology::Mesh* mesh,
+ StaticFriction* friction,
+ const StaticFrictionData* data);
}; // class TestFrictionModel
Deleted: short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.cc 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -1,76 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticIsotropic3D.hh" // Implementation of class methods
-
-#include "data/ElasticIsotropic3DData.hh" // USES ElasticIsotropic3DData
-
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-#include "pylith/utils/constdefs.h" // USES MAXDOUBLE
-#include "pylith/topology/Mesh.hh" // USES Mesh
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::materials::TestElasticIsotropic3D );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::materials::TestElasticIsotropic3D::setUp(void)
-{ // setUp
- _material = new ElasticIsotropic3D();
- _matElastic = new ElasticIsotropic3D();
- _data = new ElasticIsotropic3DData();
- _dataElastic = new ElasticIsotropic3DData();
- setupNormalizer();
-} // setUp
-
-// ----------------------------------------------------------------------
-// Test stableTimeStepImplicit().
-void
-pylith::materials::TestElasticIsotropic3D::testStableTimeStepImplicit(void)
-{ // testStableTimeStepImplicit
- assert(0 != _matElastic);
-
- topology::Mesh mesh;
-
- const double dt = _matElastic->stableTimeStepImplicit(mesh);
- CPPUNIT_ASSERT_EQUAL(1.0, dt/pylith::PYLITH_MAXDOUBLE);
-} // testStableTimeStepImplicit
-
-// ----------------------------------------------------------------------
-// Test hasProperty().
-void
-pylith::materials::TestElasticIsotropic3D::testHasProperty(void)
-{ // testHasProperty
- ElasticIsotropic3D material;
-
- CPPUNIT_ASSERT(material.hasProperty("mu"));
- CPPUNIT_ASSERT(material.hasProperty("lambda"));
- CPPUNIT_ASSERT(material.hasProperty("density"));
- CPPUNIT_ASSERT(!material.hasProperty("aaa"));
-} // testHasProperty
-
-// ----------------------------------------------------------------------
-// Test hasStateVar().
-void
-pylith::materials::TestElasticIsotropic3D::testHasStateVar(void)
-{ // testHasStateVar
- ElasticIsotropic3D material;
-
- CPPUNIT_ASSERT(!material.hasStateVar("stress"));
-} // testHasStateVar
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.hh 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.hh 2010-01-23 00:30:50 UTC (rev 16164)
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/materials/TestElasticIsotropic3D.hh
- *
- * @brief C++ TestElasticIsotropic3D object
- *
- * C++ unit testing for ElasticIsotropic3D.
- */
-
-#if !defined(pylith_materials_testelasticisotropic3d_hh)
-#define pylith_materials_testelasticisotropic3d_hh
-
-#include "TestElasticMaterial.hh"
-
-/// Namespace for pylith package
-namespace pylith {
- namespace materials {
- class TestElasticIsotropic3D;
- } // materials
-} // pylith
-
-/// C++ unit testing for ElasticIsotropic3D
-class pylith::materials::TestElasticIsotropic3D : public TestElasticMaterial
-{ // class TestElasticIsotropic3D
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticIsotropic3D );
-
- CPPUNIT_TEST( testDimension );
- CPPUNIT_TEST( testTensorSize );
- CPPUNIT_TEST( testDBToProperties );
- CPPUNIT_TEST( testNonDimProperties );
- CPPUNIT_TEST( testDimProperties );
- CPPUNIT_TEST( testDBToStateVars );
- CPPUNIT_TEST( testNonDimStateVars );
- CPPUNIT_TEST( testDimStateVars );
- CPPUNIT_TEST( testStableTimeStepImplicit );
- CPPUNIT_TEST( test_calcDensity );
- CPPUNIT_TEST( test_calcStress );
- CPPUNIT_TEST( test_calcElasticConsts );
- CPPUNIT_TEST( test_updateStateVars );
- CPPUNIT_TEST( test_stableTimeStepImplicit );
-
- CPPUNIT_TEST( testHasProperty );
- CPPUNIT_TEST( testHasStateVar );
-
- CPPUNIT_TEST_SUITE_END();
-
- // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
- /// Setup testing data.
- void setUp(void);
-
- /// Test stableTimeStepImplicit().
- void testStableTimeStepImplicit(void);
-
- /// Test hasProperty().
- void testHasProperty(void);
-
- /// Test hasStateVar().
- void testHasStateVar(void);
-
-}; // class TestElasticIsotropic3D
-
-#endif // pylith_materials_testelasticisotropic3d_hh
-
-
-// End of file
Copied: short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc (from rev 16163, short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.cc)
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestStaticFriction.hh" // Implementation of class methods
+
+#include "data/StaticFrictionData.hh" // USES StaticFrictionData
+
+#include "pylith/friction/StaticFriction.hh" // USES StaticFriction
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::friction::TestStaticFriction );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::friction::TestStaticFriction::setUp(void)
+{ // setUp
+ _friction = new StaticFriction();
+ _data = new StaticFrictionData();
+ setupNormalizer();
+} // setUp
+
+// ----------------------------------------------------------------------
+// Test hasProperty().
+void
+pylith::friction::TestStaticFriction::testHasProperty(void)
+{ // testHasProperty
+ StaticFriction material;
+
+ CPPUNIT_ASSERT(material.hasProperty("friction_coefficient"));
+ CPPUNIT_ASSERT(!material.hasProperty("aaa"));
+} // testHasProperty
+
+// ----------------------------------------------------------------------
+// Test hasStateVar().
+void
+pylith::friction::TestStaticFriction::testHasStateVar(void)
+{ // testHasStateVar
+ StaticFriction material;
+
+ CPPUNIT_ASSERT(!material.hasStateVar("aaa"));
+} // testHasStateVar
+
+
+// End of file
Copied: short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh (from rev 16163, short/3D/PyLith/trunk/unittests/libtests/friction/TestStatiFriction.hh)
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestStaticFriction.hh 2010-01-23 00:30:50 UTC (rev 16164)
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/friction/TestStaticFriction.hh
+ *
+ * @brief C++ TestStaticFriction object
+ *
+ * C++ unit testing for StaticFriction.
+ */
+
+#if !defined(pylith_friction_testelasticisotropic3d_hh)
+#define pylith_friction_testelasticisotropic3d_hh
+
+#include "TestFrictionModel.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace friction {
+ class TestStaticFriction;
+ } // friction
+} // pylith
+
+/// C++ unit testing for StaticFriction
+class pylith::friction::TestStaticFriction : public TestFrictionModel
+{ // class TestStaticFriction
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestStaticFriction );
+
+ 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 TestStaticFriction
+
+#endif // pylith_friction_testelasticisotropic3d_hh
+
+
+// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -10,19 +10,18 @@
// ======================================================================
//
-#include "MaterialData.hh"
+#include "FrictionModelData.hh"
// ----------------------------------------------------------------------
// Constructor
-pylith::materials::MaterialData::MaterialData(void) :
- dimension(0),
+pylith::friction::FrictionModelData::FrictionModelData(void) :
numLocs(0),
numProperties(0),
numStateVars(0),
numDBProperties(0),
numDBStateVars(0),
- numPropsQuadPt(0),
- numVarsQuadPt(0),
+ numPropsVertex(0),
+ numVarsVertex(0),
numPropertyValues(0),
numStateVarValues(0),
dbPropertyValues(0),
@@ -31,6 +30,13 @@
dbStateVars(0),
properties(0),
stateVars(0),
+ propertiesNondim(0),
+ stateVarsNondim(0),
+ friction(0),
+ slip(0),
+ slipRate(0),
+ normalTraction(0),
+ stateVarsUpdated(0),
lengthScale(0),
timeScale(0),
pressureScale(0),
@@ -40,7 +46,7 @@
// ----------------------------------------------------------------------
// Destructor
-pylith::materials::MaterialData::~MaterialData(void)
+pylith::friction::FrictionModelData::~FrictionModelData(void)
{ // destructor
} // destructor
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/FrictionModelData.hh 2010-01-23 00:30:50 UTC (rev 16164)
@@ -33,13 +33,15 @@
// PUBLIC MEMBERS ///////////////////////////////////////////////////////
public:
+ int numLocs; ///< Number of locations
+
int numProperties; ///< Number of parameters for physical properties.
int numStateVars; ///< Number of state variables.
int numDBProperties; ///< Number of db values for properties.
int numDBStateVars; ///< Number of db values for state variables.
- int numProps; ///< Number of properties at each vertex.
- int numVars; ///< Number of state variables at each vertex.
+ int numPropsVertex; ///< Number of properties at each vertex.
+ int numVarsVertex; ///< Number of state variables at each vertex.
int* numPropertyValues; ///< Number of values for each property
int* numStateVarValues; ///< Number of values for each state variable
@@ -54,7 +56,11 @@
double* propertiesNondim; ///< Nondimensional properties at locations.
double* stateVarsNondim; ///< Nondimensional state variables at locations.
- double* friction; ///< Friction at location.
+ double* friction; ///< Friction at locations.
+ double* slip; ///< Slip at locations.
+ double* slipRate; ///< Slip rate at locations.
+ double* normalTraction; ///< Normal traction at locations.
+
double* stateVarsUpdated; ///< Updated state variables at location.
double lengthScale; ///< Length scale for nondimensionalization.
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -10,213 +10,98 @@
// ======================================================================
//
-// DO NOT EDIT THIS FILE
-// This file was generated from python application elasticisotropic3d.
+#include "StaticFrictionData.hh"
-#include "ElasticIsotropic3DData.hh"
+const int pylith::friction::StaticFrictionData::_numLocs = 2;
-const int pylith::materials::ElasticIsotropic3DData::_dimension = 3;
+const int pylith::friction::StaticFrictionData::_numProperties = 1;
-const int pylith::materials::ElasticIsotropic3DData::_numLocs = 2;
+const int pylith::friction::StaticFrictionData::_numStateVars = 0;
-const int pylith::materials::ElasticIsotropic3DData::_numProperties = 3;
+const int pylith::friction::StaticFrictionData::_numDBProperties = 1;
-const int pylith::materials::ElasticIsotropic3DData::_numStateVars = 0;
+const int pylith::friction::StaticFrictionData::_numDBStateVars = 0;
-const int pylith::materials::ElasticIsotropic3DData::_numDBProperties = 3;
+const int pylith::friction::StaticFrictionData::_numPropsVertex = 1;
-const int pylith::materials::ElasticIsotropic3DData::_numDBStateVars = 0;
+const int pylith::friction::StaticFrictionData::_numVarsVertex = 0;
-const int pylith::materials::ElasticIsotropic3DData::_numPropsQuadPt = 3;
+const double pylith::friction::StaticFrictionData::_lengthScale = 1.00000000e+03;
-const int pylith::materials::ElasticIsotropic3DData::_numVarsQuadPt = 0;
+const double pylith::friction::StaticFrictionData::_timeScale = 1.00000000e+00;
-const double pylith::materials::ElasticIsotropic3DData::_lengthScale = 1.00000000e+03;
+const double pylith::friction::StaticFrictionData::_pressureScale = 2.25000000e+10;
-const double pylith::materials::ElasticIsotropic3DData::_timeScale = 1.00000000e+00;
+const double pylith::friction::StaticFrictionData::_densityScale = 1.00000000e+03;
-const double pylith::materials::ElasticIsotropic3DData::_pressureScale = 2.25000000e+10;
-
-const double pylith::materials::ElasticIsotropic3DData::_densityScale = 1.00000000e+03;
-
-const double pylith::materials::ElasticIsotropic3DData::_dtStableImplicit = 1.00000000e+30;
-
-const int pylith::materials::ElasticIsotropic3DData::_numPropertyValues[] = {
+const int pylith::friction::StaticFrictionData::_numPropertyValues[] = {
1,
-1,
-1,
};
-const int* pylith::materials::ElasticIsotropic3DData::_numStateVarValues = 0;
+const int* pylith::friction::StaticFrictionData::_numStateVarValues = 0;
-const char* pylith::materials::ElasticIsotropic3DData::_dbPropertyValues[] = {
-"density",
-"vs",
-"vp",
+const char* pylith::friction::StaticFrictionData::_dbPropertyValues[] = {
+"friction-coefficient",
};
-const char** pylith::materials::ElasticIsotropic3DData::_dbStateVarValues = 0;
+const char** pylith::friction::StaticFrictionData::_dbStateVarValues = 0;
-const double pylith::materials::ElasticIsotropic3DData::_dbProperties[] = {
- 2.50000000e+03,
- 3.00000000e+03,
- 5.19615242e+03,
- 2.00000000e+03,
- 1.20000000e+03,
- 2.07846097e+03,
+const double pylith::friction::StaticFrictionData::_dbProperties[] = {
+ 0.6,
+ 0.6,
};
-const double* pylith::materials::ElasticIsotropic3DData::_dbStateVars = 0;
+const double* pylith::friction::StaticFrictionData::_dbStateVars = 0;
-const double pylith::materials::ElasticIsotropic3DData::_properties[] = {
- 2.50000000e+03,
- 2.25000000e+10,
- 2.25000000e+10,
- 2.00000000e+03,
- 2.88000000e+09,
- 2.88000000e+09,
+const double pylith::friction::StaticFrictionData::_properties[] = {
+ 0.6,
+ 0.6,
};
-const double* pylith::materials::ElasticIsotropic3DData::_stateVars = 0;
+const double* pylith::friction::StaticFrictionData::_stateVars = 0;
-const double pylith::materials::ElasticIsotropic3DData::_propertiesNondim[] = {
- 2.50000000e+00,
- 1.00000000e+00,
- 1.00000000e+00,
- 2.00000000e+00,
- 1.28000000e-01,
- 1.28000000e-01,
+const double pylith::friction::StaticFrictionData::_propertiesNondim[] = {
+ 0.6,
+ 0.6,
};
-const double* pylith::materials::ElasticIsotropic3DData::_stateVarsNondim = 0;
+const double* pylith::friction::StaticFrictionData::_stateVarsNondim = 0;
-const double pylith::materials::ElasticIsotropic3DData::_density[] = {
- 2.50000000e+03,
- 2.00000000e+03,
+const double pylith::friction::StaticFrictionData::_friction[] = {
+ 1.32,
+ 0.0,
};
-const double pylith::materials::ElasticIsotropic3DData::_strain[] = {
- 1.10000000e-04,
- 1.20000000e-04,
- 1.30000000e-04,
- 1.40000000e-04,
- 1.50000000e-04,
- 1.60000000e-04,
- 4.10000000e-04,
- 4.20000000e-04,
- 4.30000000e-04,
- 4.40000000e-04,
- 4.50000000e-04,
- 4.60000000e-04,
+const double pylith::friction::StaticFrictionData::_slip[] = {
+ 0.12,
+ 0.25,
};
-const double pylith::materials::ElasticIsotropic3DData::_stress[] = {
- -2.24790000e+07,
- -2.24780000e+07,
- -2.24770000e+07,
- -8.97600000e+06,
- 6.61750000e+06,
- -8.97400000e+06,
- -2.82900000e+06,
- -2.82800000e+06,
- -2.82700000e+06,
- -1.09800000e+06,
- 2.60956000e+06,
- -1.09600000e+06,
+const double pylith::friction::StaticFrictionData::_slipRate[] = {
+ 0.74,
+ 0.64,
};
-const double pylith::materials::ElasticIsotropic3DData::_elasticConsts[] = {
- 6.75000000e+10,
- 2.25000000e+10,
- 2.25000000e+10,
- 0.00000000e+00,
- 0.00000000e+00,
- 0.00000000e+00,
- 6.75000000e+10,
- 2.25000000e+10,
- 0.00000000e+00,
- 0.00000000e+00,
- 0.00000000e+00,
- 6.75000000e+10,
- 0.00000000e+00,
- 0.00000000e+00,
- 0.00000000e+00,
- 4.50000000e+10,
- 0.00000000e+00,
- 0.00000000e+00,
- 4.50000000e+10,
- 0.00000000e+00,
- 4.50000000e+10,
- 8.64000000e+09,
- 2.88000000e+09,
- 2.88000000e+09,
- 0.00000000e+00,
- 0.00000000e+00,
- 0.00000000e+00,
- 8.64000000e+09,
- 2.88000000e+09,
- 0.00000000e+00,
- 0.00000000e+00,
- 0.00000000e+00,
- 8.64000000e+09,
- 0.00000000e+00,
- 0.00000000e+00,
- 0.00000000e+00,
- 5.76000000e+09,
- 0.00000000e+00,
- 0.00000000e+00,
- 5.76000000e+09,
- 0.00000000e+00,
- 5.76000000e+09,
+const double pylith::friction::StaticFrictionData::_normalTraction[] = {
+ -2.2,
+ 0.8,
};
-const double pylith::materials::ElasticIsotropic3DData::_initialStress[] = {
- 2.10000000e+04,
- 2.20000000e+04,
- 2.30000000e+04,
- 2.40000000e+04,
- 2.50000000e+04,
- 2.60000000e+04,
- 5.10000000e+04,
- 5.20000000e+04,
- 5.30000000e+04,
- 5.40000000e+04,
- 5.50000000e+04,
- 5.60000000e+04,
-};
+const double* pylith::friction::StaticFrictionData::_stateVarsUpdated = 0;
-const double pylith::materials::ElasticIsotropic3DData::_initialStrain[] = {
- 3.10000000e-04,
- 3.20000000e-04,
- 3.30000000e-04,
- 3.40000000e-04,
- 3.50000000e-06,
- 3.60000000e-04,
- 6.10000000e-04,
- 6.20000000e-04,
- 6.30000000e-04,
- 6.40000000e-04,
- 6.50000000e-06,
- 6.60000000e-04,
-};
-
-const double* pylith::materials::ElasticIsotropic3DData::_stateVarsUpdated = 0;
-
-pylith::materials::ElasticIsotropic3DData::ElasticIsotropic3DData(void)
+pylith::friction::StaticFrictionData::StaticFrictionData(void)
{ // constructor
- dimension = _dimension;
numLocs = _numLocs;
numProperties = _numProperties;
numStateVars = _numStateVars;
numDBProperties = _numDBProperties;
numDBStateVars = _numDBStateVars;
- numPropsQuadPt = _numPropsQuadPt;
- numVarsQuadPt = _numVarsQuadPt;
+ numPropsVertex = _numPropsVertex;
+ numVarsVertex = _numVarsVertex;
lengthScale = _lengthScale;
timeScale = _timeScale;
pressureScale = _pressureScale;
densityScale = _densityScale;
- dtStableImplicit = _dtStableImplicit;
numPropertyValues = const_cast<int*>(_numPropertyValues);
numStateVarValues = const_cast<int*>(_numStateVarValues);
dbPropertyValues = const_cast<char**>(_dbPropertyValues);
@@ -227,16 +112,14 @@
stateVars = const_cast<double*>(_stateVars);
propertiesNondim = const_cast<double*>(_propertiesNondim);
stateVarsNondim = const_cast<double*>(_stateVarsNondim);
- density = const_cast<double*>(_density);
- strain = const_cast<double*>(_strain);
- stress = const_cast<double*>(_stress);
- elasticConsts = const_cast<double*>(_elasticConsts);
- initialStress = const_cast<double*>(_initialStress);
- initialStrain = const_cast<double*>(_initialStrain);
+ 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::materials::ElasticIsotropic3DData::~ElasticIsotropic3DData(void)
+pylith::friction::StaticFrictionData::~StaticFrictionData(void)
{}
Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/StaticFrictionData.hh 2010-01-23 00:30:50 UTC (rev 16164)
@@ -10,35 +10,30 @@
// ======================================================================
//
-// DO NOT EDIT THIS FILE
-// This file was generated from python application elasticisotropic3d.
+#if !defined(pylith_friction_staticfrictiondata_hh)
+#define pylith_friction_staticfrictiondata_hh
-#if !defined(pylith_materials_elasticisotropic3ddata_hh)
-#define pylith_materials_elasticisotropic3ddata_hh
+#include "FrictionModelData.hh"
-#include "ElasticMaterialData.hh"
-
namespace pylith {
- namespace materials {
- class ElasticIsotropic3DData;
+ namespace friction {
+ class StaticFrictionData;
} // pylith
-} // materials
+} // friction
-class pylith::materials::ElasticIsotropic3DData : public ElasticMaterialData
+class pylith::friction::StaticFrictionData : public FrictionModelData
{
public:
/// Constructor
- ElasticIsotropic3DData(void);
+ StaticFrictionData(void);
/// Destructor
- ~ElasticIsotropic3DData(void);
+ ~StaticFrictionData(void);
private:
- static const int _dimension;
-
static const int _numLocs;
static const int _numProperties;
@@ -49,9 +44,9 @@
static const int _numDBStateVars;
- static const int _numPropsQuadPt;
+ static const int _numPropsVertex;
- static const int _numVarsQuadPt;
+ static const int _numVarsVertex;
static const double _lengthScale;
@@ -61,8 +56,6 @@
static const double _densityScale;
- static const double _dtStableImplicit;
-
static const int _numPropertyValues[];
static const int* _numStateVarValues;
@@ -83,22 +76,18 @@
static const double* _stateVarsNondim;
- static const double _density[];
+ static const double _friction[];
- static const double _strain[];
+ static const double _slip[];
- static const double _stress[];
+ static const double _slipRate[];
- static const double _elasticConsts[];
+ static const double _normalTraction[];
- static const double _initialStress[];
-
- static const double _initialStrain[];
-
static const double* _stateVarsUpdated;
};
-#endif // pylith_materials_elasticisotropic3ddata_hh
+#endif // pylith_friction_staticfrictiondata_hh
// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/materials/data/MaterialData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/materials/data/MaterialData.cc 2010-01-22 05:54:49 UTC (rev 16163)
+++ short/3D/PyLith/trunk/unittests/libtests/materials/data/MaterialData.cc 2010-01-23 00:30:50 UTC (rev 16164)
@@ -31,6 +31,8 @@
dbStateVars(0),
properties(0),
stateVars(0),
+ propertiesNondim(0),
+ stateVarsNondim(0),
lengthScale(0),
timeScale(0),
pressureScale(0),
More information about the CIG-COMMITS
mailing list