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

brad at geodynamics.org brad at geodynamics.org
Tue Mar 5 18:22:31 PST 2013


Author: brad
Date: 2013-03-05 18:22:31 -0800 (Tue, 05 Mar 2013)
New Revision: 21449

Modified:
   short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/data/friction_static.spatialdb
Log:
Added nontrivial scales to TestFrictionModel.

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-03-05 16:00:49 UTC (rev 21448)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-03-06 02:22:31 UTC (rev 21449)
@@ -130,8 +130,6 @@
 void
 pylith::friction::TestFrictionModel::testInitialize(void)
 { // testInitialize
-  const PylithScalar propertiesE[] = { 0.6, 1000000, 0.4, 1000000 };
-
   topology::Mesh mesh;
   faults::FaultCohesiveDyn fault;
   StaticFriction friction;
@@ -140,6 +138,11 @@
   _initialize(&mesh, &fault, &friction, &data);
   CPPUNIT_ASSERT(0 != friction._fieldsPropsStateVars);
 
+  const PylithScalar propertiesE[2*2] = {
+    0.6, 1000000/data.pressureScale,
+    0.4, 1000000/data.pressureScale,
+  };
+
   DM       faultDMMesh = fault.faultMesh().dmMesh();
   PetscInt vStart, vEnd;
 
@@ -233,18 +236,20 @@
 void
 pylith::friction::TestFrictionModel::testRetrievePropsStateVars(void)
 { // testRetrievePropsStateVars
-  const PylithScalar propertiesE[] = { 0.4, 1000000 };
-  const size_t numProperties = 2;
-  const PylithScalar* stateVarsE = 0;
-  const size_t numStateVars = 0;
-  const int vertex = 2;
-
   topology::Mesh mesh;
   faults::FaultCohesiveDyn fault;
   StaticFriction friction;
   StaticFrictionData data;
   _initialize(&mesh, &fault, &friction, &data);
 
+  const size_t numProperties = 2;
+  const PylithScalar propertiesE[numProperties] = {
+    0.4, 1000000/data.pressureScale,
+  };
+  const PylithScalar* stateVarsE = 0;
+  const size_t numStateVars = 0;
+  const int vertex = 2;
+
   friction.retrievePropsStateVars(vertex);
 
   const PylithScalar tolerance = 1.0e-06;
@@ -280,31 +285,34 @@
 void
 pylith::friction::TestFrictionModel::testCalcFriction(void)
 { // testCalcFriction
+  topology::Mesh mesh;
+  faults::FaultCohesiveDyn fault;
+  StaticFriction friction;
+  StaticFrictionData data;
+  _initialize(&mesh, &fault, &friction, &data);
+
   const PylithScalar t = 1.5;
   const PylithScalar slip = 1.2;
   const PylithScalar slipRate = -2.3;
-  const PylithScalar normalTraction = -2.4;
-  const PylithScalar frictionCoef = 0.45;
-  const PylithScalar cohesion = 1000000;
+  const PylithScalar normalTraction = -2.4e-3;
+  const PylithScalar frictionCoef = 0.4;
+  const PylithScalar cohesion = 1.0e+6/data.pressureScale;
   const PylithScalar frictionE = -normalTraction*frictionCoef + cohesion;
   const int vertex = 2;
 
-  topology::Mesh mesh;
-  faults::FaultCohesiveDyn fault;
-  StaticFriction friction;
-  StaticFrictionData data;
-  _initialize(&mesh, &fault, &friction, &data);
-
   friction.timeStep(data.dt);
   friction.retrievePropsStateVars(vertex);
-  const PylithScalar frictionV = 
-    friction.calcFriction(t, slip, slipRate, normalTraction);
+  const PylithScalar frictionV = friction.calcFriction(t, slip, slipRate, normalTraction);
 
   const PylithScalar tolerance = 1.0e-6;
-  if (0.0 != frictionE)
+  if (0.0 != frictionE) {
+    std::cout << "frictionE: " << frictionE
+	      << ", frictionV: " << frictionV
+	      << std::endl;
     CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, frictionV/frictionE, tolerance);
-  else
+  } else {
     CPPUNIT_ASSERT_DOUBLES_EQUAL(frictionE, frictionV, tolerance);
+  } // if/else
 } // testCalcFriction
     
 // ----------------------------------------------------------------------
@@ -782,6 +790,10 @@
   // Set up coordinates
   spatialdata::geocoords::CSCart cs;
   spatialdata::units::Nondimensional normalizer;
+  normalizer.lengthScale(data->lengthScale);
+  normalizer.pressureScale(data->pressureScale);
+  normalizer.timeScale(data->timeScale);
+  normalizer.densityScale(data->densityScale);
   cs.setSpaceDim(mesh->dimension());
   cs.initialize();
   mesh->coordsys(&cs);
@@ -817,6 +829,7 @@
   fault->quadrature(&quadrature);
   fault->adjustTopology(mesh, &firstFaultVertex, &firstLagrangeVertex,
       &firstFaultCell, flipFault);
+  fault->normalizer(normalizer);
 
   spatialdata::spatialdb::SimpleDB db;
   spatialdata::spatialdb::SimpleIOAscii dbIO;

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/data/friction_static.spatialdb
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/data/friction_static.spatialdb	2013-03-05 16:00:49 UTC (rev 21448)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/data/friction_static.spatialdb	2013-03-06 02:22:31 UTC (rev 21449)
@@ -11,5 +11,5 @@
     space-dim = 2
   }
 }
-0.0   1.0   0.6 1000000
-0.0  -1.0   0.4 1000000
+0.0   1.0   0.6  1.0e+6
+0.0  -1.0   0.4  1.0e+6



More information about the CIG-COMMITS mailing list