[cig-commits] r21925 - in short/3D/PyLith/trunk: libsrc/pylith/feassemble unittests/libtests/feassemble unittests/libtests/feassemble/data

brad at geodynamics.org brad at geodynamics.org
Wed Apr 24 12:55:25 PDT 2013


Author: brad
Date: 2013-04-24 12:55:25 -0700 (Wed, 24 Apr 2013)
New Revision: 21925

Removed:
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
Modified:
   short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
Log:
Code cleanup. Add scales to unit tests.

Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -404,9 +404,8 @@
   assert(dt > 0);
 
   // Setup field visitors.
+  scalar_array valuesIJ(numBasis);
   topology::VecVisitorMesh jacobianVisitor(*jacobian);
-  PetscScalar* jacobianCell = NULL;
-  PetscInt jacobianSize = 0;
 
   topology::CoordsVisitor coordsVisitor(dmMesh);
   PetscScalar* coordsCell = NULL;
@@ -441,24 +440,31 @@
     const scalar_array& density = _material->calcDensity();
 
     // Compute Jacobian for inertial terms
-    for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
-      const PylithScalar wt = 
-	quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad] / dt2;
-      for (int iBasis=0, iQ=iQuad*numBasis; iBasis < numBasis; ++iBasis) {
-        const PylithScalar valI = wt*basis[iQ+iBasis];
-        for (int jBasis=0; jBasis < numBasis; ++jBasis) {
-          const PylithScalar valIJ = valI * basis[iQ+jBasis];
-          for (int iDim=0; iDim < spaceDim; ++iDim) {
-            const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
-            const int jBlock = (jBasis*spaceDim + iDim);
-            _cellMatrix[iBlock+jBlock] += valIJ;
-          } // for
-        } // for
+    valuesIJ = 0.0;
+    for (int iQuad = 0; iQuad < numQuadPts; ++iQuad) {
+      const PylithScalar wt = quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad] / dt2;
+      const int iQ = iQuad * numBasis;
+      PylithScalar valJ = 0.0;
+      for (int jBasis = 0; jBasis < numBasis; ++jBasis) {
+        valJ += basis[iQ + jBasis];
       } // for
+      valJ *= wt;
+      for (int iBasis = 0; iBasis < numBasis; ++iBasis) {
+        valuesIJ[iBasis] += basis[iQ + iBasis] * valJ;
+      } // for
     } // for
-    PetscLogFlops(numQuadPts*(3+numBasis*(1+numBasis*(1+spaceDim))));
-    _lumpCellMatrix();
+    for (int iBasis = 0; iBasis < numBasis; ++iBasis) {
+      for (int iDim = 0; iDim < spaceDim; ++iDim) {
+        _cellVector[iBasis*spaceDim+iDim] += valuesIJ[iBasis];
+      } // for
+    } // for
     
+#if defined(DETAILED_EVENT_LOGGING)
+    PetscLogFlops(numQuadPts*(4 + numBasis*3) + numBasis*spaceDim);
+    _logger->eventEnd(computeEvent);
+    _logger->eventBegin(updateEvent);
+#endif
+    
     // Assemble cell contribution into lumped matrix.
     jacobianVisitor.setClosure(&_cellVector[0], _cellVector.size(), cell, ADD_VALUES);
   } // for

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am	2013-04-24 19:55:25 UTC (rev 21925)
@@ -53,18 +53,7 @@
 	TestIntegrator.cc \
 	TestIntegratorElasticity.cc \
 	TestElasticityExplicit.cc \
-	TestElasticityExplicit1DLinear.cc \
-	TestElasticityExplicit1DQuadratic.cc \
-	TestElasticityExplicit2DLinear.cc \
-	TestElasticityExplicit2DQuadratic.cc \
-	TestElasticityExplicit3DLinear.cc \
-	TestElasticityExplicit3DQuadratic.cc \
-	TestElasticityExplicitGrav1DLinear.cc \
-	TestElasticityExplicitGrav1DQuadratic.cc \
-	TestElasticityExplicitGrav2DLinear.cc \
-	TestElasticityExplicitGrav2DQuadratic.cc \
-	TestElasticityExplicitGrav3DLinear.cc \
-	TestElasticityExplicitGrav3DQuadratic.cc \
+	TestElasticityExplicitCases.cc \
 	TestElasticityExplicitTri3.cc \
 	TestElasticityExplicitTet4.cc \
 	TestElasticityImplicit.cc \
@@ -82,18 +71,7 @@
 	TestElasticityImplicitGrav3DQuadratic.cc \
 	TestIntegratorElasticityLgDeform.cc \
 	TestElasticityExplicitLgDeform.cc \
-	TestElasticityExplicitLgDeform1DLinear.cc \
-	TestElasticityExplicitLgDeform1DQuadratic.cc \
-	TestElasticityExplicitLgDeform2DLinear.cc \
-	TestElasticityExplicitLgDeform2DQuadratic.cc \
-	TestElasticityExplicitLgDeform3DLinear.cc \
-	TestElasticityExplicitLgDeform3DQuadratic.cc \
-	TestElasticityExplicitLgDeformGrav1DLinear.cc \
-	TestElasticityExplicitLgDeformGrav1DQuadratic.cc \
-	TestElasticityExplicitLgDeformGrav2DLinear.cc \
-	TestElasticityExplicitLgDeformGrav2DQuadratic.cc \
-	TestElasticityExplicitLgDeformGrav3DLinear.cc \
-	TestElasticityExplicitLgDeformGrav3DQuadratic.cc \
+	TestElasticityExplicitLgDeformCases.cc \
 	TestElasticityImplicitLgDeform.cc \
 	TestElasticityImplicitLgDeform1DLinear.cc \
 	TestElasticityImplicitLgDeform1DQuadratic.cc \
@@ -114,18 +92,7 @@
 noinst_HEADERS = \
 	TestCellGeometry.hh \
 	TestElasticityExplicit.hh \
-	TestElasticityExplicit1DLinear.hh \
-	TestElasticityExplicit1DQuadratic.hh \
-	TestElasticityExplicit2DLinear.hh \
-	TestElasticityExplicit2DQuadratic.hh \
-	TestElasticityExplicit3DLinear.hh \
-	TestElasticityExplicit3DQuadratic.hh \
-	TestElasticityExplicitGrav1DLinear.hh \
-	TestElasticityExplicitGrav1DQuadratic.hh \
-	TestElasticityExplicitGrav2DLinear.hh \
-	TestElasticityExplicitGrav2DQuadratic.hh \
-	TestElasticityExplicitGrav3DLinear.hh \
-	TestElasticityExplicitGrav3DQuadratic.hh \
+	TestElasticityExplicitCases.cc \
 	TestElasticityExplicitTri3.hh \
 	TestElasticityExplicitTet4.hh \
 	TestElasticityImplicit.hh \
@@ -143,18 +110,7 @@
 	TestElasticityImplicitGrav3DQuadratic.hh \
 	TestIntegratorElasticityLgDeform.hh \
 	TestElasticityExplicitLgDeform.hh \
-	TestElasticityExplicitLgDeform1DLinear.hh \
-	TestElasticityExplicitLgDeform1DQuadratic.hh \
-	TestElasticityExplicitLgDeform2DLinear.hh \
-	TestElasticityExplicitLgDeform2DQuadratic.hh \
-	TestElasticityExplicitLgDeform3DLinear.hh \
-	TestElasticityExplicitLgDeform3DQuadratic.hh \
-	TestElasticityExplicitLgDeformGrav1DLinear.hh \
-	TestElasticityExplicitLgDeformGrav1DQuadratic.hh \
-	TestElasticityExplicitLgDeformGrav2DLinear.hh \
-	TestElasticityExplicitLgDeformGrav2DQuadratic.hh \
-	TestElasticityExplicitLgDeformGrav3DLinear.hh \
-	TestElasticityExplicitLgDeformGrav3DQuadratic.hh \
+	TestElasticityExplicitLgDeformCases.hh \
 	TestElasticityImplicitLgDeform.hh \
 	TestElasticityImplicitLgDeform1DLinear.hh \
 	TestElasticityImplicitLgDeform1DQuadratic.hh \

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -27,6 +27,8 @@
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/SubMesh.hh" // USES Mesh
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -46,18 +48,18 @@
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit );
 
 // ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
 // Setup testing data.
 void
 pylith::feassemble::TestElasticityExplicit::setUp(void)
 { // setUp
+  PYLITH_METHOD_BEGIN;
+
   _quadrature = new Quadrature<topology::Mesh>();
   _data = 0;
   _material = 0;
   _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // setUp
 
 // ----------------------------------------------------------------------
@@ -65,10 +67,14 @@
 void
 pylith::feassemble::TestElasticityExplicit::tearDown(void)
 { // tearDown
+  PYLITH_METHOD_BEGIN;
+
   delete _data; _data = 0;
   delete _quadrature; _quadrature = 0;
   delete _material; _material = 0;
   delete _gravityField; _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // tearDown
 
 // ----------------------------------------------------------------------
@@ -76,7 +82,11 @@
 void
 pylith::feassemble::TestElasticityExplicit::testConstructor(void)
 { // testConstructor
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
+
+  PYLITH_METHOD_END;
 } // testConstructor
 
 // ----------------------------------------------------------------------
@@ -84,6 +94,8 @@
 void
 pylith::feassemble::TestElasticityExplicit::testTimeStep(void)
 { // testTimeStep
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
 
   const PylithScalar dt1 = 2.0;
@@ -92,6 +104,8 @@
   integrator.timeStep(dt1);
   CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
   CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+
+  PYLITH_METHOD_END;
 } // testTimeStep
 
 // ----------------------------------------------------------------------
@@ -99,11 +113,15 @@
 void
 pylith::feassemble::TestElasticityExplicit::testNormViscosity(void)
 { // testNormViscosity
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
 
   const PylithScalar viscosity = 1.234;
   integrator.normViscosity(viscosity);
   CPPUNIT_ASSERT_EQUAL(viscosity, integrator._normViscosity);
+
+  PYLITH_METHOD_END;
 } // testTimeStep
 
 // ----------------------------------------------------------------------
@@ -111,6 +129,8 @@
 void
 pylith::feassemble::TestElasticityExplicit::testMaterial(void)
 { // testMaterial
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
 
   materials::ElasticIsotropic3D material;
@@ -125,6 +145,8 @@
   const PylithScalar dt = 2.0;
   integrator.timeStep(dt);
   CPPUNIT_ASSERT_EQUAL(dt, integrator._material->timeStep());
+
+  PYLITH_METHOD_END;
 } // testMaterial
 
 // ----------------------------------------------------------------------
@@ -132,6 +154,8 @@
 void
 pylith::feassemble::TestElasticityExplicit::testNeedNewJacobian(void)
 { // testNeedNewJacobian
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
 
   materials::ElasticIsotropic3D material;
@@ -139,6 +163,8 @@
   CPPUNIT_ASSERT_EQUAL(true, integrator.needNewJacobian());
   integrator._needNewJacobian = false;
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());  
+
+  PYLITH_METHOD_END;
 } // testNeedNewJacobian
 
 // ----------------------------------------------------------------------
@@ -146,13 +172,16 @@
 void 
 pylith::feassemble::TestElasticityExplicit::testInitialize(void)
 { // testInitialize
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicit integrator;
   topology::SolutionFields fields(mesh);
   _initialize(&mesh, &integrator, &fields);
 
+  PYLITH_METHOD_END;
 } // testInitialize
 
 // ----------------------------------------------------------------------
@@ -160,8 +189,10 @@
 void
 pylith::feassemble::TestElasticityExplicit::testIntegrateResidual(void)
 { // testIntegrateResidual
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicit integrator;
   topology::SolutionFields fields(mesh);
@@ -171,34 +202,42 @@
   const PylithScalar t = 1.0;
   integrator.integrateResidual(residual, t, &fields);
 
-  const PylithScalar* valsE = _data->valsResidual;
-  const int sizeE = _data->spaceDim * _data->numVertices;
+  const PylithScalar* valsE = _data->valsResidual;CPPUNIT_ASSERT(valsE);
 
-  PetscSection   residualSection = residual.petscSection();
-  Vec            residualVec     = residual.localVector();
-  PetscScalar   *vals;
-  PetscInt       size;
-  PetscErrorCode err;
-
-  CPPUNIT_ASSERT(residualSection);
-  err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
-  err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
 #if 0 // DEBUGGING
   residual.view("RESIDUAL");
   std::cout << "EXPECTED RESIDUAL" << std::endl;
+  const int size = _data->numVertices * _data->spaceDim;
   for (int i=0; i < size; ++i)
     std::cout << "  " << valsE[i] << std::endl;
 #endif
 
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+  topology::VecVisitorMesh residualVisitor(residual);
+  const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+  const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+  const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
   const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-  err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = residualVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
@@ -206,8 +245,10 @@
 void
 pylith::feassemble::TestElasticityExplicit::testIntegrateJacobian(void)
 { // testIntegrateJacobian
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicit integrator;
   topology::SolutionFields fields(mesh);
@@ -225,8 +266,7 @@
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
   jacobian.complete();
 
-  const PylithScalar* valsE = _data->valsJacobian;
-  const int sizeE = _data->numVertices * _data->spaceDim;
+  const PylithScalar* valsE = _data->valsJacobian;CPPUNIT_ASSERT(valsE);
 
 #if 0 // DEBUGGING
   // TEMPORARY
@@ -240,24 +280,31 @@
   } // for
 #endif // DEBUGGING
 
-  PetscSection jacobianSection = jacobian.petscSection();
-  Vec          jacobianVec     = jacobian.localVector();
-  PetscScalar       *vals;
-  PetscInt           size;
-  PetscErrorCode     err;
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
 
-  CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
-  err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
+  topology::VecVisitorMesh jacobianVisitor(jacobian);
+  const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
 
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-  err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+  const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
+
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = jacobianVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
@@ -265,6 +312,8 @@
 void 
 pylith::feassemble::TestElasticityExplicit::testUpdateStateVars(void)
 { // testUpdateStateVars
+  PYLITH_METHOD_BEGIN;
+
   CPPUNIT_ASSERT(_data);
 
   topology::Mesh mesh;
@@ -274,6 +323,8 @@
 
   const PylithScalar t = 1.0;
   integrator.updateStateVars(t, &fields);
+
+  PYLITH_METHOD_END;
 } // testUpdateStateVars
 
 // ----------------------------------------------------------------------
@@ -281,6 +332,8 @@
 void
 pylith::feassemble::TestElasticityExplicit::testStableTimeStep(void)
 { // testStableTimeStep
+  PYLITH_METHOD_BEGIN;
+
   CPPUNIT_ASSERT(_data);
 
   topology::Mesh mesh;
@@ -290,80 +343,49 @@
 
   const PylithScalar dtStable = integrator.stableTimeStep(mesh);
   const PylithScalar tolerance = 1.0e-6;
-  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit, tolerance);
+  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit*_data->timeScale, tolerance);
+
+  PYLITH_METHOD_END;
 } // testStableTimeStep
 
-extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
-extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
 
 // ----------------------------------------------------------------------
+extern PetscErrorCode DMPlexBuildFromCellList_Private(PetscDM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
+extern PetscErrorCode DMPlexBuildCoordinates_Private(PetscDM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
+
 // Initialize elasticity integrator.
 void
-pylith::feassemble::TestElasticityExplicit::_initialize(
-					 topology::Mesh* mesh,
-					 ElasticityExplicit* const integrator,
-					 topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicit::_initialize(topology::Mesh* mesh,
+							ElasticityExplicit* const integrator,
+							topology::SolutionFields* fields)
 { // _initialize
-  CPPUNIT_ASSERT(0 != mesh);
-  CPPUNIT_ASSERT(0 != integrator);
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _material);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(mesh);
+  CPPUNIT_ASSERT(integrator);
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_material);
+
   const int spaceDim = _data->spaceDim;
   const PylithScalar dt = _data->dt;
 
   // Setup mesh
-  mesh->createSieveMesh(_data->cellDim);
-  const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
-  CPPUNIT_ASSERT(!sieveMesh.isNull());
-  ALE::Obj<SieveMesh::sieve_type> sieve = 
-    new SieveMesh::sieve_type(mesh->comm());
-  CPPUNIT_ASSERT(!sieve.isNull());
-
   mesh->createDMMesh(_data->cellDim);
-  DM dmMesh = mesh->dmMesh();
-  CPPUNIT_ASSERT(dmMesh);
+  PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
 
   // Cells and vertices
   const bool interpolate = false;
-  ALE::Obj<SieveFlexMesh::sieve_type> s = 
-    new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-  
-  ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s, 
-					      _data->cellDim, _data->numCells,
-                                              const_cast<int*>(_data->cells), 
-					      _data->numVertices,
-                                              interpolate, _data->numBasis);
-  std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
-  ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
-  sieveMesh->setSieve(sieve);
-  sieveMesh->stratify();
-  ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim, 
-						 _data->vertices);
   PetscErrorCode err;
-
   err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
   err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
 
   // Material ids
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->heightStratum(0);
-  CPPUNIT_ASSERT(!cells.isNull());
-  const ALE::Obj<SieveMesh::label_type>& labelMaterials = 
-    sieveMesh->createLabel("material-id");
-  CPPUNIT_ASSERT(!labelMaterials.isNull());
-  int i = 0;
-  for(SieveMesh::label_sequence::iterator e_iter=cells->begin(); 
-      e_iter != cells->end();
-      ++e_iter)
-    sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
   PetscInt cStart, cEnd, c;
-
   err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
   for(PetscInt c = cStart; c < cEnd; ++c) {
     err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
-  }
+  } // for
 
   // Setup quadrature
   _quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
@@ -373,11 +395,22 @@
 			  _data->quadWts, _data->numQuadPts,
 			  spaceDim);
 
-  spatialdata::units::Nondimensional normalizer;
+  // Setup coordinate system.
   spatialdata::geocoords::CSCart cs;
   cs.setSpaceDim(spaceDim);
   cs.initialize();
   mesh->coordsys(&cs);
+
+  // Setup scales.
+  const PylithScalar timeScale = _data->timeScale;
+  const PylithScalar lengthScale = _data->lengthScale;
+  const PylithScalar velScale = lengthScale / timeScale;
+  const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+  spatialdata::units::Nondimensional normalizer;
+  normalizer.lengthScale(_data->lengthScale);
+  normalizer.pressureScale(_data->pressureScale);
+  normalizer.densityScale(_data->densityScale);
+  normalizer.timeScale(_data->timeScale);
   mesh->nondimensionalize(normalizer);
 
   // Setup material
@@ -393,12 +426,12 @@
 
   integrator->quadrature(_quadrature);
   integrator->gravityField(_gravityField);
-  integrator->timeStep(_data->dt);
+  integrator->timeStep(_data->dt / _data->timeScale);
   integrator->material(_material);
   integrator->initialize(*mesh);
 
   // Setup fields
-  CPPUNIT_ASSERT(0 != fields);
+  CPPUNIT_ASSERT(fields);
   fields->add("residual", "residual");
   fields->add("dispIncr(t->t+dt)", "displacement_increment");
   fields->add("disp(t)", "displacement");
@@ -413,43 +446,56 @@
   residual.zero();
   fields->copyLayout("residual");
 
-  const int fieldSize = spaceDim * _data->numVertices;
+  topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+  PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
 
-  scalar_array velVertex(spaceDim);
-  scalar_array accVertex(spaceDim);
+  topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+  PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
 
-  PetscSection dispTSectionP     = fields->get("disp(t)").petscSection();
-  Vec          dispTVec          = fields->get("disp(t)").localVector();
-  CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
-  PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
-  Vec          dispTIncrVec      = fields->get("dispIncr(t->t+dt)").localVector();
-  CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
-  PetscSection dispTmdtSectionP  = fields->get("disp(t-dt)").petscSection();
-  Vec          dispTmdtVec       = fields->get("disp(t-dt)").localVector();
-  CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
-  PetscSection velSectionP       = fields->get("velocity(t)").petscSection();
-  Vec          velVec            = fields->get("velocity(t)").localVector();
-  CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
-  PetscSection accSectionP       = fields->get("acceleration(t)").petscSection();
-  Vec          accVec            = fields->get("acceleration(t)").localVector();
-  CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
-  PetscInt offset = _data->numCells;
-  for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+  topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+  PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+  topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+  PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+  topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+  PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  
+  for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+    const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+    const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+    const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+    const PetscInt voff = velVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+    const PetscInt aoff = accVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
     for(int iDim=0; iDim < spaceDim; ++iDim) {
-      velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
-                         _data->fieldT[iVertex*spaceDim+iDim] -
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
-      accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
-                         _data->fieldT[iVertex*spaceDim+iDim] +
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+      dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+      dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+      dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+      velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+			     _data->fieldT[iVertex*spaceDim+iDim] -
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+      accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+			     _data->fieldT[iVertex*spaceDim+iDim] +
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
     } // for
-    err = DMPlexVecSetClosure(dmMesh, dispTSectionP,     dispTVec,     iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim],     INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP,  dispTmdtVec,  iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim],  INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, velSectionP,       velVec,       iVertex+offset, &velVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, accSectionP,       accVec,       iVertex+offset, &accVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
   } // for
 
+  PYLITH_METHOD_END;
 } // _initialize
 
 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicit1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit1DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit1DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitData1DLinear();
