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

brad at geodynamics.org brad at geodynamics.org
Fri Mar 8 09:25:46 PST 2013


Author: brad
Date: 2013-03-08 09:25:46 -0800 (Fri, 08 Mar 2013)
New Revision: 21471

Modified:
   short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc
   short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
Log:
Code cleanup.

Modified: short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc	2013-03-08 13:32:30 UTC (rev 21470)
+++ short/3D/PyLith/trunk/libsrc/pylith/friction/FrictionModel.cc	2013-03-08 17:25:46 UTC (rev 21471)
@@ -37,9 +37,6 @@
 //#define PRECOMPUTE_GEOMETRY
 
 // ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveSubMesh SieveSubMesh;
-
-// ----------------------------------------------------------------------
 // Default constructor.
 pylith::friction::FrictionModel::FrictionModel(const materials::Metadata& metadata) :
   _dt(0.0),
@@ -99,21 +96,21 @@
   //logger.stagePush("Friction");
 
   // Get vertices associated with friction interface
-  DM       faultDMMesh = faultMesh.dmMesh();
+  PetscDM faultDMMesh = faultMesh.dmMesh();assert(faultDMMesh);
   PetscInt vStart, vEnd;
-
   err = DMPlexGetDepthStratum(faultDMMesh, 0, &vStart, &vEnd);CHECK_PETSC_ERROR(err);
+
   const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  assert(0 != cs);
+  assert(cs);
   const int spaceDim = cs->spaceDim();
 
   assert(_normalizer);
   const PylithScalar lengthScale = _normalizer->lengthScale();
 
   scalar_array coordsVertexGlobal(spaceDim);
-  PetscSection coordSection;
-  Vec          coordVec;
-  PetscScalar* coordArray;
+  PetscSection coordSection = NULL;
+  PetscVec coordVec = NULL;
+  PetscScalar* coordArray = NULL;
   err = DMPlexGetCoordinateSection(faultDMMesh, &coordSection);CHECK_PETSC_ERROR(err);
   err = DMGetCoordinatesLocal(faultDMMesh, &coordVec);CHECK_PETSC_ERROR(err);
 
@@ -140,10 +137,10 @@
   for(PetscInt v = vStart; v < vEnd; ++v) {
     PetscInt coff;
     PetscInt cdof;
-
     err = PetscSectionGetDof(coordSection, v, &cdof);CHECK_PETSC_ERROR(err);
     err = PetscSectionGetOffset(coordSection, v, &coff);CHECK_PETSC_ERROR(err);
     assert(spaceDim == cdof);
+
     for (PetscInt d = 0; d < cdof; ++d) {
       coordsVertexGlobal[d] = coordArray[coff+d];
     } // for
@@ -171,18 +168,19 @@
       const materials::Metadata::ParamDescription& property = 
         _metadata.getProperty(i);
       // TODO This needs to be an integer instead of a string
-      topology::Field<topology::SubMesh>& prop = _fieldsPropsStateVars->get(property.name.c_str());
-      PetscSection section = prop.petscSection();
-      Vec          vec     = prop.localVector();
-      PetscScalar *a;
-      PetscInt     dof, off;
-
-      err = PetscSectionGetDof(section, v, &dof);CHECK_PETSC_ERROR(err);
-      err = PetscSectionGetOffset(section, v, &off);CHECK_PETSC_ERROR(err);
-      err = VecGetArray(vec, &a);CHECK_PETSC_ERROR(err);
+      topology::Field<topology::SubMesh>& propertyField = _fieldsPropsStateVars->get(property.name.c_str());
+      PetscSection propertySection = propertyField.petscSection();assert(propertySection);
+      PetscVec propertyVec = propertyField.localVector();assert(propertyVec);
+      PetscScalar *propertyArray = NULL;
+      PetscInt dof, off;
+      err = PetscSectionGetDof(propertySection, v, &dof);CHECK_PETSC_ERROR(err);
+      err = PetscSectionGetOffset(propertySection, v, &off);CHECK_PETSC_ERROR(err);
+      err = VecGetArray(propertyVec, &propertyArray);CHECK_PETSC_ERROR(err);
+      assert(dof <= propertiesVertex.size());
       for(PetscInt d = 0; d < dof; ++d, ++iOff) {
-        a[off+d] += propertiesVertex[iOff];
+        propertyArray[off+d] += propertiesVertex[iOff];
       } // for
+      err = VecRestoreArray(propertyVec, &propertyArray);CHECK_PETSC_ERROR(err);
     } // for
   } // for
   // Close properties database