-  _gravityField = 0;
-  GeometryLine1D geometry;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  _quadrature->refGeometry(&geometry);
-  _material = new materials::ElasticStrain1D;
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicit1dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicit1DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicit1DLinear :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit1DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicit1DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-  CPPUNIT_TEST( testStableTimeStep );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicit1DLinear
-
-#endif // pylith_feassemble_testelasticityexplicit1dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicit1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature1D
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit1DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit1DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitData1DQuadratic();
-  _gravityField = 0;
-  GeometryLine1D geometry;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  _quadrature->refGeometry(&geometry);
-  _material = new materials::ElasticStrain1D;
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicit1dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicit1DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicit1DQuadratic :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit1DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicit1DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-  CPPUNIT_TEST( testStableTimeStep );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicit1DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicit1dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicit2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit2DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit2DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitData2DLinear();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicit2dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicit2DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicit2DLinear :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit2DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicit2DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-  CPPUNIT_TEST( testStableTimeStep );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicit2DLinear
-
-#endif // pylith_feassemble_testelasticityexplicit2dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicit2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit2DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit2DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitData2DQuadratic();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 2-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicit2dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicit2DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicit2DQuadratic :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit2DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicit2DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-  CPPUNIT_TEST( testStableTimeStep );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicit2DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicit2dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicit3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit3DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit3DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitData3DLinear();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicit3dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicit3DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicit3DLinear :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit3DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicit3DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-  CPPUNIT_TEST( testStableTimeStep );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicit3DLinear
-
-#endif // pylith_feassemble_testelasticityexplicit3dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicit3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit3DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit3DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitData3DQuadratic();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 3-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicit3dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicit3DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicit3DQuadratic :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit3DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicit3DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-  CPPUNIT_TEST( testStableTimeStep );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicit3DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicit3dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitGrav1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav1DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav1DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitGravData1DLinear();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryLine1D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticStrain1D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitgrav1dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitGrav1DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav1DLinear :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit1DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav1DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitGrav1DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitgrav1dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitGrav1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav1DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav1DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitGravData1DQuadratic();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryLine1D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticStrain1D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitgrav1dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitGrav1DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav1DQuadratic :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit1DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav1DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitGrav1DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitgrav1dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitGrav2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav2DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav2DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitGravData2DLinear();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 2-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitgrav2dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitGrav2DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav2DLinear :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit2DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav2DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitGrav2DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitgrav2dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitGrav2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav2DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav2DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitGravData2DQuadratic();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 2-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitgrav2dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitGrav2DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav2DQuadratic :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit2DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav2DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitGrav2DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitgrav2dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitGrav3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav3DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav3DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitGravData3DLinear();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  _gravityField->gravAcceleration(g);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitgrav3dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitGrav3DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav3DLinear :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit3DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav3DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitGrav3DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitgrav3dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitGrav3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav3DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav3DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicit::setUp();
-
-  _data = new ElasticityExplicitGravData3DQuadratic();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  _gravityField->gravAcceleration(g);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitgrav3dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitGrav3DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav3DQuadratic :
-  public TestElasticityExplicit
-{ // class TestElasticityExplicit3DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav3DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitGrav3DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitgrav3dquadratic_hh
-
-
-// End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -26,6 +26,8 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/SubMesh.hh" // USES SubMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
@@ -42,18 +44,18 @@
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform );
 
 // ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
 // Setup testing data.
 void
 pylith::feassemble::TestElasticityExplicitLgDeform::setUp(void)
 { // setUp
+  PYLITH_METHOD_BEGIN;
+
   _quadrature = new Quadrature<topology::Mesh>();
   _data = 0;
   _material = 0;
   _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // setUp
 
 // ----------------------------------------------------------------------
@@ -61,10 +63,14 @@
 void
 pylith::feassemble::TestElasticityExplicitLgDeform::tearDown(void)
 { // tearDown
+  PYLITH_METHOD_BEGIN;
+
   delete _data; _data = 0;
   delete _quadrature; _quadrature = 0;
   delete _material; _material = 0;
   delete _gravityField; _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // tearDown
 
 // ----------------------------------------------------------------------
@@ -72,7 +78,11 @@
 void
 pylith::feassemble::TestElasticityExplicitLgDeform::testConstructor(void)
 { // testConstructor
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitLgDeform integrator;
+
+  PYLITH_METHOD_END;
 } // testConstructor
 
 // ----------------------------------------------------------------------
@@ -80,13 +90,16 @@
 void 
 pylith::feassemble::TestElasticityExplicitLgDeform::testInitialize(void)
 { // testInitialize
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitLgDeform integrator;
   topology::SolutionFields fields(mesh);
   _initialize(&mesh, &integrator, &fields);
 
+  PYLITH_METHOD_END;
 } // testInitialize
 
 // ----------------------------------------------------------------------
@@ -94,8 +107,10 @@
 void
 pylith::feassemble::TestElasticityExplicitLgDeform::testIntegrateResidual(void)
 { // testIntegrateResidual
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitLgDeform integrator;
   topology::SolutionFields fields(mesh);
@@ -106,19 +121,7 @@
   integrator.integrateResidual(residual, t, &fields);
 
   const PylithScalar* valsE = _data->valsResidual;
-  const int sizeE = _data->spaceDim * _data->numVertices;
 
-  PetscSection residualSection = residual.petscSection();
-  Vec          residualVec     = residual.localVector();
-  PetscScalar   *vals;
-  PetscInt       size;
-  PetscErrorCode err;
-
-  CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
-  err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
 #if 0
   residual.view("RESIDUAL");
   std::cout << "EXPECTED RESIDUAL" << std::endl;
@@ -126,13 +129,32 @@
     std::cout << "valE: " << valsE[i] << ", val: " << vals[i] << ", val/valE: " << vals[i]/valsE[i] << std::endl;
 #endif
 
-  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-04;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-  err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+  topology::VecVisitorMesh residualVisitor(residual);
+  const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+  const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+  const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = residualVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
@@ -140,8 +162,10 @@
 void
 pylith::feassemble::TestElasticityExplicitLgDeform::testIntegrateJacobian(void)
 { // testIntegrateJacobian
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitLgDeform integrator;
   topology::SolutionFields fields(mesh);
@@ -160,39 +184,41 @@
   jacobian.complete();
 
   const PylithScalar* valsE = _data->valsJacobian;
-  const int sizeE = _data->numVertices * _data->spaceDim;
 
 #if 0 // DEBUGGING
   // TEMPORARY
   jacobian.view("JACOBIAN");
-  std::cout << "\n\nJACOBIAN FULL" << std::endl;
-  const int n = numBasis*spaceDim;
+  std::cout << "\n\nJACOBIAN EXPECTED" << std::endl;
+  const int n = _data->numBasis*_data->spaceDim;
   for (int r=0; r < n; ++r) {
-    for (int c=0; c < n; ++c) 
-      std::cout << "  " << valsMatrixE[r*n+c];
-    std::cout << "\n";
+    std::cout << "  " << valsE[r] << "\n";
   } // for
 #endif // DEBUGGING
 
-  PetscSection jacobianSection = jacobian.petscSection();
-  Vec          jacobianVec     = jacobian.localVector();
-  PetscScalar       *vals;
-  PetscInt           size;
-  PetscErrorCode     err;
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
 
-  CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
-  err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
+  topology::VecVisitorMesh jacobianVisitor(jacobian);
+  const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
+  const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
 
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = jacobianVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
 
-  err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
@@ -200,8 +226,10 @@
 void 
 pylith::feassemble::TestElasticityExplicitLgDeform::testUpdateStateVars(void)
 { // testUpdateStateVars
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitLgDeform integrator;
   topology::SolutionFields fields(mesh);
@@ -209,83 +237,48 @@
 
   const PylithScalar t = 1.0;
   integrator.updateStateVars(t, &fields);
+
+  PYLITH_METHOD_END;
 } // testUpdateStateVars
 
+
+// ----------------------------------------------------------------------
 extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
 extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
 
-// ----------------------------------------------------------------------
 // Initialize elasticity integrator.
 void
-pylith::feassemble::TestElasticityExplicitLgDeform::_initialize(
-					 topology::Mesh* mesh,
-					 ElasticityExplicitLgDeform* const integrator,
-					 topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicitLgDeform::_initialize(topology::Mesh* mesh,
+								ElasticityExplicitLgDeform* const integrator,
+								topology::SolutionFields* fields)
 { // _initialize
-  CPPUNIT_ASSERT(0 != mesh);
-  CPPUNIT_ASSERT(0 != integrator);
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _material);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(mesh);
+  CPPUNIT_ASSERT(integrator);
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_material);
+
   const int spaceDim = _data->spaceDim;
   const PylithScalar dt = _data->dt;
 
   // Setup mesh
-  spatialdata::geocoords::CSCart cs;
-  cs.setSpaceDim(spaceDim);
-  cs.initialize();
-  mesh->coordsys(&cs);
-  mesh->createSieveMesh(_data->cellDim);
-  const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
-  CPPUNIT_ASSERT(!sieveMesh.isNull());
-  ALE::Obj<SieveMesh::sieve_type> sieve = 
-    new SieveMesh::sieve_type(mesh->comm());
-  CPPUNIT_ASSERT(!sieve.isNull());
-
   mesh->createDMMesh(_data->cellDim);
-  DM dmMesh = mesh->dmMesh();
-  CPPUNIT_ASSERT(dmMesh);
+  PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
 
   // Cells and vertices
   const bool interpolate = false;
-  ALE::Obj<SieveFlexMesh::sieve_type> s = 
-    new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-  
-  ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s, 
-					      _data->cellDim, _data->numCells,
-                                              const_cast<int*>(_data->cells), 
-					      _data->numVertices,
-                                              interpolate, _data->numBasis);
-  std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
-  ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
-  sieveMesh->setSieve(sieve);
-  sieveMesh->stratify();
-  ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim, 
-						 _data->vertices);
   PetscErrorCode err;
-
   err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
   err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
 
   // Material ids
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->heightStratum(0);
-  CPPUNIT_ASSERT(!cells.isNull());
-  const ALE::Obj<SieveMesh::label_type>& labelMaterials = 
-    sieveMesh->createLabel("material-id");
-  CPPUNIT_ASSERT(!labelMaterials.isNull());
-  int i = 0;
-  for(SieveMesh::label_sequence::iterator e_iter=cells->begin(); 
-      e_iter != cells->end();
-      ++e_iter)
-    sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
   PetscInt cStart, cEnd, c;
-
   err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
   for(PetscInt c = cStart; c < cEnd; ++c) {
     err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
-  }
+  } // for
 
   // Setup quadrature
   _quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
@@ -295,14 +288,30 @@
 			  _data->quadWts, _data->numQuadPts,
 			  spaceDim);
 
+  // Setup coordinate system.
+  spatialdata::geocoords::CSCart cs;
+  cs.setSpaceDim(spaceDim);
+  cs.initialize();
+  mesh->coordsys(&cs);
+
+  // Setup scales.
+  const PylithScalar timeScale = _data->timeScale;
+  const PylithScalar lengthScale = _data->lengthScale;
+  const PylithScalar velScale = lengthScale / timeScale;
+  const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+  spatialdata::units::Nondimensional normalizer;
+  normalizer.lengthScale(_data->lengthScale);
+  normalizer.pressureScale(_data->pressureScale);
+  normalizer.densityScale(_data->densityScale);
+  normalizer.timeScale(_data->timeScale);
+  mesh->nondimensionalize(normalizer);
+
   // Setup material
   spatialdata::spatialdb::SimpleIOAscii iohandler;
   iohandler.filename(_data->matDBFilename);
   spatialdata::spatialdb::SimpleDB dbProperties;
   dbProperties.ioHandler(&iohandler);
   
-  spatialdata::units::Nondimensional normalizer;
-
   _material->id(_data->matId);
   _material->label(_data->matLabel);
   _material->dbProperties(&dbProperties);
@@ -310,12 +319,12 @@
 
   integrator->quadrature(_quadrature);
   integrator->gravityField(_gravityField);
-  integrator->timeStep(_data->dt);
+  integrator->timeStep(_data->dt / _data->timeScale);
   integrator->material(_material);
   integrator->initialize(*mesh);
 
   // Setup fields
-  CPPUNIT_ASSERT(0 != fields);
+  CPPUNIT_ASSERT(fields);
   fields->add("residual", "residual");
   fields->add("disp(t)", "displacement");
   fields->add("dispIncr(t->t+dt)", "displacement_increment");
@@ -330,40 +339,56 @@
   residual.zero();
   fields->copyLayout("residual");
 
-  scalar_array velVertex(spaceDim);
-  scalar_array accVertex(spaceDim);
-  const int offset = _data->numCells;
+  topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+  PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
 
-  PetscSection dispTSectionP     = fields->get("disp(t)").petscSection();
-  Vec          dispTVec          = fields->get("disp(t)").localVector();
-  CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
-  PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
-  Vec          dispTIncrVec      = fields->get("dispIncr(t->t+dt)").localVector();
-  CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
-  PetscSection dispTmdtSectionP  = fields->get("disp(t-dt)").petscSection();
-  Vec          dispTmdtVec       = fields->get("disp(t-dt)").localVector();
-  CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
-  PetscSection velSectionP       = fields->get("velocity(t)").petscSection();
-  Vec          velVec            = fields->get("velocity(t)").localVector();
-  CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
-  PetscSection accSectionP       = fields->get("acceleration(t)").petscSection();
-  Vec          accVec            = fields->get("acceleration(t)").localVector();
-  CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
-  for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+  topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+  PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
+
+  topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+  PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+  topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+  PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+  topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+  PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  
+  for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+    const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+    const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+    const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+    const PetscInt voff = velVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+    const PetscInt aoff = accVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
     for(int iDim=0; iDim < spaceDim; ++iDim) {
-      velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
-                         _data->fieldT[iVertex*spaceDim+iDim] -
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
-      accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
-                         _data->fieldT[iVertex*spaceDim+iDim] +
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+      dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+      dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+      dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+      velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+			     _data->fieldT[iVertex*spaceDim+iDim] -
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+      accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+			     _data->fieldT[iVertex*spaceDim+iDim] +
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
     } // for
-    err = DMPlexVecSetClosure(dmMesh, dispTSectionP,     dispTVec,     iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim],     INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP,  dispTmdtVec,  iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim],  INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, velSectionP,       velVec,       iVertex+offset, &velVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, accSectionP,       accVec,       iVertex+offset, &accVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
   } // for
+
+  PYLITH_METHOD_END;
 } // _initialize
 
 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeform1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform1DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeform1DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformData1DLinear();
-  _gravityField = 0;
-  GeometryLine1D geometry;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  _quadrature->refGeometry(&geometry);
-  _material = new materials::ElasticStrain1D;
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform1dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeform1DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeform1DLinear :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform1DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform1DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeform1DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform1dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeform1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform1DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeform1DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformData1DQuadratic();
-  _gravityField = 0;
-  GeometryLine1D geometry;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  _quadrature->refGeometry(&geometry);
-  _material = new materials::ElasticStrain1D;
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform1dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeform1DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeform1DQuadratic :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform1DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform1DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeform1DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform1dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeform2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform2DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeform2DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformData2DLinear();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform2dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeform2DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeform2DLinear :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform2DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform2DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeform2DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform2dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeform2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform2DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeform2DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformData2DQuadratic();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform2dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeform2DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeform2DQuadratic :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform2DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform2DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeform2DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform2dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeform3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform3DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeform3DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformData3DLinear();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform3dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeform3DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeform3DLinear :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform3DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform3DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeform3DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform3dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeform3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform3DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeform3DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformData3DQuadratic();
-  _gravityField = 0;
-  CPPUNIT_ASSERT(0 != _quadrature);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform3dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeform3DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeform3DQuadratic :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform3DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform3DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeform3DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform3dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeformGrav1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformGravData1DLinear();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryLine1D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticStrain1D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav1dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeformGrav1DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform1DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav1DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeformGrav1DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav1dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeformGrav1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformGravData1DQuadratic();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryLine1D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticStrain1D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav1dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeformGrav1DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform1DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav1DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeformGrav1DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav1dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeformGrav2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformGravData2DLinear();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav2dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeformGrav2DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform2DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav2DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeformGrav2DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav2dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeformGrav2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformGravData2DQuadratic();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTri2D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
-  _gravityField->gravAcceleration(g);
-  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
-
-  _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav2dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeformGrav2DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform2DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav2DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeformGrav2DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav2dquadratic_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeformGrav3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformGravData3DLinear();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  _gravityField->gravAcceleration(g);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav3dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeformGrav3DLinear;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform3DLinear
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav3DLinear );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeformGrav3DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav3dlinear_hh
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestElasticityExplicitLgDeformGrav3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic::setUp(void)
-{ // setUp
-  TestElasticityExplicitLgDeform::setUp();
-
-  _data = new ElasticityExplicitLgDeformGravData3DQuadratic();
-  _gravityField = new spatialdata::spatialdb::GravityField();
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _gravityField);
-  GeometryTet3D geometry;
-  _quadrature->refGeometry(&geometry);
-
-  const PylithScalar g = 1.0e8;
-  _gravityField->gravAcceleration(g);
-
-  _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
-} // setUp
-
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-// Brad T. Aagaard, U.S. Geological Survey
-// Charles A. Williams, GNS Science
-// Matthew G. Knepley, University of Chicago
-//
-// This code was developed as part of the Computational Infrastructure
-// for Geodynamics (http://geodynamics.org).
-//
-// Copyright (c) 2010-2012 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav3dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestElasticityExplicitLgDeformGrav3DQuadratic;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic :
-  public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform3DQuadratic
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav3DQuadratic );
-
-  CPPUNIT_TEST( testInitialize );
-  CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testUpdateStateVars );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Setup testing data.
-  void setUp(void);
-
-}; // class TestElasticityExplicitLgDeformGrav3DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav3dquadratic_hh
-
-
-// End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -28,6 +28,8 @@
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/SubMesh.hh" // USES SubMesh
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -45,26 +47,25 @@
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitTet4 );
 
 // ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
 // Setup testing data.
 void
 pylith::feassemble::TestElasticityExplicitTet4::setUp(void)
 { // setUp
+  PYLITH_METHOD_BEGIN;
+
   _quadrature = new Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(0 != _quadrature);
+  CPPUNIT_ASSERT(_quadrature);
   GeometryTet3D geometry;
   _quadrature->refGeometry(&geometry);
 
   _data = new ElasticityExplicitData3DLinear;
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_data);
   _material = new materials::ElasticIsotropic3D;
-  CPPUNIT_ASSERT(0 != _material);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
-		       std::string(_data->matType));
+  CPPUNIT_ASSERT(_material);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
   _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // setUp
 
 // ----------------------------------------------------------------------
@@ -72,10 +73,14 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::tearDown(void)
 { // tearDown
+  PYLITH_METHOD_BEGIN;
+
   delete _data; _data = 0;
   delete _quadrature; _quadrature = 0;
   delete _material; _material = 0;
   delete _gravityField; _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // tearDown
 
 // ----------------------------------------------------------------------
@@ -83,7 +88,11 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testConstructor(void)
 { // testConstructor
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTet4 integrator;
+
+  PYLITH_METHOD_END;
 } // testConstructor
 
 // ----------------------------------------------------------------------
@@ -91,6 +100,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testTimeStep(void)
 { // testTimeStep
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTet4 integrator;
 
   const PylithScalar dt1 = 2.0;
@@ -99,6 +110,8 @@
   integrator.timeStep(dt1);
   CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
   CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+
+  PYLITH_METHOD_END;
 } // testTimeStep
 
 // ----------------------------------------------------------------------
@@ -106,6 +119,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testMaterial(void)
 { // testMaterial
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTet4 integrator;
 
   materials::ElasticIsotropic3D material;
@@ -120,6 +135,8 @@
   const PylithScalar dt = 2.0;
   integrator.timeStep(dt);
   CPPUNIT_ASSERT_EQUAL(dt, integrator._material->timeStep());
+
+  PYLITH_METHOD_END;
 } // testMaterial
 
 // ----------------------------------------------------------------------
@@ -127,6 +144,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testNeedNewJacobian(void)
 { // testNeedNewJacobian
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTet4 integrator;
 
   materials::ElasticIsotropic3D material;
@@ -134,6 +153,8 @@
   CPPUNIT_ASSERT_EQUAL(true, integrator.needNewJacobian());
   integrator._needNewJacobian = false;
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());  
+
+  PYLITH_METHOD_END;
 } // testNeedNewJacobian
 
 // ----------------------------------------------------------------------
@@ -141,13 +162,16 @@
 void 
 pylith::feassemble::TestElasticityExplicitTet4::testInitialize(void)
 { // testInitialize
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTet4 integrator;
   topology::SolutionFields fields(mesh);
   _initialize(&mesh, &integrator, &fields);
 
+  PYLITH_METHOD_END;
 } // testInitialize
 
 // ----------------------------------------------------------------------
@@ -155,8 +179,10 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testIntegrateResidual(void)
 { // testIntegrateResidual
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTet4 integrator;
   topology::SolutionFields fields(mesh);
@@ -167,33 +193,41 @@
   integrator.integrateResidual(residual, t, &fields);
 
   const PylithScalar* valsE = _data->valsResidual;
-  const int sizeE = _data->spaceDim * _data->numVertices;
 
-  PetscSection residualSection = residual.petscSection();
-  Vec          residualVec     = residual.localVector();
-  PetscScalar   *vals;
-  PetscInt       size;
-  PetscErrorCode err;
-
-  CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
-  err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
 #if 0 // DEBUGGING
   residual.view("RESIDUAL");
   std::cout << "EXPECTED RESIDUAL" << std::endl;
+  const int size = _data->numVertices * _data->spaceDim;
   for (int i=0; i < size; ++i)
     std::cout << "  " << valsE[i] << std::endl;
 #endif // DEBUGGING
 
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-  err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+  topology::VecVisitorMesh residualVisitor(residual);
+  const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+  const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+  const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = residualVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
@@ -201,8 +235,10 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testIntegrateJacobian(void)
 { // testIntegrateJacobian
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTet4 integrator;
   topology::SolutionFields fields(mesh);
@@ -221,7 +257,6 @@
   jacobian.complete();
 
   const PylithScalar* valsE = _data->valsJacobian;
-  const int sizeE = _data->numVertices * _data->spaceDim;
   const int spaceDim = _data->spaceDim;
   const int numBasis = _data->numVertices;
 
@@ -233,25 +268,31 @@
     std::cout << "  " << valsE[i] << "\n";
 #endif // DEBUGGING
 
-  PetscSection jacobianSection = jacobian.petscSection();
-  Vec          jacobianVec     = jacobian.localVector();
-  PetscScalar       *vals;
-  PetscInt           size;
-  PetscErrorCode     err;
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
 
-  CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
-  err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
+  topology::VecVisitorMesh jacobianVisitor(jacobian);
+  const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
 
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+  const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
 
-  err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = jacobianVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
@@ -259,8 +300,10 @@
 void 
 pylith::feassemble::TestElasticityExplicitTet4::testUpdateStateVars(void)
 { // testUpdateStateVars
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTet4 integrator;
   topology::SolutionFields fields(mesh);
@@ -268,6 +311,8 @@
 
   const PylithScalar t = 1.0;
   integrator.updateStateVars(t, &fields);
+
+  PYLITH_METHOD_END;
 } // testUpdateStateVars
 
 // ----------------------------------------------------------------------
@@ -275,6 +320,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTet4::testStableTimeStep(void)
 { // testStableTimeStep
+  PYLITH_METHOD_BEGIN;
+
   CPPUNIT_ASSERT(_data);
 
   topology::Mesh mesh;
@@ -284,80 +331,49 @@
 
   const PylithScalar dtStable = integrator.stableTimeStep(mesh);
   const PylithScalar tolerance = 1.0e-6;
-  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit, tolerance);
+  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit*_data->timeScale, tolerance);
+
+  PYLITH_METHOD_END;
 } // testStableTimeStep
 
+
+// ----------------------------------------------------------------------
 extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
 extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
 
-// ----------------------------------------------------------------------
 // Initialize elasticity integrator.
 void
-pylith::feassemble::TestElasticityExplicitTet4::_initialize(
-					 topology::Mesh* mesh,
-					 ElasticityExplicitTet4* const integrator,
-					 topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicitTet4::_initialize(topology::Mesh* mesh,
+							    ElasticityExplicitTet4* const integrator,
+							    topology::SolutionFields* fields)
 { // _initialize
-  CPPUNIT_ASSERT(0 != mesh);
-  CPPUNIT_ASSERT(0 != integrator);
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _material);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(mesh);
+  CPPUNIT_ASSERT(integrator);
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_material);
+
   const int spaceDim = _data->spaceDim;
   const PylithScalar dt = _data->dt;
 
   // Setup mesh
-  mesh->createSieveMesh(_data->cellDim);
-  const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
-  CPPUNIT_ASSERT(!sieveMesh.isNull());
-  ALE::Obj<SieveMesh::sieve_type> sieve = 
-    new SieveMesh::sieve_type(mesh->comm());
-  CPPUNIT_ASSERT(!sieve.isNull());
-
   mesh->createDMMesh(_data->cellDim);
-  DM dmMesh = mesh->dmMesh();
-  CPPUNIT_ASSERT(dmMesh);
+  PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
 
   // Cells and vertices
   const bool interpolate = false;
-  ALE::Obj<SieveFlexMesh::sieve_type> s = 
-    new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-  
-  ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s, 
-					      _data->cellDim, _data->numCells,
-                                              const_cast<int*>(_data->cells), 
-					      _data->numVertices,
-                                              interpolate, _data->numBasis);
-  std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
-  ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
-  sieveMesh->setSieve(sieve);
-  sieveMesh->stratify();
-  ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim, 
-						 _data->vertices);
   PetscErrorCode err;
-
   err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
   err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
 
   // Material ids
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->heightStratum(0);
-  CPPUNIT_ASSERT(!cells.isNull());
-  const ALE::Obj<SieveMesh::label_type>& labelMaterials = 
-    sieveMesh->createLabel("material-id");
-  CPPUNIT_ASSERT(!labelMaterials.isNull());
-  int i = 0;
-  for(SieveMesh::label_sequence::iterator e_iter=cells->begin(); 
-      e_iter != cells->end();
-      ++e_iter)
-    sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
   PetscInt cStart, cEnd, c;
-
   err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
   for(PetscInt c = cStart; c < cEnd; ++c) {
     err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
-  }
+  } // for
 
   // Setup quadrature
   _quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
@@ -367,11 +383,22 @@
 			  _data->quadWts, _data->numQuadPts,
 			  spaceDim);
 
-  spatialdata::units::Nondimensional normalizer;
+  // Setup coordinate system.
   spatialdata::geocoords::CSCart cs;
   cs.setSpaceDim(spaceDim);
   cs.initialize();
   mesh->coordsys(&cs);
+
+  // Setup scales.
+  const PylithScalar timeScale = _data->timeScale;
+  const PylithScalar lengthScale = _data->lengthScale;
+  const PylithScalar velScale = lengthScale / timeScale;
+  const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+  spatialdata::units::Nondimensional normalizer;
+  normalizer.lengthScale(_data->lengthScale);
+  normalizer.pressureScale(_data->pressureScale);
+  normalizer.densityScale(_data->densityScale);
+  normalizer.timeScale(_data->timeScale);
   mesh->nondimensionalize(normalizer);
 
   // Setup material
@@ -387,12 +414,12 @@
 
   integrator->quadrature(_quadrature);
   integrator->gravityField(_gravityField);
-  integrator->timeStep(_data->dt);
+  integrator->timeStep(_data->dt / _data->timeScale);
   integrator->material(_material);
   integrator->initialize(*mesh);
 
   // Setup fields