@@ -205,10 +203,10 @@
     for(PetscInt v = vStart; v < vEnd; ++v) {
       PetscInt coff;
       PetscInt cdof;
-
       err = PetscSectionGetDof(coordSection, v, &cdof);CHECK_PETSC_ERROR(err);
       err = PetscSectionGetOffset(coordSection, v, &coff);CHECK_PETSC_ERROR(err);
       assert(spaceDim == cdof);
+
       for (PetscInt d = 0; d < cdof; ++d) {
 	coordsVertexGlobal[d] = coordArray[coff+d];
       } // for
@@ -233,18 +231,19 @@
         const materials::Metadata::ParamDescription& stateVar = 
           _metadata.getStateVar(i);
         // TODO This needs to be an integer instead of a string
-        topology::Field<topology::SubMesh>& sv = _fieldsPropsStateVars->get(stateVar.name.c_str());
-        PetscSection section = sv.petscSection();
-        Vec          vec     = sv.localVector();
-        PetscScalar *a;
-        PetscInt     dof, off;
-        
-        err = PetscSectionGetDof(section, v, &dof);CHECK_PETSC_ERROR(err);
-        err = PetscSectionGetOffset(section, v, &off);CHECK_PETSC_ERROR(err);
-        err = VecGetArray(vec, &a);CHECK_PETSC_ERROR(err);
+        topology::Field<topology::SubMesh>& stateVarField = _fieldsPropsStateVars->get(stateVar.name.c_str());
+        PetscSection stateVarSection = stateVarField.petscSection();assert(stateVarSection);
+	PetscVec stateVarVec = stateVarField.localVector();assert(stateVarVec);
+        PetscScalar *stateVarArray = NULL;
+        PetscInt dof, off;
+        err = PetscSectionGetDof(stateVarSection, v, &dof);CHECK_PETSC_ERROR(err);
+        err = PetscSectionGetOffset(stateVarSection, v, &off);CHECK_PETSC_ERROR(err);
+        err = VecGetArray(stateVarVec, &stateVarArray);CHECK_PETSC_ERROR(err);
+	assert(dof == stateVarsVertex.size());
         for(PetscInt d = 0; d < dof; ++d, ++iOff) {
-          a[off+d] += stateVarsVertex[iOff];
-        }
+          stateVarArray[off+d] += stateVarsVertex[iOff];
+        } // for
+        err = VecRestoreArray(stateVarVec, &stateVarArray);CHECK_PETSC_ERROR(err);
       } // for
     } // for
     // Close database
@@ -321,38 +320,36 @@
   PetscInt iOff = 0;
 
   for (int i=0; i < _metadata.numProperties(); ++i) {
-    const materials::Metadata::ParamDescription& property = 
-      _metadata.getProperty(i);
+    const materials::Metadata::ParamDescription& property = _metadata.getProperty(i);
     // TODO This needs to be an integer instead of a string
-    topology::Field<topology::SubMesh>& prop = _fieldsPropsStateVars->get(property.name.c_str());
-    PetscSection section = prop.petscSection();
-    Vec          vec     = prop.localVector();
-    PetscScalar *a;
-    PetscInt     dof, off;
-
-    err = PetscSectionGetDof(section, point, &dof);CHECK_PETSC_ERROR(err);
-    err = PetscSectionGetOffset(section, point, &off);CHECK_PETSC_ERROR(err);
-    err = VecGetArray(vec, &a);CHECK_PETSC_ERROR(err);
+    topology::Field<topology::SubMesh>& propertyField = _fieldsPropsStateVars->get(property.name.c_str());
+    PetscSection propertySection = propertyField.petscSection();assert(propertySection);
+    PetscVec propertyVec = propertyField.localVector();assert(propertyVec);
+    PetscScalar *propertyArray = NULL;
+    PetscInt dof, off;
+    err = PetscSectionGetDof(propertySection, point, &dof);CHECK_PETSC_ERROR(err);
+    err = PetscSectionGetOffset(propertySection, point, &off);CHECK_PETSC_ERROR(err);
+    err = VecGetArray(propertyVec, &propertyArray);CHECK_PETSC_ERROR(err);
     for(PetscInt d = 0; d < dof; ++d, ++iOff) {
-      _propsStateVarsVertex[iOff] = a[off+d];
-    }
-  }
+      _propsStateVarsVertex[iOff] = propertyArray[off+d];
+    } // for
+    err = VecRestoreArray(propertyVec, &propertyArray);CHECK_PETSC_ERROR(err);
+  } // for
   for (int i=0; i < _metadata.numStateVars(); ++i) {
-    const materials::Metadata::ParamDescription& stateVar = 
-      _metadata.getStateVar(i);
+    const materials::Metadata::ParamDescription& stateVar = _metadata.getStateVar(i);
     // TODO This needs to be an integer instead of a string
-    topology::Field<topology::SubMesh>& sv = _fieldsPropsStateVars->get(stateVar.name.c_str());
-    PetscSection section = sv.petscSection();
-    Vec          vec     = sv.localVector();
-    PetscScalar *a;
-    PetscInt     dof, off;
-
-    err = PetscSectionGetDof(section, point, &dof);CHECK_PETSC_ERROR(err);
-    err = PetscSectionGetOffset(section, point, &off);CHECK_PETSC_ERROR(err);
-    err = VecGetArray(vec, &a);CHECK_PETSC_ERROR(err);
+    topology::Field<topology::SubMesh>& stateVarField = _fieldsPropsStateVars->get(stateVar.name.c_str());
+    PetscSection stateVarSection = stateVarField.petscSection();assert(stateVarSection);
+    PetscVec stateVarVec = stateVarField.localVector();assert(stateVarVec);
+    PetscScalar *stateVarArray = NULL;
+    PetscInt dof, off;
+    err = PetscSectionGetDof(stateVarSection, point, &dof);CHECK_PETSC_ERROR(err);
+    err = PetscSectionGetOffset(stateVarSection, point, &off);CHECK_PETSC_ERROR(err);
+    err = VecGetArray(stateVarVec, &stateVarArray);CHECK_PETSC_ERROR(err);
     for(PetscInt d = 0; d < dof; ++d, ++iOff) {
-      _propsStateVarsVertex[iOff] = a[off+d];
-    }
+      _propsStateVarsVertex[iOff] = stateVarArray[off+d];
+    } // for
+    err = VecRestoreArray(stateVarVec, &stateVarArray);CHECK_PETSC_ERROR(err);
   } // for
   assert(_propsStateVarsVertex.size() == iOff);
 } // retrievePropsStateVars
@@ -372,10 +369,9 @@
   const PylithScalar* stateVarsVertex = (_varsFiberDim > 0) ?
     &_propsStateVarsVertex[_propsFiberDim] : 0;
 
-  const PylithScalar friction =
-    _calcFriction(t, slip, slipRate, normalTraction,
-		  propertiesVertex, _propsFiberDim,
-		  stateVarsVertex, _varsFiberDim);
+  const PylithScalar friction = _calcFriction(t, slip, slipRate, normalTraction,
+					      propertiesVertex, _propsFiberDim,
+					      stateVarsVertex, _varsFiberDim);
   
   return friction;
 } // calcFriction