-  CPPUNIT_ASSERT(0 != fields);
+  CPPUNIT_ASSERT(fields);
   fields->add("residual", "residual");
   fields->add("dispIncr(t->t+dt)", "displacement_increment");
   fields->add("disp(t)", "displacement");
@@ -407,40 +434,56 @@
   residual.zero();
   fields->copyLayout("residual");
 
-  scalar_array velVertex(spaceDim);
-  scalar_array accVertex(spaceDim);
-  const int offset = _data->numCells;
+  topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+  PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
 
-  PetscSection dispTSectionP     = fields->get("disp(t)").petscSection();
-  Vec          dispTVec          = fields->get("disp(t)").localVector();
-  CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
-  PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
-  Vec          dispTIncrVec      = fields->get("dispIncr(t->t+dt)").localVector();
-  CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
-  PetscSection dispTmdtSectionP  = fields->get("disp(t-dt)").petscSection();
-  Vec          dispTmdtVec       = fields->get("disp(t-dt)").localVector();
-  CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
-  PetscSection velSectionP       = fields->get("velocity(t)").petscSection();
-  Vec          velVec            = fields->get("velocity(t)").localVector();
-  CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
-  PetscSection accSectionP       = fields->get("acceleration(t)").petscSection();
-  Vec          accVec            = fields->get("acceleration(t)").localVector();
-  CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
-  for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+  topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+  PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
+
+  topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+  PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+  topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+  PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+  topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+  PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  
+  for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+    const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+    const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+    const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+    const PetscInt voff = velVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+    const PetscInt aoff = accVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
     for(int iDim=0; iDim < spaceDim; ++iDim) {
-      velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
-                         _data->fieldT[iVertex*spaceDim+iDim] -
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
-      accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
-                         _data->fieldT[iVertex*spaceDim+iDim] +
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+      dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+      dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+      dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+      velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+			     _data->fieldT[iVertex*spaceDim+iDim] -
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+      accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+			     _data->fieldT[iVertex*spaceDim+iDim] +
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
     } // for
-    err = DMPlexVecSetClosure(dmMesh, dispTSectionP,     dispTVec,     iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim],     INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP,  dispTmdtVec,  iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim],  INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, velSectionP,       velVec,       iVertex+offset, &velVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, accSectionP,       accVec,       iVertex+offset, &accVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
   } // for
+
+  PYLITH_METHOD_END;
 } // _initialize
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -28,6 +28,8 @@
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
 #include "pylith/topology/SubMesh.hh" // USES SubMesh
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -45,26 +47,25 @@
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitTri3 );
 
 // ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
 // Setup testing data.
 void
 pylith::feassemble::TestElasticityExplicitTri3::setUp(void)
 { // setUp
+  PYLITH_METHOD_BEGIN;
+
   _quadrature = new Quadrature<topology::Mesh>();
-  CPPUNIT_ASSERT(0 != _quadrature);
+  CPPUNIT_ASSERT(_quadrature);
   GeometryTri2D geometry;
   _quadrature->refGeometry(&geometry);
 
   _data = new ElasticityExplicitData2DLinear();
-  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(_data);
   _material = new materials::ElasticPlaneStrain;
-  CPPUNIT_ASSERT(0 != _material);
-  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
-		       std::string(_data->matType));
+  CPPUNIT_ASSERT(_material);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
   _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // setUp
 
 // ----------------------------------------------------------------------
@@ -72,10 +73,14 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::tearDown(void)
 { // tearDown
+  PYLITH_METHOD_BEGIN;
+
   delete _data; _data = 0;
   delete _quadrature; _quadrature = 0;
   delete _material; _material = 0;
   delete _gravityField; _gravityField = 0;
+
+  PYLITH_METHOD_END;
 } // tearDown
 
 // ----------------------------------------------------------------------
@@ -83,7 +88,11 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testConstructor(void)
 { // testConstructor
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTri3 integrator;
+
+  PYLITH_METHOD_END;
 } // testConstructor
 
 // ----------------------------------------------------------------------
@@ -91,6 +100,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testTimeStep(void)
 { // testTimeStep
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTri3 integrator;
 
   const PylithScalar dt1 = 2.0;
@@ -99,6 +110,8 @@
   integrator.timeStep(dt1);
   CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
   CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+
+  PYLITH_METHOD_END;
 } // testTimeStep
 
 // ----------------------------------------------------------------------
@@ -106,6 +119,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testMaterial(void)
 { // testMaterial
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTri3 integrator;
 
   materials::ElasticPlaneStrain material;
@@ -120,6 +135,8 @@
   const PylithScalar dt = 2.0;
   integrator.timeStep(dt);
   CPPUNIT_ASSERT_EQUAL(dt, integrator._material->timeStep());
+
+  PYLITH_METHOD_END;
 } // testMaterial
 
 // ----------------------------------------------------------------------
@@ -127,6 +144,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testNeedNewJacobian(void)
 { // testNeedNewJacobian
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicitTri3 integrator;
 
   materials::ElasticPlaneStrain material;
@@ -134,6 +153,8 @@
   CPPUNIT_ASSERT_EQUAL(true, integrator.needNewJacobian());
   integrator._needNewJacobian = false;
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());  
+
+  PYLITH_METHOD_END;
 } // testNeedNewJacobian
 
 // ----------------------------------------------------------------------
@@ -141,13 +162,16 @@
 void 
 pylith::feassemble::TestElasticityExplicitTri3::testInitialize(void)
 { // testInitialize
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTri3 integrator;
   topology::SolutionFields fields(mesh);
   _initialize(&mesh, &integrator, &fields);
 
+  PYLITH_METHOD_END;
 } // testInitialize
 
 // ----------------------------------------------------------------------
@@ -155,8 +179,10 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testIntegrateResidual(void)
 { // testIntegrateResidual
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTri3 integrator;
   topology::SolutionFields fields(mesh);
@@ -167,33 +193,41 @@
   integrator.integrateResidual(residual, t, &fields);
 
   const PylithScalar* valsE = _data->valsResidual;
-  const int sizeE = _data->spaceDim * _data->numVertices;
 
-  PetscSection residualSection = residual.petscSection();
-  Vec          residualVec     = residual.localVector();
-  PetscScalar   *vals;
-  PetscInt       size;
-  PetscErrorCode err;
-
-  CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
-  err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
 #if 0 // DEBUGGING
   residual.view("RESIDUAL");
   std::cout << "EXPECTED RESIDUAL" << std::endl;
+  const int size = _data->spaceDim * _data->numVertices;
   for (int i=0; i < size; ++i)
     std::cout << "  " << valsE[i] << std::endl;
 #endif // DEBUGGING
 
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-  err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+  topology::VecVisitorMesh residualVisitor(residual);
+  const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+  const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+  const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = residualVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
@@ -201,8 +235,10 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testIntegrateJacobian(void)
 { // testIntegrateJacobian
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTri3 integrator;
   topology::SolutionFields fields(mesh);
@@ -221,7 +257,6 @@
   jacobian.complete();
 
   const PylithScalar* valsE = _data->valsJacobian;
-  const int sizeE = _data->numVertices * _data->spaceDim;
   const int spaceDim = _data->spaceDim;
   const int numBasis = _data->numVertices;
 
@@ -233,25 +268,31 @@
     std::cout << "  " << valsE[i] << "\n";
 #endif // DEBUGGING
 
-  PetscSection jacobianSection = jacobian.petscSection();
-  Vec          jacobianVec     = jacobian.localVector();
-  PetscScalar       *vals;
-  PetscInt           size;
-  PetscErrorCode     err;
+  const PetscDM dmMesh = mesh.dmMesh();
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
 
-  CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
-  err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
-  err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
+  topology::VecVisitorMesh jacobianVisitor(jacobian);
+  const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
 
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+  const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
 
-  err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+  for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+    const PetscInt off = jacobianVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
+
+    for (int d=0; d < _data->spaceDim; ++d, ++index) {
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+    } // for
+  } // for
+
+  PYLITH_METHOD_END;
 } // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
@@ -259,8 +300,10 @@
 void 
 pylith::feassemble::TestElasticityExplicitTri3::testUpdateStateVars(void)
 { // testUpdateStateVars
-  CPPUNIT_ASSERT(0 != _data);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(_data);
+
   topology::Mesh mesh;
   ElasticityExplicitTri3 integrator;
   topology::SolutionFields fields(mesh);
@@ -268,6 +311,8 @@
 
   const PylithScalar t = 1.0;
   integrator.updateStateVars(t, &fields);
+
+  PYLITH_METHOD_END;
 } // testUpdateStateVars
 
 // ----------------------------------------------------------------------
@@ -275,6 +320,8 @@
 void
 pylith::feassemble::TestElasticityExplicitTri3::testStableTimeStep(void)
 { // testStableTimeStep
+  PYLITH_METHOD_BEGIN;
+
   CPPUNIT_ASSERT(_data);
 
   topology::Mesh mesh;
@@ -284,81 +331,49 @@
 
   const PylithScalar dtStable = integrator.stableTimeStep(mesh);
   const PylithScalar tolerance = 1.0e-6;
-  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit, tolerance);
+  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit*_data->timeScale, tolerance);
+
+  PYLITH_METHOD_END;
 } // testStableTimeStep
 
+// ----------------------------------------------------------------------
 extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
 extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
 
-// ----------------------------------------------------------------------
 // Initialize elasticity integrator.
 void
-pylith::feassemble::TestElasticityExplicitTri3::_initialize(
-					 topology::Mesh* mesh,
-					 ElasticityExplicitTri3* const integrator,
-					 topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicitTri3::_initialize(topology::Mesh* mesh,
+							    ElasticityExplicitTri3* const integrator,
+							    topology::SolutionFields* fields)
 { // _initialize
-  CPPUNIT_ASSERT(0 != mesh);
-  CPPUNIT_ASSERT(0 != integrator);
-  CPPUNIT_ASSERT(0 != _data);
-  CPPUNIT_ASSERT(0 != _quadrature);
-  CPPUNIT_ASSERT(0 != _material);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(mesh);
+  CPPUNIT_ASSERT(integrator);
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_material);
+
   const int spaceDim = _data->spaceDim;
   const PylithScalar dt = _data->dt;
 
   // Setup mesh
-  mesh->createSieveMesh(_data->cellDim);
-  const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
-  CPPUNIT_ASSERT(!sieveMesh.isNull());
-  ALE::Obj<SieveMesh::sieve_type> sieve = 
-    new SieveMesh::sieve_type(mesh->comm());
-  CPPUNIT_ASSERT(!sieve.isNull());
-
   mesh->createDMMesh(_data->cellDim);
-  DM dmMesh = mesh->dmMesh();
-  CPPUNIT_ASSERT(dmMesh);
+  PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
 
   // Cells and vertices
   const bool interpolate = false;
-  ALE::Obj<SieveFlexMesh::sieve_type> s = 
-    new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-  
-  ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s, 
-					      _data->cellDim, _data->numCells,
-                                              const_cast<int*>(_data->cells), 
-					      _data->numVertices,
-                                              interpolate, _data->numBasis);
-  std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
-  ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
-  sieveMesh->setSieve(sieve);
-  sieveMesh->stratify();
-  ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim, 
-						 _data->vertices);
   PetscErrorCode err;
-
   err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
   err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
 
   // Material ids
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->heightStratum(0);
-  CPPUNIT_ASSERT(!cells.isNull());
-  const ALE::Obj<SieveMesh::label_type>& labelMaterials = 
-    sieveMesh->createLabel("material-id");
-  CPPUNIT_ASSERT(!labelMaterials.isNull());
-  int i = 0;
-  for(SieveMesh::label_sequence::iterator e_iter=cells->begin(); 
-      e_iter != cells->end();
-      ++e_iter)
-    sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
   PetscInt cStart, cEnd, c;
-
   err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
   for(PetscInt c = cStart; c < cEnd; ++c) {
     err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
-  }
-
+  } // for
+ 
   // Setup quadrature
   _quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
 			  _data->basisDerivRef, _data->numQuadPts,
@@ -367,11 +382,22 @@
 			  _data->quadWts, _data->numQuadPts,
 			  spaceDim);
 
-  spatialdata::units::Nondimensional normalizer;
+  // Setup coordinate system.
   spatialdata::geocoords::CSCart cs;
   cs.setSpaceDim(spaceDim);
   cs.initialize();
   mesh->coordsys(&cs);