@@ -404,38 +400,36 @@
   PetscInt iOff = 0;
 
   for (int i=0; i < _metadata.numProperties(); ++i) {
-    const materials::Metadata::ParamDescription& property = 
-      _metadata.getProperty(i);
+    const materials::Metadata::ParamDescription& property = _metadata.getProperty(i);
     // TODO This needs to be an integer instead of a string
-    topology::Field<topology::SubMesh>& prop = _fieldsPropsStateVars->get(property.name.c_str());
-    PetscSection section = prop.petscSection();
-    Vec          vec     = prop.localVector();
-    PetscScalar *a;
-    PetscInt     dof, off;
-
-    err = PetscSectionGetDof(section, vertex, &dof);CHECK_PETSC_ERROR(err);
-    err = PetscSectionGetOffset(section, vertex, &off);CHECK_PETSC_ERROR(err);
-    err = VecGetArray(vec, &a);CHECK_PETSC_ERROR(err);
+    topology::Field<topology::SubMesh>& propertyField = _fieldsPropsStateVars->get(property.name.c_str());
+    PetscSection propertySection = propertyField.petscSection();assert(propertySection);
+    PetscVec propertyVec = propertyField.localVector();assert(propertyVec);
+    PetscScalar *propertyArray = NULL;
+    PetscInt dof, off;
+    err = PetscSectionGetDof(propertySection, vertex, &dof);CHECK_PETSC_ERROR(err);
+    err = PetscSectionGetOffset(propertySection, vertex, &off);CHECK_PETSC_ERROR(err);
+    err = VecGetArray(propertyVec, &propertyArray);CHECK_PETSC_ERROR(err);
     for(PetscInt d = 0; d < dof; ++d, ++iOff) {
-      a[off+d] = _propsStateVarsVertex[iOff];
-    }
-  }
+      propertyArray[off+d] = _propsStateVarsVertex[iOff];
+    } // for
+    err = VecRestoreArray(propertyVec, &propertyArray);CHECK_PETSC_ERROR(err);
+  } // for
   for (int i=0; i < _metadata.numStateVars(); ++i) {
-    const materials::Metadata::ParamDescription& stateVar = 
-      _metadata.getStateVar(i);
+    const materials::Metadata::ParamDescription& stateVar = _metadata.getStateVar(i);
     // TODO This needs to be an integer instead of a string
-    topology::Field<topology::SubMesh>& sv = _fieldsPropsStateVars->get(stateVar.name.c_str());
-    PetscSection section = sv.petscSection();
-    Vec          vec     = sv.localVector();
-    PetscScalar *a;
-    PetscInt     dof, off;
-
-    err = PetscSectionGetDof(section, vertex, &dof);CHECK_PETSC_ERROR(err);
-    err = PetscSectionGetOffset(section, vertex, &off);CHECK_PETSC_ERROR(err);
-    err = VecGetArray(vec, &a);CHECK_PETSC_ERROR(err);
+    topology::Field<topology::SubMesh>& stateVarField = _fieldsPropsStateVars->get(stateVar.name.c_str());
+    PetscSection stateVarSection = stateVarField.petscSection();assert(stateVarSection);
+    PetscVec stateVarVec = stateVarField.localVector();assert(stateVarVec);
+    PetscScalar *stateVarArray = NULL;
+    PetscInt dof, off;
+    err = PetscSectionGetDof(stateVarSection, vertex, &dof);CHECK_PETSC_ERROR(err);
+    err = PetscSectionGetOffset(stateVarSection, vertex, &off);CHECK_PETSC_ERROR(err);
+    err = VecGetArray(stateVarVec, &stateVarArray);CHECK_PETSC_ERROR(err);
     for(PetscInt d = 0; d < dof; ++d, ++iOff) {
-      a[off+d] = _propsStateVarsVertex[iOff];
-    }
+      stateVarArray[off+d] = _propsStateVarsVertex[iOff];
+    } // for
+    err = VecRestoreArray(stateVarVec, &stateVarArray);CHECK_PETSC_ERROR(err);
   } // for
   assert(_propsStateVarsVertex.size() == iOff);
 } // updateStateVars