+
+  // Setup scales.
+  const PylithScalar timeScale = _data->timeScale;
+  const PylithScalar lengthScale = _data->lengthScale;
+  const PylithScalar velScale = lengthScale / timeScale;
+  const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+  spatialdata::units::Nondimensional normalizer;
+  normalizer.lengthScale(_data->lengthScale);
+  normalizer.pressureScale(_data->pressureScale);
+  normalizer.densityScale(_data->densityScale);
+  normalizer.timeScale(_data->timeScale);
   mesh->nondimensionalize(normalizer);
 
   // Setup material
@@ -387,12 +413,12 @@
 
   integrator->quadrature(_quadrature);
   integrator->gravityField(_gravityField);
-  integrator->timeStep(_data->dt);
+  integrator->timeStep(_data->dt / _data->timeScale);
   integrator->material(_material);
   integrator->initialize(*mesh);
 
   // Setup fields
-  CPPUNIT_ASSERT(0 != fields);
+  CPPUNIT_ASSERT(fields);
   fields->add("residual", "residual");
   fields->add("dispIncr(t->t+dt)", "displacement_increment");
   fields->add("disp(t)", "displacement");
@@ -407,40 +433,56 @@
   residual.zero();
   fields->copyLayout("residual");
 
-  scalar_array velVertex(spaceDim);
-  scalar_array accVertex(spaceDim);
-  const int offset = _data->numCells;
+  topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+  PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
 
-  PetscSection dispTSectionP     = fields->get("disp(t)").petscSection();
-  Vec          dispTVec          = fields->get("disp(t)").localVector();
-  CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
-  PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
-  Vec          dispTIncrVec      = fields->get("dispIncr(t->t+dt)").localVector();
-  CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
-  PetscSection dispTmdtSectionP  = fields->get("disp(t-dt)").petscSection();
-  Vec          dispTmdtVec       = fields->get("disp(t-dt)").localVector();
-  CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
-  PetscSection velSectionP       = fields->get("velocity(t)").petscSection();
-  Vec          velVec            = fields->get("velocity(t)").localVector();
-  CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
-  PetscSection accSectionP       = fields->get("acceleration(t)").petscSection();
-  Vec          accVec            = fields->get("acceleration(t)").localVector();
-  CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
-  for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+  topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+  PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
+
+  topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+  PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+  topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+  PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+  topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+  PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+  topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+  const PetscInt vStart = verticesStratum.begin();
+  const PetscInt vEnd = verticesStratum.end();
+  
+  for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+    const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+    const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+    const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+    const PetscInt voff = velVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+    const PetscInt aoff = accVisitor.sectionOffset(v);
+    CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
     for(int iDim=0; iDim < spaceDim; ++iDim) {
-      velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
-                         _data->fieldT[iVertex*spaceDim+iDim] -
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
-      accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
-                         _data->fieldT[iVertex*spaceDim+iDim] +
-                         _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+      dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+      dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+      dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+      velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+			     _data->fieldT[iVertex*spaceDim+iDim] -
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+      accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+			     _data->fieldT[iVertex*spaceDim+iDim] +
+			     _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
     } // for
-    err = DMPlexVecSetClosure(dmMesh, dispTSectionP,     dispTVec,     iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim],     INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP,  dispTmdtVec,  iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim],  INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, velSectionP,       velVec,       iVertex+offset, &velVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
-    err = DMPlexVecSetClosure(dmMesh, accSectionP,       accVec,       iVertex+offset, &accVertex[0],                               INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
   } // for
+
+  PYLITH_METHOD_END;
 } // _initialize
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -37,11 +37,15 @@
 void
 pylith::feassemble::TestIntegrator::testTimeStep(void)
 { // testTimeStep
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
   const PylithScalar dt = 1.2;
   integrator.timeStep(dt);
 
   CPPUNIT_ASSERT_EQUAL(dt, integrator._dt);
+
+  PYLITH_METHOD_END;
 } // testTimeStep
 
 // ----------------------------------------------------------------------
@@ -49,11 +53,14 @@
 void
 pylith::feassemble::TestIntegrator::testStableTimeStep(void)
 { // testStableTimeStep
+  PYLITH_METHOD_BEGIN;
+
   bc::Neumann integrator;
   topology::Mesh mesh;
 
-  CPPUNIT_ASSERT_EQUAL(pylith::PYLITH_MAXSCALAR,
-		       integrator.stableTimeStep(mesh));
+  CPPUNIT_ASSERT_EQUAL(pylith::PYLITH_MAXSCALAR, integrator.stableTimeStep(mesh));
+
+  PYLITH_METHOD_END;
 } // testStableTimeStep
 
 // ----------------------------------------------------------------------
@@ -61,12 +68,16 @@
 void
 pylith::feassemble::TestIntegrator::testIsJacobianSymmetric(void)
 { // testIsJacobianSymmetric
+  PYLITH_METHOD_BEGIN;
+
   ElasticityExplicit integrator;
 
   CPPUNIT_ASSERT_EQUAL(true, integrator.isJacobianSymmetric());
 
   integrator._isJacobianSymmetric = false;
   CPPUNIT_ASSERT_EQUAL(false, integrator.isJacobianSymmetric());
+
+  PYLITH_METHOD_END;
 } // testIsJacobianSymmetric
 
 // ----------------------------------------------------------------------
@@ -74,6 +85,8 @@
 void
 pylith::feassemble::TestIntegrator::testQuadrature(void)
 { // testQuadrature
+  PYLITH_METHOD_BEGIN;
+
   // Since quadrature is cloned, test setting quadrature by testing
   // value of minJacobian
 
@@ -85,6 +98,8 @@
   integrator.quadrature(&quadrature);
 
   CPPUNIT_ASSERT_EQUAL(minJacobian, integrator._quadrature->minJacobian());
+
+  PYLITH_METHOD_END;
 } // testQuadrature
 
 // ----------------------------------------------------------------------
@@ -92,6 +107,8 @@
 void
 pylith::feassemble::TestIntegrator::testNormalizer(void)
 { // testNormalizer
+  PYLITH_METHOD_BEGIN;
+
   const double lengthScale = 2.0;
 
   spatialdata::units::Nondimensional normalizer;
@@ -101,6 +118,8 @@
   integrator.normalizer(normalizer);
 
   CPPUNIT_ASSERT_EQUAL(lengthScale, integrator._normalizer->lengthScale());
+
+  PYLITH_METHOD_END;
 } // testNormalizer
 
 // ----------------------------------------------------------------------
@@ -108,13 +127,17 @@
 void
 pylith::feassemble::TestIntegrator::testGravityField(void)
 { // testGravityField
+  PYLITH_METHOD_BEGIN;
+
   ElasticityImplicit integrator;
   spatialdata::spatialdb::GravityField gravityField;
 
   CPPUNIT_ASSERT(0 == integrator._gravityField);
 
   integrator.gravityField(&gravityField);
-  CPPUNIT_ASSERT(0 != integrator._gravityField);
+  CPPUNIT_ASSERT(integrator._gravityField);
+
+  PYLITH_METHOD_END;
 } // testGravityField
 
 // ----------------------------------------------------------------------
@@ -122,6 +145,8 @@
 void
 pylith::feassemble::TestIntegrator::testInitCellVector(void)
 { // testInitCellVector
+  PYLITH_METHOD_BEGIN;
+
   Quadrature<topology::Mesh> quadrature;
   _initQuadrature(&quadrature);
 
@@ -135,6 +160,8 @@
   CPPUNIT_ASSERT_EQUAL(size, integrator._cellVector.size());
   for (size_t i=0; i < size; ++i)
     CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellVector[i]);
+
+  PYLITH_METHOD_END;
 } // testInitCellVector
 
 // ----------------------------------------------------------------------
@@ -142,6 +169,8 @@
 void
 pylith::feassemble::TestIntegrator::testResetCellVector(void)
 { // testResetCellVector
+  PYLITH_METHOD_BEGIN;
+
   Quadrature<topology::Mesh> quadrature;
   _initQuadrature(&quadrature);
 
@@ -158,6 +187,8 @@
   integrator._resetCellVector();
   for (size_t i=0; i < size; ++i)
     CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellVector[i]);
+
+  PYLITH_METHOD_END;
 } // testResetCellVector
 
 // ----------------------------------------------------------------------
@@ -165,6 +196,8 @@
 void
 pylith::feassemble::TestIntegrator::testInitCellMatrix(void)
 { // testInitCellMatrix
+  PYLITH_METHOD_BEGIN;
+
   Quadrature<topology::Mesh> quadrature;
   _initQuadrature(&quadrature);
 
@@ -179,6 +212,8 @@
   CPPUNIT_ASSERT_EQUAL(size, integrator._cellMatrix.size());
   for (size_t i=0; i < size; ++i)
     CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellMatrix[i]);
+
+  PYLITH_METHOD_END;
 } // testInitCellMatrix
 
 // ----------------------------------------------------------------------
@@ -186,6 +221,8 @@
 void
 pylith::feassemble::TestIntegrator::testResetCellMatrix(void)
 { // testResetCellMatrix
+  PYLITH_METHOD_BEGIN;
+
   Quadrature<topology::Mesh> quadrature;
   _initQuadrature(&quadrature);
 
@@ -203,6 +240,8 @@
   integrator._resetCellMatrix();
   for (size_t i=0; i < size; ++i)
     CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellMatrix[i]);
+
+  PYLITH_METHOD_END;
 } // testResetCellMatrix
 
 // ----------------------------------------------------------------------
@@ -210,6 +249,8 @@
 void
 pylith::feassemble::TestIntegrator::testLumpCellMatrix(void)
 { // testLumpCellMatrix
+  PYLITH_METHOD_BEGIN;
+
   Quadrature<topology::Mesh> quadrature;
   _initQuadrature(&quadrature);
 
@@ -238,6 +279,8 @@
 	value += 1.23 + 1.2*(index+jBasis*spaceDim+iDim);
       CPPUNIT_ASSERT_DOUBLES_EQUAL(value, integrator._cellVector[iBasis*spaceDim+iDim], tolerance);
     } // for
+
+  PYLITH_METHOD_END;
 } // testLumpCellMatrix
 
 // ----------------------------------------------------------------------
@@ -245,6 +288,7 @@
 void
 pylith::feassemble::TestIntegrator::testSplitField(void)
 { // testSplitField
+  PYLITH_METHOD_BEGIN;
 
   topology::Mesh mesh;
   topology::Field<topology::Mesh> field(mesh);
@@ -252,24 +296,27 @@
   ElasticityExplicit integrator;
   integrator.splitField(&field);
   // Expect nothing to happen
+
+  PYLITH_METHOD_END;
 } // testSplitField
 
 // ----------------------------------------------------------------------
 // Set quadrature information.
 void