@@ -493,12 +487,12 @@
     const materials::Metadata::ParamDescription& property = 
       _metadata.getProperty(i);
     _fieldsPropsStateVars->add(property.name.c_str(), property.name.c_str());
-    topology::Field<topology::SubMesh>& prop = _fieldsPropsStateVars->get(property.name.c_str());
-    prop.newSection(topology::FieldBase::VERTICES_FIELD, property.fiberDim);
-    prop.allocate();
-    prop.vectorFieldType(property.fieldType);
-    prop.scale(propertiesVertex[iScale]);
-    prop.zero();
+    topology::Field<topology::SubMesh>& propertyField = _fieldsPropsStateVars->get(property.name.c_str());
+    propertyField.newSection(topology::FieldBase::VERTICES_FIELD, property.fiberDim);
+    propertyField.allocate();
+    propertyField.vectorFieldType(property.fieldType);
+    propertyField.scale(propertiesVertex[iScale]);
+    propertyField.zero();
     iScale += property.fiberDim;
   } // for
   
@@ -506,12 +500,12 @@
     const materials::Metadata::ParamDescription& stateVar = 
       _metadata.getStateVar(i);
     _fieldsPropsStateVars->add(stateVar.name.c_str(), stateVar.name.c_str());
-    topology::Field<topology::SubMesh>& sv = _fieldsPropsStateVars->get(stateVar.name.c_str());
-    sv.newSection(topology::FieldBase::VERTICES_FIELD, stateVar.fiberDim);
-    sv.allocate();
-    sv.vectorFieldType(stateVar.fieldType);
-    sv.scale(stateVarsVertex[iScale]);
-    sv.zero();
+    topology::Field<topology::SubMesh>& stateVarField = _fieldsPropsStateVars->get(stateVar.name.c_str());
+    stateVarField.newSection(topology::FieldBase::VERTICES_FIELD, stateVar.fiberDim);
+    stateVarField.allocate();
+    stateVarField.vectorFieldType(stateVar.fieldType);
+    stateVarField.scale(stateVarsVertex[iScale]);
+    stateVarField.zero();
     iScale += stateVar.fiberDim;
   } // for
   assert(_varsFiberDim >= 0);

Modified: short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-03-08 13:32:30 UTC (rev 21470)
+++ short/3D/PyLith/trunk/unittests/libtests/friction/TestFrictionModel.cc	2013-03-08 17:25:46 UTC (rev 21471)
@@ -48,12 +48,6 @@
 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;
-typedef pylith::topology::SubMesh::RealUniformSection SubRealUniformSection;
-
-// ----------------------------------------------------------------------
 // Test label()
 void
 pylith::friction::TestFrictionModel::testLabel(void)
@@ -89,7 +83,7 @@
   StaticFriction friction;
   friction.dbProperties(&db);
   
-  CPPUNIT_ASSERT(0 != friction._dbProperties);
+  CPPUNIT_ASSERT(friction._dbProperties);
   CPPUNIT_ASSERT_EQUAL(label, std::string(friction._dbProperties->label()));
 } // testDBProperties
 
@@ -105,7 +99,7 @@
   StaticFriction friction;
   friction.dbInitialState(&db);
   
-  CPPUNIT_ASSERT(0 != friction._dbInitialState);
+  CPPUNIT_ASSERT(friction._dbInitialState);
   CPPUNIT_ASSERT_EQUAL(label, std::string(friction._dbInitialState->label()));
 } // testDBStateVars
 
@@ -121,7 +115,7 @@
   StaticFriction friction;
   friction.normalizer(normalizer);
   
-  CPPUNIT_ASSERT(0 != friction._normalizer);
+  CPPUNIT_ASSERT(friction._normalizer);
   CPPUNIT_ASSERT_EQUAL(lengthScale, friction._normalizer->lengthScale());
 } // testNormalizer
 
@@ -134,19 +128,17 @@
   faults::FaultCohesiveDyn fault;
   StaticFriction friction;
   StaticFrictionData data;
-  PetscErrorCode     err;
   _initialize(&mesh, &fault, &friction, &data);
-  CPPUNIT_ASSERT(0 != friction._fieldsPropsStateVars);
+  CPPUNIT_ASSERT(friction._fieldsPropsStateVars);
 
   const PylithScalar propertiesE[2*2] = {
     0.6, 1000000/data.pressureScale,
     0.4, 1000000/data.pressureScale,
   };
 
-  DM       faultDMMesh = fault.faultMesh().dmMesh();
+  PetscDM faultDMMesh = fault.faultMesh().dmMesh();assert(faultDMMesh);
   PetscInt vStart, vEnd;
-
-  assert(faultDMMesh);
+  PetscErrorCode err;
   err = DMPlexGetDepthStratum(faultDMMesh, 0, &vStart, &vEnd);CHECK_PETSC_ERROR(err);
 
   const PylithScalar tolerance = 1.0e-06;