-pylith::feassemble::TestIntegrator::_initQuadrature(
-				  Quadrature<topology::Mesh>* quadrature)
+pylith::feassemble::TestIntegrator::_initQuadrature(Quadrature<topology::Mesh>* quadrature)
 { // _initQuadrature
-  CPPUNIT_ASSERT(0 != quadrature);
+  PYLITH_METHOD_BEGIN;
 
+  CPPUNIT_ASSERT(quadrature);
+
   const int cellDim = 1;
   const int numBasis = 2;
   const int numQuadPts = 1;
   const int spaceDim = 1;
-  const PylithScalar basis[] = { 0.5, 0.5 };
-  const PylithScalar basisDeriv[] = { -0.5, 0.5 };
-  const PylithScalar quadPtsRef[] = { 0.0 };
-  const PylithScalar quadWts[] = { 2.0 };
+  const PylithScalar basis[numQuadPts*numBasis] = { 0.5, 0.5 };
+  const PylithScalar basisDeriv[numQuadPts*numBasis*cellDim] = { -0.5, 0.5 };
+  const PylithScalar quadPtsRef[numQuadPts*cellDim] = { 0.0 };
+  const PylithScalar quadWts[numQuadPts] = { 2.0 };
   const PylithScalar minJacobian = 1.0;
 
   quadrature->initialize(basis, numQuadPts, numBasis,
@@ -277,6 +324,8 @@
 			 quadPtsRef, numQuadPts, cellDim,
 			 quadWts, numQuadPts,
 			 spaceDim);
+
+  PYLITH_METHOD_END;
 } // _initQuadrature
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -33,6 +33,8 @@
 void
 pylith::feassemble::TestIntegratorElasticity::testCalcTotalStrain1D(void)
 { // testCalcTotalStrain1D
+  PYLITH_METHOD_BEGIN;
+
   // N0 = 0.5 * (1 - x)
   // N1 = 0.5 * (1 + x)
   // dN0/dx = -0.5
@@ -56,13 +58,14 @@
   scalar_array basisDeriv(basisDerivVals, numQuadPts*numBasis*dim);
   scalar_array disp(dispVals, numBasis*dim);
 
-  IntegratorElasticity::_calcTotalStrain1D(&strain,
-					   basisDeriv, disp, numBasis, numQuadPts);
+  IntegratorElasticity::_calcTotalStrain1D(&strain, basisDeriv, disp, numBasis, numQuadPts);
 
   const PylithScalar tolerance = 1.0e-06;
   CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testCalcTotalStrain1D
 
 // ----------------------------------------------------------------------
@@ -70,6 +73,8 @@
 void
 pylith::feassemble::TestIntegratorElasticity::testCalcTotalStrain2D(void)
 { // testCalcTotalStrain2D
+  PYLITH_METHOD_BEGIN;
+
   // N0 = x
   // N1 = y
   // N2 = 1 - x - y
@@ -104,13 +109,14 @@
   scalar_array basisDeriv(basisDerivVals, numQuadPts*numBasis*dim);
   scalar_array disp(dispVals, numBasis*dim);
 
-  IntegratorElasticity::_calcTotalStrain2D(&strain, basisDeriv, disp,
-					   numBasis, numQuadPts);
+  IntegratorElasticity::_calcTotalStrain2D(&strain, basisDeriv, disp, numBasis, numQuadPts);
 
   const PylithScalar tolerance = 1.0e-06;
   CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testCalcTotalStrain2D
 
 // ----------------------------------------------------------------------
@@ -118,6 +124,8 @@
 void
 pylith::feassemble::TestIntegratorElasticity::testCalcTotalStrain3D(void)
 { // testCalcTotalStrain3D
+  PYLITH_METHOD_BEGIN;
+
   // N0 = x
   // N1 = y
   // N2 = z
@@ -162,13 +170,14 @@
   scalar_array basisDeriv(basisDerivVals, numQuadPts*numBasis*dim);
   scalar_array disp(dispVals, numBasis*dim);
 
-  IntegratorElasticity::_calcTotalStrain3D(&strain, basisDeriv, disp,
-					   numBasis, numQuadPts);
+  IntegratorElasticity::_calcTotalStrain3D(&strain, basisDeriv, disp, numBasis, numQuadPts);
 
   const PylithScalar tolerance = 1.0e-06;
   CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testCalcTotalStrain3D
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -25,6 +25,7 @@
 #include <math.h> // USES fabs()
 
 #include <stdexcept>
+
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestIntegratorElasticityLgDeform );
 
@@ -33,6 +34,8 @@
 void
 pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcDeformation1D(void)
 { // testCalcDeformation1D
+  PYLITH_METHOD_BEGIN;
+
   // N0 = 0.5 * (1 - x)
   // N1 = 0.5 * (1 + x)
   // dN0/dx = -0.5
@@ -60,9 +63,7 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
@@ -76,14 +77,14 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
       CPPUNIT_ASSERT_DOUBLES_EQUAL(deformE[i], deform[i], tolerance);
   } // Uniform strain
+
+  PYLITH_METHOD_END;
 } // testCalcDeformation1D
 
 // ----------------------------------------------------------------------
@@ -91,6 +92,8 @@
 void
 pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcDeformation2D(void)
 { // testCalcDeformation2D
+  PYLITH_METHOD_BEGIN;
+
   // N0 = x
   // N1 = y
   // N2 = 1 - x - y
@@ -133,9 +136,7 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
@@ -165,9 +166,7 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
@@ -189,14 +188,14 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
       CPPUNIT_ASSERT_DOUBLES_EQUAL(deformE[i], deform[i], tolerance);
   } // Uniform strain
+
+  PYLITH_METHOD_END;
 } // testCalcDeformation2D
 
 // ----------------------------------------------------------------------
@@ -204,6 +203,8 @@
 void
 pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcDeformation3D(void)
 { // testCalcDeformation3D
+  PYLITH_METHOD_BEGIN;
+
   // N0 = 0.125 * (1-x) * (1-y) * (1-z)
   // N1 = 0.125 * (1+x) * (1-y) * (1-z)
   // N2 = 0.125 * (1+x) * (1+y) * (1-z)
@@ -273,9 +274,7 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
@@ -328,14 +327,14 @@
     
     scalar_array disp(dispVals, numBasis*dim);
     
-    IntegratorElasticityLgDeform::_calcDeformation(&deform,
-						   basisDeriv, vertices, disp,
-						   numBasis, numQuadPts, dim);
+    IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
     
     CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
     for (int i=0; i < size; ++i)
       CPPUNIT_ASSERT_DOUBLES_EQUAL(deformE[i], deform[i], tolerance);
   } // Uniform strain
+
+  PYLITH_METHOD_END;
 } // testCalcDeformation3D
 
 // ----------------------------------------------------------------------
@@ -343,6 +342,8 @@
 void
 pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcTotalStrain1D(void)
 { // testCalcTotalStrain1D
+  PYLITH_METHOD_BEGIN;
+
   // Deformation tensor X
   // X = [ 2.0 ], [ 0.4 ]
   const int dim = 1;
@@ -360,13 +361,14 @@
 
   scalar_array deform(deformVals, numQuadPts*dim*dim);
 
-  IntegratorElasticityLgDeform::_calcTotalStrain1D(&strain,
-						   deform, numQuadPts);
+  IntegratorElasticityLgDeform::_calcTotalStrain1D(&strain, deform, numQuadPts);
 
   const PylithScalar tolerance = 1.0e-06;
   CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testCalcTotalStrain1D
 
 // ----------------------------------------------------------------------
@@ -374,6 +376,8 @@
 void
 pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcTotalStrain2D(void)
 { // testCalcTotalStrain2D
+  PYLITH_METHOD_BEGIN;
+
   // Deformation tensor X
   // X = [ 2.0, 0.4 ]    [  1.5, 0.2 ]
   //     [ 0.6, 1.4 ],   [ -0.9, 0.8 ]
@@ -394,13 +398,14 @@
 
   scalar_array deform(deformVals, numQuadPts*dim*dim);
 
-  IntegratorElasticityLgDeform::_calcTotalStrain2D(&strain,
-						   deform, numQuadPts);
+  IntegratorElasticityLgDeform::_calcTotalStrain2D(&strain, deform, numQuadPts);
 
   const PylithScalar tolerance = 1.0e-06;
   CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testCalcTotalStrain2D
 
 // ----------------------------------------------------------------------
@@ -408,6 +413,8 @@
 void
 pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcTotalStrain3D(void)
 { // testCalcTotalStrain3D
+  PYLITH_METHOD_BEGIN;
+
   // Deformation tensor X
   // X = [  2.0, 0.4,  0.3 ]    [  1.5, 0.2, -0.1 ]
   //     [  0.6, 1.4, -0.8 ]    [ -0.9, 0.8,  0.3 ]
@@ -429,13 +436,14 @@
 
   scalar_array deform(deformVals, numQuadPts*dim*dim);
 
-  IntegratorElasticityLgDeform::_calcTotalStrain3D(&strain,
-						   deform, numQuadPts);
+  IntegratorElasticityLgDeform::_calcTotalStrain3D(&strain, deform, numQuadPts);
 
   const PylithScalar tolerance = 1.0e-06;
   CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testCalcTotalStrain3D
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -38,6 +38,8 @@
 void
 pylith::feassemble::TestQuadrature::testCopyConstructor(void)
 { // testClone
+  PYLITH_METHOD_BEGIN;
+
   // Semi-random values manually set to check cloning
   const PylithScalar minJacobianE = 1.0;
   const bool checkConditioning = true;
@@ -45,10 +47,10 @@
   const int numBasisE = 2;
   const int numQuadPtsE = 1;
   const int spaceDimE = 1;
-  const PylithScalar basisE[] = { 0.2, 0.4 };
-  const PylithScalar basisDerivE[] = { 0.8, 1.6 };
-  const PylithScalar quadPtsRefE[] = { 3.2 };
-  const PylithScalar quadWtsE[] = { 6.4 };
+  const PylithScalar basisE[numQuadPtsE*numBasisE] = { 0.2, 0.4 };
+  const PylithScalar basisDerivE[numQuadPtsE*numBasisE*cellDimE] = { 0.8, 1.6 };
+  const PylithScalar quadPtsRefE[numQuadPtsE*cellDimE] = { 3.2 };
+  const PylithScalar quadWtsE[numQuadPtsE] = { 6.4 };
   const PylithScalar quadPtsE[] = { 12.8 };
   const PylithScalar jacobianE[] = { 2.56 };
   const PylithScalar jacobianInvE[] = { 5.12 };
@@ -70,7 +72,7 @@
   Quadrature<topology::Mesh> qCopy(qOrig);
   
   // Check copy
-  CPPUNIT_ASSERT(0 == qCopy._engine);
+  CPPUNIT_ASSERT(!qCopy._engine);
   CPPUNIT_ASSERT_EQUAL(minJacobianE, qCopy._minJacobian);
   CPPUNIT_ASSERT_EQUAL(checkConditioning, qCopy._checkConditioning);
   CPPUNIT_ASSERT_EQUAL(cellDimE, qCopy.cellDim());
@@ -105,6 +107,8 @@
   CPPUNIT_ASSERT_EQUAL(geometry.cellDim(), qCopy.refGeometry().cellDim());
   CPPUNIT_ASSERT_EQUAL(geometry.spaceDim(), qCopy.refGeometry().spaceDim());
   CPPUNIT_ASSERT_EQUAL(geometry.numCorners(), qCopy.refGeometry().numCorners());
+
+  PYLITH_METHOD_END;
 } // testCopyConstructor
 
 // ----------------------------------------------------------------------
@@ -112,6 +116,8 @@
 void
 pylith::feassemble::TestQuadrature::testCheckConditioning(void)
 { // testCheckConditioning
+  PYLITH_METHOD_BEGIN;
+
   Quadrature<topology::Mesh> q;
 
   CPPUNIT_ASSERT_EQUAL(false, q.checkConditioning());
@@ -119,6 +125,8 @@
   CPPUNIT_ASSERT_EQUAL(true, q.checkConditioning());
   q.checkConditioning(false);
   CPPUNIT_ASSERT_EQUAL(false, q.checkConditioning());
+
+  PYLITH_METHOD_END;
 } // testCheckConditioning
 
 // ----------------------------------------------------------------------
@@ -126,6 +134,8 @@
 void
 pylith::feassemble::TestQuadrature::testEngineAccessors(void)
 { // testEngineAccessors
+  PYLITH_METHOD_BEGIN;
+
   const int cellDim = 2;
   const int numBasis = 5;
   const int numQuadPts = 1;
@@ -169,6 +179,8 @@
 
   size = numQuadPts * numBasis * spaceDim;
   CPPUNIT_ASSERT_EQUAL(size, q.basisDeriv().size());
+
+  PYLITH_METHOD_END;
 } // testEngineAccessors
 
 // ----------------------------------------------------------------------
@@ -176,7 +188,7 @@
 void
 pylith::feassemble::TestQuadrature::testComputeGeometry(void)
 { // testComputeGeometry
-  typedef pylith::topology::Mesh::SieveMesh SieveMesh;
+  PYLITH_METHOD_BEGIN;
 
   QuadratureData2DLinear data;
   const int cellDim = data.cellDim;
@@ -195,14 +207,13 @@
 
   // Create mesh with test cell
   topology::Mesh mesh(data.cellDim);
-  DM dmMesh;
+
   PetscErrorCode err;
 
   // Cells and vertices
   PetscBool interpolate = PETSC_FALSE;
-
-  err = DMPlexCreateFromCellList(mesh.comm(), cellDim, numCells, data.numVertices, numBasis, interpolate, const_cast<int*>(data.cells), spaceDim, data.vertices, &dmMesh);CHECK_PETSC_ERROR(err);
-  CPPUNIT_ASSERT(dmMesh);
+  PetscDM dmMesh = NULL;
+  err = DMPlexCreateFromCellList(mesh.comm(), cellDim, numCells, data.numVertices, numBasis, interpolate, const_cast<int*>(data.cells), spaceDim, data.vertices, &dmMesh);CHECK_PETSC_ERROR(err);CPPUNIT_ASSERT(dmMesh);
   mesh.setDMMesh(dmMesh);
 
   // Setup quadrature and compute geometry
@@ -217,34 +228,25 @@
 			spaceDim);
 
   PetscInt cStart, cEnd;
-
   err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
   quadrature.initializeGeometry();
-#if defined(PRECOMPUTE_GEOMETRY)
-  quadrature.computeGeometry(mesh, cells);
-#else
   scalar_array coordinatesCell(numBasis*spaceDim);
-  PetscSection coordSection;
-  Vec          coordVec;
+  PetscSection coordSection = NULL;
+  PetscVec coordVec = NULL;
   err = DMPlexGetCoordinateSection(dmMesh, &coordSection);CHECK_PETSC_ERROR(err);
   err = DMGetCoordinatesLocal(dmMesh, &coordVec);CHECK_PETSC_ERROR(err);
-#endif
 
   size_t size = 0;
 
   // Check values from computeGeometry()
   const PylithScalar tolerance = 1.0e-06;
   for (PetscInt c = cStart; c < cEnd; ++c) {
-#if defined(PRECOMPUTE_GEOMETRY)
-    quadrature.retrieveGeometry(c);
-#else
     PetscScalar *coordsArray = NULL;
     PetscInt coordsSize = 0;
 
     err = DMPlexVecGetClosure(dmMesh, coordSection, coordVec, c, &coordsSize, &coordsArray);CHECK_PETSC_ERROR(err);
     quadrature.computeGeometry(coordsArray, coordsSize, c);
     err = DMPlexVecRestoreClosure(dmMesh, coordSection, coordVec, c, &coordsSize, &coordsArray);CHECK_PETSC_ERROR(err);
-#endif
 
     const scalar_array& quadPts = quadrature.quadPts();
     size = numQuadPts * spaceDim;
@@ -274,11 +276,13 @@
   // Check clear()
   quadrature.clear();
   
-  CPPUNIT_ASSERT(0 == quadrature._geometryFields);
-  CPPUNIT_ASSERT(0 == quadrature._engine);
+  CPPUNIT_ASSERT(!quadrature._geometryFields);
+  CPPUNIT_ASSERT(!quadrature._engine);
 
   // Make sure caling clear without data doesn't generate errors 
   quadrature.clear();
+
+  PYLITH_METHOD_END;
 } // testComputeGeometry
 
 // ----------------------------------------------------------------------
@@ -286,7 +290,7 @@
 void
 pylith::feassemble::TestQuadrature::testComputeGeometryCell(void)
 { // testComputeGeometryCell
-  typedef pylith::topology::Mesh::SieveMesh SieveMesh;
+  PYLITH_METHOD_BEGIN;
 
   QuadratureData2DLinear data;
   const int cellDim = data.cellDim;
@@ -304,32 +308,6 @@
 
   const PylithScalar minJacobian = 1.0e-06;
 
-#if 0
-  // Create mesh with test cell
-  topology::Mesh mesh(data.cellDim);
-  const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
-  CPPUNIT_ASSERT(!sieveMesh.isNull());
-  ALE::Obj<SieveMesh::sieve_type> sieve = 
-    new SieveMesh::sieve_type(mesh.comm());
-  CPPUNIT_ASSERT(!sieve.isNull());
-
-  // Cells and vertices
-  const bool interpolate = false;
-  ALE::Obj<SieveFlexMesh::sieve_type> s = 
-    new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-  
-  ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s, cellDim, numCells,
-                                              const_cast<int*>(data.cells), 
-					      data.numVertices,
-                                              interpolate, numBasis);
-  std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
-  ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
-  sieveMesh->setSieve(sieve);
-  sieveMesh->stratify();
-  ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim, 
-						 data.vertices);
-#endif
-
   // Setup quadrature and compute geometry
   GeometryTri2D geometry;
   Quadrature<topology::Mesh> quadrature;
@@ -341,11 +319,6 @@
 			data.quadWts, numQuadPts,
 			spaceDim);
 
-#if 0
-  const ALE::Obj<SieveMesh::label_sequence>& cells = sieveMesh->heightStratum(0);
-  CPPUNIT_ASSERT(!cells.isNull());
-#endif
-
   quadrature.initializeGeometry();
   quadrature.computeGeometry(vertCoords, vertCoordsSize, 0);
   
@@ -380,8 +353,10 @@
 
   quadrature.clear();
 
-  CPPUNIT_ASSERT(0 == quadrature._geometryFields);
-  CPPUNIT_ASSERT(0 == quadrature._engine);
+  CPPUNIT_ASSERT(!quadrature._geometryFields);
+  CPPUNIT_ASSERT(!quadrature._engine);
+
+  PYLITH_METHOD_END;
 } // testComputeGeometryCell
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -23,6 +23,8 @@
 #include "pylith/feassemble/QuadratureRefCell.hh" // USES QuadratureRefCell
 #include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
 