@@ -159,18 +151,16 @@
     for (int i = 0; i < numProperties; ++i, ++index) {
       const materials::Metadata::ParamDescription& property = metadata.getProperty(i);
       topology::Field<topology::SubMesh>& prop = friction._fieldsPropsStateVars->get(property.name.c_str());
-      PetscSection fieldsSection = prop.petscSection();
-      Vec          fieldsVec     = prop.localVector();
-      PetscScalar *fieldsArray;
-
-      CPPUNIT_ASSERT(fieldsSection);CPPUNIT_ASSERT(fieldsVec);
+      PetscSection fieldsSection = prop.petscSection();CPPUNIT_ASSERT(fieldsSection);
+      PetscVec fieldsVec = prop.localVector();CPPUNIT_ASSERT(fieldsVec);
+      PetscScalar *fieldsArray = NULL;
       err = VecGetArray(fieldsVec, &fieldsArray);CHECK_PETSC_ERROR(err);
-      PetscInt dof, off;
 
+      PetscInt dof, off;
       err = PetscSectionGetDof(fieldsSection, v, &dof);CHECK_PETSC_ERROR(err);
       err = PetscSectionGetOffset(fieldsSection, v, &off);CHECK_PETSC_ERROR(err);
       CPPUNIT_ASSERT(dof == 1);
-      if (0 != propertiesE[index]) {
+      if (0.0 != propertiesE[index]) {
         CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, fieldsArray[off]/propertiesE[index], tolerance);
       } else {
         CPPUNIT_ASSERT_DOUBLES_EQUAL(propertiesE[index], fieldsArray[off], tolerance);
@@ -198,30 +188,27 @@
   StaticFrictionData data;
   _initialize(&mesh, &fault, &friction, &data);
 
-  const topology::Field<topology::SubMesh>& field = 
-    friction.getField("friction_coefficient");
+  const topology::Field<topology::SubMesh>& field = friction.getField("friction_coefficient");
 
-  DM             dmMesh = field.mesh().dmMesh();
-  PetscInt       vStart, vEnd;
+  PetscDM dmMesh = field.mesh().dmMesh();CPPUNIT_ASSERT(dmMesh);
+  PetscInt vStart, vEnd;
   PetscErrorCode err;
-
-  assert(dmMesh);
   err = DMPlexGetDepthStratum(dmMesh, 0, &vStart, &vEnd);CHECK_PETSC_ERROR(err);
 
-  PetscSection fieldSection = field.petscSection();
-  Vec          fieldVec     = field.localVector();
-  PetscScalar *fieldArray;
+  PetscSection fieldSection = field.petscSection();CPPUNIT_ASSERT(fieldSection);
+  PetscVec fieldVec = field.localVector();CPPUNIT_ASSERT(fieldVec);
+  PetscScalar *fieldArray = NULL;
+  err = VecGetArray(fieldVec, &fieldArray);CHECK_PETSC_ERROR(err);
+
   const PylithScalar tolerance = 1.0e-06;
   int index = 0;
 
-  CPPUNIT_ASSERT(fieldSection);CPPUNIT_ASSERT(fieldVec);
-  err = VecGetArray(fieldVec, &fieldArray);CHECK_PETSC_ERROR(err);
   for(PetscInt v = vStart; v < vEnd; ++v) {
     PetscInt dof, off;
-
     err = PetscSectionGetDof(fieldSection, v, &dof);CHECK_PETSC_ERROR(err);
     err = PetscSectionGetOffset(fieldSection, v, &off);CHECK_PETSC_ERROR(err);
     CPPUNIT_ASSERT_EQUAL(fiberDim, dof);
+
     for(int i = 0; i < fiberDim; ++i, ++index)
       if (0 != fieldE[index])
         CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, fieldArray[off+i]/fieldE[index], tolerance);
@@ -306,9 +293,6 @@
 
   const PylithScalar tolerance = 1.0e-6;
   if (0.0 != frictionE) {
-    std::cout << "frictionE: " << frictionE
-	      << ", frictionV: " << frictionV
-	      << std::endl;
     CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, frictionV/frictionE, tolerance);
   } else {
     CPPUNIT_ASSERT_DOUBLES_EQUAL(frictionE, frictionV, tolerance);
@@ -391,17 +375,16 @@
     for(PetscInt i = 0; i < numStateVars; ++i) {
       const materials::Metadata::ParamDescription& stateVar = metadata.getStateVar(i);
       topology::Field<topology::SubMesh>& sv = friction._fieldsPropsStateVars->get(stateVar.name.c_str());
-      PetscSection fieldsSection = sv.petscSection();
-      Vec          fieldsVec     = sv.localVector();
-      PetscScalar *fieldsArray;
+      PetscSection fieldsSection = sv.petscSection();CPPUNIT_ASSERT(fieldsSection);
+      PetscVec fieldsVec     = sv.localVector();CPPUNIT_ASSERT(fieldsVec);
+      PetscScalar *fieldsArray = NULL;
       PetscErrorCode err;
-
-      CPPUNIT_ASSERT(fieldsSection);CPPUNIT_ASSERT(fieldsVec);
       err = VecGetArray(fieldsVec, &fieldsArray);CHECK_PETSC_ERROR(err);
-      PetscInt dof, off;
 
+      PetscInt dof, off;
       err = PetscSectionGetDof(fieldsSection, vertex, &dof);CHECK_PETSC_ERROR(err);
       err = PetscSectionGetOffset(fieldsSection, vertex, &off);CHECK_PETSC_ERROR(err);
+
       CPPUNIT_ASSERT(dof == 1);
       CPPUNIT_ASSERT_DOUBLES_EQUAL(stateVarsUpdatedE[i], fieldsArray[off], tolerance);
       err = VecRestoreArray(fieldsVec, &fieldsArray);CHECK_PETSC_ERROR(err);
@@ -433,8 +416,8 @@
 void
 pylith::friction::TestFrictionModel::testDBToProperties(void)
 { // testDBToProperties
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
   
   // Check to make sure names of Metadata values match names of test
   // data values (consistency check).
@@ -478,8 +461,8 @@
 void
 pylith::friction::TestFrictionModel::testNonDimProperties(void)
 { // testNonDimProperties
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
   
   const int numLocs = _data->numLocs;
   const int propertiesSize = _data->numPropsVertex;
@@ -513,8 +496,8 @@
 void
 pylith::friction::TestFrictionModel::testDimProperties(void)
 { // testDimProperties
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
   
   const int numLocs = _data->numLocs;
   const int propertiesSize = _data->numPropsVertex;
@@ -547,8 +530,8 @@
 void
 pylith::friction::TestFrictionModel::testDBToStateVars(void)
 { // testDBToStateVars
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
   
   // Check to make sure names of Metadata values match names of test
   // data values (consistency check).
@@ -595,8 +578,8 @@
 void
 pylith::friction::TestFrictionModel::testNonDimStateVars(void)
 { // testNonDimStateVars
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
   
   const int numLocs = _data->numLocs;
   const int stateVarsSize = _data->numVarsVertex;
@@ -630,8 +613,8 @@
 void
 pylith::friction::TestFrictionModel::testDimStateVars(void)
 { // testDimStateVars
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
   
   const int numLocs = _data->numLocs;
   const int stateVarsSize = _data->numVarsVertex;
@@ -665,8 +648,8 @@
 void
 pylith::friction::TestFrictionModel::test_calcFriction(void)
 { // _testCalcFriction
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
 
   const int numLocs = _data->numLocs;
   const int numPropsVertex = _data->numPropsVertex;
@@ -707,8 +690,8 @@
 void
 pylith::friction::TestFrictionModel::test_updateStateVars(void)
 { // test_updateStateVars
-  CPPUNIT_ASSERT(0 != _friction);
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_friction);
+  CPPUNIT_ASSERT(_data);
 
   const bool computeStateVars = true;
 
@@ -772,16 +755,15 @@
 // ----------------------------------------------------------------------
 // Setup mesh and material.
 void
-pylith::friction::TestFrictionModel::_initialize(
-					  topology::Mesh* mesh,
-					  faults::FaultCohesiveDyn* fault,
-					  StaticFriction* friction,
-					  const StaticFrictionData* data)
+pylith::friction::TestFrictionModel::_initialize(topology::Mesh* mesh,
+						 faults::FaultCohesiveDyn* fault,
+						 StaticFriction* friction,
+						 const StaticFrictionData* data)
 { // _initialize
-  CPPUNIT_ASSERT(0 != mesh);
-  CPPUNIT_ASSERT(0 != fault);
-  CPPUNIT_ASSERT(0 != friction);
-  CPPUNIT_ASSERT(0 != data);
+  CPPUNIT_ASSERT(mesh);
+  CPPUNIT_ASSERT(fault);
+  CPPUNIT_ASSERT(friction);
+  CPPUNIT_ASSERT(data);
 
   meshio::MeshIOAscii iohandler;
   iohandler.filename("data/tri3.mesh");
@@ -819,11 +801,16 @@
 
   const bool flipFault = false;
   const char* label = "fault";
-  int firstFaultVertex = 0;
-  int firstLagrangeVertex = mesh->sieveMesh()->getIntSection(label)->size();
-  int firstFaultCell = mesh->sieveMesh()->getIntSection(label)->size();
+
+  PetscInt labelSize;
+  PetscErrorCode err;
+  err = DMPlexGetStratumSize(mesh->dmMesh(), label, 1, &labelSize);CHECK_PETSC_ERROR(err);
+
+  PetscInt firstFaultVertex    = 0;
+  PetscInt firstLagrangeVertex = labelSize;
+  PetscInt firstFaultCell      = labelSize;
   if (fault->useLagrangeConstraints())
-    firstFaultCell += mesh->sieveMesh()->getIntSection(label)->size();
+    firstFaultCell += labelSize;
   fault->id(100);
   fault->label(label);
   fault->quadrature(&quadrature);



More information about the CIG-COMMITS mailing list