+#include "pylith/utils/petscerror.h" // USES PYLITH_METHOD_BEGIN/END
+
 #include "data/QuadratureData.hh" // USES QuadratureData
 
 #include <string.h> // USES memcpy()
@@ -35,6 +37,8 @@
 void
 pylith::feassemble::TestQuadratureEngine::testCopyConstructor(void)
 { // testClone
+  PYLITH_METHOD_BEGIN;
+
   // Semi-random values manually set to check cloning
   const PylithScalar quadPtsE[] = { 12.8 };
   const PylithScalar jacobianE[] = { 2.56 };
@@ -66,7 +70,7 @@
 
   // Copy
   const QuadratureEngine* engine = engineOrig.clone();
-  CPPUNIT_ASSERT(0 != engine);
+  CPPUNIT_ASSERT(engine);
 
   const scalar_array& quadPts = engine->quadPts();
   size = 1;
@@ -93,6 +97,8 @@
     CPPUNIT_ASSERT_EQUAL(jacobianDetE[i], jacobianDet[i]);
 
   delete engine; engine = 0;
+
+  PYLITH_METHOD_END;
 } // testCopyConstructor
 
 // ----------------------------------------------------------------------
@@ -100,6 +106,8 @@
 void
 pylith::feassemble::TestQuadratureEngine::testInitialize(void)
 { // testInitialize
+  PYLITH_METHOD_BEGIN;
+
   const int cellDim = 2;
   const int numBasis = 5;
   const int numQuadPts = 1;
@@ -143,6 +151,8 @@
 
   size = numQuadPts * numBasis * spaceDim;
   CPPUNIT_ASSERT_EQUAL(size, engine.basisDeriv().size());
+
+  PYLITH_METHOD_END;
 } // testInitialize
 
 // ----------------------------------------------------------------------
@@ -153,6 +163,8 @@
 					      QuadratureRefCell* refCell,
 					      const QuadratureData& data) const
 { // testComputeGeometry
+  PYLITH_METHOD_BEGIN;
+
   const int cellDim = data.cellDim;
   const int numBasis = data.numBasis;
   const int numQuadPts = data.numQuadPts;
@@ -173,8 +185,8 @@
   const PylithScalar* basisDerivE = data.basisDeriv;
 
   CPPUNIT_ASSERT(1 == numCells);
-  CPPUNIT_ASSERT(0 != engine);
-  CPPUNIT_ASSERT(0 != refCell);
+  CPPUNIT_ASSERT(engine);
+  CPPUNIT_ASSERT(refCell);
 
   const PylithScalar minJacobian = 1.0e-06;
   refCell->minJacobian(minJacobian);
@@ -195,23 +207,21 @@
 
   size = numQuadPts * cellDim * spaceDim;
   for (int i=0; i < size; ++i)
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianE[i], engine->_jacobian[i], 
-				 tolerance);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianE[i], engine->_jacobian[i], tolerance);
 
   size = numQuadPts * spaceDim * cellDim;
   for (int i=0; i < size; ++i)
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianInvE[i], engine->_jacobianInv[i], 
-				 tolerance);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianInvE[i], engine->_jacobianInv[i], tolerance);
 
   size = numQuadPts;
   for (int i=0; i < size; ++i)
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianDetE[i], engine->_jacobianDet[i], 
-				 tolerance);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianDetE[i], engine->_jacobianDet[i], tolerance);
 
   size = numQuadPts * numBasis * spaceDim;
   for (int i=0; i < size; ++i)
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(basisDerivE[i], engine->_basisDeriv[i], 
-				 tolerance);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(basisDerivE[i], engine->_basisDeriv[i], tolerance);
+
+  PYLITH_METHOD_END;
 } // testComputeGeometry
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -23,6 +23,8 @@
 #include "pylith/feassemble/QuadratureRefCell.hh" // USES QuadratureRefCell
 #include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 
+#include "pylith/utils/petscerror.h" // USES PYLITH_METHOD_BEGIN/END
+
 #include "data/QuadratureData.hh" // USES QuadratureData
 
 #include <string.h> // USES memcpy()
@@ -35,7 +37,11 @@
 void
 pylith::feassemble::TestQuadratureRefCell::testConstructor(void)
 { // testConstructor
+  PYLITH_METHOD_BEGIN;
+
   QuadratureRefCell q;
+
+  PYLITH_METHOD_END;
 } // testMinJacobian
 
 // ----------------------------------------------------------------------
@@ -43,11 +49,15 @@
 void
 pylith::feassemble::TestQuadratureRefCell::testMinJacobian(void)
 { // testMinJacobian
+  PYLITH_METHOD_BEGIN;
+
   QuadratureRefCell q;
 
   const PylithScalar min = 1.0;
   q.minJacobian(min);
   CPPUNIT_ASSERT_EQUAL(min, q._minJacobian);
+
+  PYLITH_METHOD_END;
 } // testMinJacobian
 
 // ----------------------------------------------------------------------
@@ -55,6 +65,8 @@
 void
 pylith::feassemble::TestQuadratureRefCell::testRefGeometry(void)
 { // testRefGeometry
+  PYLITH_METHOD_BEGIN;
+
   GeometryLine1D geometry;
   QuadratureRefCell quadrature;
 
@@ -64,6 +76,8 @@
   CPPUNIT_ASSERT_EQUAL(geometry.cellDim(), test.cellDim());
   CPPUNIT_ASSERT_EQUAL(geometry.spaceDim(), test.spaceDim());
   CPPUNIT_ASSERT_EQUAL(geometry.numCorners(), test.numCorners());
+
+  PYLITH_METHOD_END;
 } // testRefGeometry
 
 // ----------------------------------------------------------------------
@@ -71,6 +85,7 @@
 void
 pylith::feassemble::TestQuadratureRefCell::testInitialize(void)
 { // initialize
+  PYLITH_METHOD_BEGIN;
   
   const int cellDim = 1;
   const int numBasis = 2;
@@ -109,6 +124,8 @@
   size = numQuadPts;
   for (int i=0; i < size; ++i)
     CPPUNIT_ASSERT_EQUAL(quadWts[i], q._quadWts[i]);
+
+  PYLITH_METHOD_END;
 } // initialize
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc	2013-04-24 19:55:25 UTC (rev 21925)
@@ -21,8 +21,14 @@
 // ----------------------------------------------------------------------
 // Constructor
 pylith::feassemble::ElasticityExplicitData::ElasticityExplicitData(void) :
+  lengthScale(1.0e+3),
+  pressureScale(2.25e+10),
+  densityScale(1.0),
+  timeScale(2.0),
   dtStableExplicit(1.0e+99)
 { // constructor
+  const PylithScalar velScale = lengthScale / timeScale;
+  densityScale = pressureScale / (velScale*velScale);
 } // constructor
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh	2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh	2013-04-24 19:55:25 UTC (rev 21925)
@@ -42,6 +42,14 @@
 // PUBLIC MEMBERS ///////////////////////////////////////////////////////
 public:
 
+  /// @name Scales information for nondimensionalization.
+  //@{
+  PylithScalar lengthScale; ///< Length scale.
+  PylithScalar pressureScale; ///< Pressure scale.
+  PylithScalar timeScale; ///< Time scale.
+  PylithScalar densityScale; ///< Density scale.
+  //@}  
+
   /// @name Calculated values.
   //@{
   PylithScalar dtStableExplicit; ///< Stable time step for explicit time integration.



More information about the CIG-COMMITS mailing list