[cig-commits] [commit] baagaard/dynrup-new-lagrange: Started reworking FaultCohesiveDyn test data (not done). (51e5990)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Mon May 12 17:30:49 PDT 2014


Repository : https://github.com/geodynamics/pylith

On branch  : baagaard/dynrup-new-lagrange
Link       : https://github.com/geodynamics/pylith/compare/fb509e6c0e6e127e85ad6256883c21fa0c799bc7...51e5990f4c018c4545a7a34547bdb2e1f538d629

>---------------------------------------------------------------

commit 51e5990f4c018c4545a7a34547bdb2e1f538d629
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Mon May 12 17:30:45 2014 -0700

    Started reworking FaultCohesiveDyn test data (not done).
    
    Values in unit tests still need updating.


>---------------------------------------------------------------

51e5990f4c018c4545a7a34547bdb2e1f538d629
 unittests/libtests/faults/TestFaultCohesiveDyn.cc  | 176 ++++-----------------
 unittests/libtests/faults/data/CohesiveDynData.cc  |  11 +-
 unittests/libtests/faults/data/CohesiveDynData.hh  |   8 +-
 .../libtests/faults/data/CohesiveDynDataHex8.cc    |  54 +++----
 .../libtests/faults/data/CohesiveDynDataHex8.hh    |   8 +-
 .../libtests/faults/data/CohesiveDynDataQuad4.cc   |  38 ++---
 .../libtests/faults/data/CohesiveDynDataQuad4.hh   |   8 +-
 .../libtests/faults/data/CohesiveDynDataTet4.cc    |  42 +++--
 .../libtests/faults/data/CohesiveDynDataTet4.hh    |   8 +-
 .../libtests/faults/data/CohesiveDynDataTri3.cc    |  36 ++---
 .../libtests/faults/data/CohesiveDynDataTri3.hh    |   8 +-
 .../libtests/faults/data/CohesiveDynDataTri3d.cc   |  43 +++--
 .../libtests/faults/data/CohesiveDynDataTri3d.hh   |   8 +-
 13 files changed, 154 insertions(+), 294 deletions(-)

diff --git a/unittests/libtests/faults/TestFaultCohesiveDyn.cc b/unittests/libtests/faults/TestFaultCohesiveDyn.cc
index cb19bf9..1185ae9 100644
--- a/unittests/libtests/faults/TestFaultCohesiveDyn.cc
+++ b/unittests/libtests/faults/TestFaultCohesiveDyn.cc
@@ -240,68 +240,34 @@ pylith::faults::TestFaultCohesiveDyn::testIntegrateResidualStick(void)
   const topology::Field& residual = fields.get("residual");
   fault.integrateResidual(residual, t, &fields);
   
-  topology::Field& solution = fields.solution();
-  const topology::Field& dispIncrAdj = fields.get("dispIncr adjust");
-  solution += dispIncrAdj;
-
   fault.updateStateVars(t, &fields);
 
-  { // Check solution values
-    // No change to Lagrange multipliers for stick case.
-
+  //residual.view("RESIDUAL"); // DEBUGGING
+  { // Check residual values
     PetscDM dmMesh = mesh.dmMesh();CPPUNIT_ASSERT(dmMesh);
     topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
     const PetscInt vStart = verticesStratum.begin();
     const PetscInt vEnd = verticesStratum.end();
 
-    topology::VecVisitorMesh dispIncrVisitor(fields.get("dispIncr(t->t+dt)"));
-    const PetscScalar* dispIncrArray = dispIncrVisitor.localArray();CPPUNIT_ASSERT(dispIncrArray);
-
-    const PylithScalar* valsE = _data->fieldIncrStick;CPPUNIT_ASSERT(valsE);
-    const int fiberDimE = spaceDim; // number of values per point
-    const PylithScalar tolerance = 1.0e-06;
-    for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
-      const PetscInt off = dispIncrVisitor.sectionOffset(v);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, dispIncrVisitor.sectionDof(v));
-      for(PetscInt d = 0; d < fiberDimE; ++d) {
-        const PylithScalar valE = valsE[iVertex*spaceDim+d];
-        if (fabs(valE) > tolerance) {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dispIncrArray[off+d]/valE, tolerance);
-        } else {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, dispIncrArray[off+d], tolerance);
-	} // if/else
-      } // for
-    } // for
-  } // Check solution values
-
-  { // Check slip values
-    // Slip should be zero for the stick case.
-
-    // Get fault vertex info
-    PetscDM faultDMMesh = fault._faultMesh->dmMesh();CPPUNIT_ASSERT(faultDMMesh);
-    topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
-    const PetscInt vStart = verticesStratum.begin();
-    const PetscInt vEnd = verticesStratum.end();
-    
-    topology::VecVisitorMesh slipVisitor(fault.vertexField("slip"));
-    const PetscScalar* slipArray = slipVisitor.localArray();CPPUNIT_ASSERT(slipArray);
+    topology::VecVisitorMesh residualVisitor(fields.get("residual"));
+    const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
 
-    const PylithScalar* valsE = _data->slipStickE;CPPUNIT_ASSERT(valsE);
+    const PylithScalar* residualE = _data->residualStickE;CPPUNIT_ASSERT(residualE);
     const int fiberDimE = spaceDim; // number of values per point
     const PylithScalar tolerance = 1.0e-06;
-    for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
-      const PetscInt off = slipVisitor.sectionOffset(v);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, slipVisitor.sectionDof(v));
+    for (PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+      const PetscInt off = residualVisitor.sectionOffset(v);
+      CPPUNIT_ASSERT_EQUAL(fiberDimE, residualVisitor.sectionDof(v));
       for(PetscInt d = 0; d < fiberDimE; ++d) {
-        const PylithScalar valE = valsE[iVertex*spaceDim+d];
+        const PylithScalar valE = residualE[iVertex*spaceDim+d];
         if (fabs(valE) > tolerance) {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, slipArray[off+d]/valE, tolerance);
+          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valE, tolerance);
         } else {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, slipArray[off+d], tolerance);
+          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, residualArray[off+d], tolerance);
 	} // if/else
       } // for
     } // for
-  } // Check slip values
+  } // Check residual values
 
   PYLITH_METHOD_END;
 } // testIntegrateResidualStick
@@ -331,71 +297,32 @@ pylith::faults::TestFaultCohesiveDyn::testIntegrateResidualSlip(void)
   const topology::Field& residual = fields.get("residual");
   fault.integrateResidual(residual, t, &fields);
 
-  topology::Field& solution = fields.solution();
-  const topology::Field& dispIncrAdj = fields.get("dispIncr adjust");
-  solution += dispIncrAdj;
-
-  fault.updateStateVars(t, &fields);
-
-  //solution.view("SOLUTION"); // DEBUGGING
-
-  { // Check solution values
-    // Lagrange multipliers should be adjusted according to friction
-    // as reflected in the fieldIncrSlipE data member.
-
+  //residual.view("RESIDUAL"); // DEBUGGING
+  { // Check residual values
     PetscDM dmMesh = mesh.dmMesh();CPPUNIT_ASSERT(dmMesh);
     topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
     const PetscInt vStart = verticesStratum.begin();
     const PetscInt vEnd = verticesStratum.end();
 
-    topology::VecVisitorMesh dispIncrVisitor(fields.get("dispIncr(t->t+dt)"));
-    const PetscScalar* dispIncrArray = dispIncrVisitor.localArray();CPPUNIT_ASSERT(dispIncrArray);
+    topology::VecVisitorMesh residualVisitor(fields.get("residual"));
+    const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
 
-    const PylithScalar* valsE = _data->fieldIncrSlipE;CPPUNIT_ASSERT(valsE);
+    const PylithScalar* residualE = _data->residualSlipE;CPPUNIT_ASSERT(residualE);
     const int fiberDimE = spaceDim; // number of values per point
     const PylithScalar tolerance = 1.0e-06;
     for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
-      const PetscInt off = dispIncrVisitor.sectionOffset(v);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, dispIncrVisitor.sectionDof(v));
-      for(PetscInt d = 0; d < fiberDimE; ++d) {
-        const PylithScalar valE = valsE[iVertex*spaceDim+d];
-        if (fabs(valE) > tolerance) {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dispIncrArray[off+d]/valE, tolerance);
-        } else {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, dispIncrArray[off+d], tolerance);
-	} // if/else
-      } // for
-    } // for
-  } // Check solution values
-
-  { // Check slip values
-    // Slip values should be adjusted based on the change in the
-    // Lagrange multipliers as reflected in the slipSlipE data member.
-
-    PetscDM faultDMMesh = fault._faultMesh->dmMesh();CPPUNIT_ASSERT(faultDMMesh);
-    topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
-    const PetscInt vStart = verticesStratum.begin();
-    const PetscInt vEnd = verticesStratum.end();
-
-    topology::VecVisitorMesh slipVisitor(fault.vertexField("slip"));
-    const PetscScalar* slipArray = slipVisitor.localArray();CPPUNIT_ASSERT(slipArray);
-
-    const PylithScalar* valsE = _data->slipSlipE;CPPUNIT_ASSERT(valsE);
-    const int fiberDimE = spaceDim; // number of values per point
-    const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-5;
-    for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
-      const PetscInt off = slipVisitor.sectionOffset(v);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, slipVisitor.sectionDof(v));
+      const PetscInt off = residualVisitor.sectionOffset(v);
+      CPPUNIT_ASSERT_EQUAL(fiberDimE, residualVisitor.sectionDof(v));
       for(PetscInt d = 0; d < fiberDimE; ++d) {
-        const PylithScalar valE = valsE[iVertex*spaceDim+d];
+        const PylithScalar valE = residualE[iVertex*spaceDim+d];
         if (fabs(valE) > tolerance) {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, slipArray[off+d]/valE, tolerance);
+          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valE, tolerance);
         } else {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, slipArray[off+d], tolerance);
+          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, residualArray[off+d], tolerance);
 	} // if/else
       } // for
     } // for
-  } // Check slip values
+  } // Check residual values
 
   PYLITH_METHOD_END;
 } // testIntegrateResidualSlip
@@ -431,65 +358,32 @@ pylith::faults::TestFaultCohesiveDyn::testIntegrateResidualOpen(void)
 
   fault.updateStateVars(t, &fields);
 
-  //solution.view("SOLUTION"); // DEBUGGING
-
-  { // Check solution values
-    // Lagrange multipliers should be set to zero as reflected in the
-    // fieldIncrOpenE data member.
-
+  //residual.view("RESIDUAL"); // DEBUGGING
+  { // Check residual values
     PetscDM dmMesh = mesh.dmMesh();CPPUNIT_ASSERT(dmMesh);
     topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
     const PetscInt vStart = verticesStratum.begin();
     const PetscInt vEnd = verticesStratum.end();
 
-    topology::VecVisitorMesh dispIncrVisitor(fields.get("dispIncr(t->t+dt)"));
-    const PetscScalar* dispIncrArray = dispIncrVisitor.localArray();CPPUNIT_ASSERT(dispIncrArray);
+    topology::VecVisitorMesh residualVisitor(fields.get("residual"));
+    const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
 
-    const PylithScalar* valsE = _data->fieldIncrOpenE;CPPUNIT_ASSERT(valsE);
+    const PylithScalar* residualE = _data->residualOpenE;CPPUNIT_ASSERT(residualE);
     const int fiberDimE = spaceDim; // number of values per point
-    const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
-    for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
-      const PetscInt off = dispIncrVisitor.sectionOffset(v);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, dispIncrVisitor.sectionDof(v));
-      for(PetscInt d = 0; d < fiberDimE; ++d) {
-        const PylithScalar valE = valsE[iVertex*spaceDim+d];
-        if (fabs(valE) > tolerance) {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dispIncrArray[off+d]/valE, tolerance);
-        } else {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, dispIncrArray[off+d], tolerance);
-	} // if/else
-      } // for
-    } // for
-  } // Check solution values
-
-  { // Check slip values
-    // Slip values should be adjusted based on the change in the
-    // Lagrange multipliers as reflected in the slipOpenE data member.
-
-    PetscDM faultDMMesh = fault._faultMesh->dmMesh();CPPUNIT_ASSERT(faultDMMesh);
-    topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
-    const PetscInt vStart = verticesStratum.begin();
-    const PetscInt vEnd = verticesStratum.end();
-    
-    topology::VecVisitorMesh slipVisitor(fault.vertexField("slip"));
-    const PetscScalar* slipArray = slipVisitor.localArray();CPPUNIT_ASSERT(slipArray);
-
-    const PylithScalar* valsE = _data->slipOpenE;CPPUNIT_ASSERT(valsE);
-    const int fiberDimE = spaceDim; // number of values per point
-    const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+    const PylithScalar tolerance = 1.0e-06;
     for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
-      const PetscInt off = slipVisitor.sectionOffset(v);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, slipVisitor.sectionDof(v));
+      const PetscInt off = residualVisitor.sectionOffset(v);
+      CPPUNIT_ASSERT_EQUAL(fiberDimE, residualVisitor.sectionDof(v));
       for(PetscInt d = 0; d < fiberDimE; ++d) {
-        const PylithScalar valE = valsE[iVertex*spaceDim+d];
+        const PylithScalar valE = residualE[iVertex*spaceDim+d];
         if (fabs(valE) > tolerance) {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, slipArray[off+d]/valE, tolerance);
+          CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valE, tolerance);
         } else {
-          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, slipArray[off+d], tolerance);
+          CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, residualArray[off+d], tolerance);
 	} // if/else
       } // for
     } // for
-  } // Check slip values
+  } // Check residual values
 
   PYLITH_METHOD_END;
 } // testIntegrateResidualOpen
diff --git a/unittests/libtests/faults/data/CohesiveDynData.cc b/unittests/libtests/faults/data/CohesiveDynData.cc
index d2f46d9..32a2dfc 100644
--- a/unittests/libtests/faults/data/CohesiveDynData.cc
+++ b/unittests/libtests/faults/data/CohesiveDynData.cc
@@ -44,14 +44,13 @@ pylith::faults::CohesiveDynData::CohesiveDynData(void) :
   fieldIncrOpen(0),
   jacobian(0),
   orientation(0),
-  initialTractions(0),
   area(0),
-  slipStickE(0),
-  fieldIncrSlipE(0),
-  slipSlipE(0),
-  fieldIncrOpenE(0),
-  slipOpenE(0),
+  initialTractions(0),
+  residualStickE(0),
+  residualSlipE(0),
+  residualOpenE(0),
   constraintEdges(0),
+  negativeVertices(0),
   numConstraintEdges(0)
 { // constructor
   const PylithScalar velScale = lengthScale / timeScale;
diff --git a/unittests/libtests/faults/data/CohesiveDynData.hh b/unittests/libtests/faults/data/CohesiveDynData.hh
index 95be8a5..dcc7308 100644
--- a/unittests/libtests/faults/data/CohesiveDynData.hh
+++ b/unittests/libtests/faults/data/CohesiveDynData.hh
@@ -86,11 +86,9 @@ public:
   PylithScalar* orientation; ///< Expected values for fault orientation.
   PylithScalar* area; ///< Expected values for fault area.
   PylithScalar* initialTractions; ///< Expected values for initial tractions.
-  PylithScalar* slipStickE; ///< Expected values for slip for sticking case.
-  PylithScalar* fieldIncrSlipE; ///< Expected values for solution increment for slipping case.
-  PylithScalar* slipSlipE; ///< Expected values for slip for slipping case.
-  PylithScalar* fieldIncrOpenE; ///< Expected values for solution increment for opening case.
-  PylithScalar* slipOpenE; ///< Expected values for slip for opening case.
+  PylithScalar* residualStickE; ///< Expected values for residual for sticking case.
+  PylithScalar* residualSlipE; ///< Expected values for residual increment for slipping case.
+  PylithScalar* residualOpenE; ///< Expected values for residual increment for opening case.
 
   int* constraintEdges; ///< Expected points for constraint edges
   int* negativeVertices; ///< Expected points for negative side fault vertices
diff --git a/unittests/libtests/faults/data/CohesiveDynDataHex8.cc b/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
index 71d8097..6937753 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
+++ b/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
@@ -1382,12 +1382,28 @@ const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrStick[5*4*3] =
  -17.666666666667, 10.0, 2.0, // 62
 };
 
-// No slip
-const PylithScalar pylith::faults::CohesiveDynDataHex8::_slipStickE[] = {
-  0.7,  0.8,  0.0,
-  0.9,  1.0,  0.0,
-  1.0,  0.9,  0.0,
-  0.8,  0.7,  0.0,
+// Output
+const PylithScalar pylith::faults::CohesiveDynDataHex8::_residualStickE[20*3] = {
+   1.100000000000,   2.100000000000,   0.100000000000,
+   1.200000000000,   2.200000000000,   0.200000000000,
+   1.300000000000,   2.300000000000,   0.300000000000,
+   1.400000000000,   2.400000000000,   0.400000000000,
+   1.500000000000,   2.500001245294,   0.500000812227,
+   1.600000000000,   2.600000694980,   0.600000786664,
+   1.700000000000,   2.700000891763,   0.700000882544,
+   1.800000000000,   2.800000903108,   0.800000871357,
+   1.900000000000,   2.900000000000,   0.900000000000,
+   1.000000000000,   2.000000000000,   0.000000000000,
+   1.100000000000,   2.100000000000,   0.100000000000,
+   1.200000000000,   2.200000000000,   0.200000000000,
+   1.500000000000,   2.499998754706,   0.499999187773,
+   1.600000000000,   2.599999305020,   0.599999213336,
+   1.700000000000,   2.699999108237,   0.699999117456,
+   1.800000000000,   2.799999096892,   0.799999128643,
+  -1.400000000000,   0.328479469127,  -1.239953753608,
+  -1.600000000000,   0.293941190358,  -1.262585961634,
+  -1.800000000000,   0.259995967920,  -1.286431883494,
+  -1.000000000000,   0.342606428329,  -1.125914857337,
 };
 
 // ----------------------------------------------------------------------
@@ -1418,7 +1434,7 @@ const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrSlip[5*4*3] =
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrSlipE[20*3] = {
+const PylithScalar pylith::faults::CohesiveDynDataHex8::_residualSlipE[20*3] = {
    1.100000000000,   2.100000000000,   0.100000000000,
    1.200000000000,   2.200000000000,   0.200000000000,
    1.300000000000,   2.300000000000,   0.300000000000,
@@ -1441,13 +1457,6 @@ const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrSlipE[20*3] =
   -1.000000000000,   0.342606428329,  -1.125914857337,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataHex8::_slipSlipE[] = {
-   0.699997509413,   0.799998375546,   0.000000000000,
-   0.899998610039,   0.999998426672,   0.000000000000,
-   0.999998216473,   0.899998234913,   0.000000000000,
-   0.799998193784,   0.699998257287,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 // Open case
 // ----------------------------------------------------------------------
@@ -1476,7 +1485,7 @@ const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrOpen[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrOpenE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataHex8::_residualOpenE[] = {
    1.100000000000,   2.100000000000,   0.100000000000,
    1.200000000000,   2.200000000000,   0.200000000000,
    1.300000000000,   2.300000000000,   0.300000000000,
@@ -1499,13 +1508,6 @@ const PylithScalar pylith::faults::CohesiveDynDataHex8::_fieldIncrOpenE[] = {
    4.000000000000,  -2.000000000000,  -3.000000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataHex8::_slipOpenE[] = {
-   0.699984235848,   0.799989413370,   0.000000000000,
-   0.899990250419,   0.999989418790,   0.000000000000,
-   0.999987823504,   0.899988081646,   0.000000000000,
-   0.799987427233,   0.699987868197,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 pylith::faults::CohesiveDynDataHex8::CohesiveDynDataHex8(void)
 { // constructor
@@ -1535,17 +1537,15 @@ pylith::faults::CohesiveDynDataHex8::CohesiveDynDataHex8(void)
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
-  slipStickE = const_cast<PylithScalar*>(_slipStickE);
+  residualStickE = const_cast<PylithScalar*>(_residualStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);
-  fieldIncrSlipE = const_cast<PylithScalar*>(_fieldIncrSlipE);
-  slipSlipE = const_cast<PylithScalar*>(_slipSlipE);
+  residualSlipE = const_cast<PylithScalar*>(_residualSlipE);
 
   // Open
   fieldIncrOpen = const_cast<PylithScalar*>(_fieldIncrOpen);
-  fieldIncrOpenE = const_cast<PylithScalar*>(_fieldIncrOpenE);
-  slipOpenE = const_cast<PylithScalar*>(_slipOpenE);
+  residualOpenE = const_cast<PylithScalar*>(_residualOpenE);
 } // constructor
 
 pylith::faults::CohesiveDynDataHex8::~CohesiveDynDataHex8(void)
diff --git a/unittests/libtests/faults/data/CohesiveDynDataHex8.hh b/unittests/libtests/faults/data/CohesiveDynDataHex8.hh
index 30057a1..48dc26a 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataHex8.hh
+++ b/unittests/libtests/faults/data/CohesiveDynDataHex8.hh
@@ -68,11 +68,9 @@ private:
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
-  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
-  static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
-  static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
-  static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.
-  static const PylithScalar _slipOpenE[]; ///< Expected values for slip for opening case.
+  static const PylithScalar _residualStickE[]; ///< Expected values for residual for stick case.
+  static const PylithScalar _residualSlipE[]; ///< Expected values for residual for slip case.
+  static const PylithScalar _residualOpenE[]; ///< Expected values for residual for opening case.
   static const int _constraintEdges[]; ///< Expected points for constraint edges
   static const int _negativeVertices[]; ///< Expected points for negative-side fault vertices
   static const int _numConstraintEdges; ///< Number of constraint edges
diff --git a/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc b/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
index 5c4dfae..970cb87 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
+++ b/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
@@ -312,10 +312,18 @@ const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrStick[] = {
  -21.6,  2.5, // 20
 };
 
-// No change in slip
-const PylithScalar pylith::faults::CohesiveDynDataQuad4::_slipStickE[] = {
-  0.4,  0.0,
-  0.5,  0.0,
+// Output
+const PylithScalar pylith::faults::CohesiveDynDataQuad4::_residualStickE[] = {
+  1.1, 2.1,
+  1.4, 2.4,
+  1.2, 2.2, // 4
+  1.3, 2.3, // 5
+  1.5, 2.5,
+  1.6, 2.6,
+  1.2, 2.2, // 8
+  1.3, 2.3, // 9
+ -21.6,  2.6, // 19
+ -21.6,  2.5, // 20
 };
 
 // ----------------------------------------------------------------------
@@ -336,7 +344,7 @@ const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrSlip[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrSlipE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataQuad4::_residualSlipE[] = {
    1.100000000000,   2.100000000000,
    1.200000000000,   2.200000000000,
    1.200000000000,   2.200157498929,
@@ -349,11 +357,6 @@ const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrSlipE[] = {
   -1.800000000000,  -3.440000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataQuad4::_slipSlipE[] = {
-   0.399685002143,   0.000000000000,
-   0.498062228219,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 // Open case
 // ----------------------------------------------------------------------
@@ -372,7 +375,7 @@ const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrOpen[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrOpenE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataQuad4::_residualOpenE[] = {
    1.100000000000,   2.100000000000,
    1.200000000000,   2.200000000000,
    1.199388886535,   2.200357375764,
@@ -385,11 +388,6 @@ const PylithScalar pylith::faults::CohesiveDynDataQuad4::_fieldIncrOpenE[] = {
    8.800000000000,  -9.800000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataQuad4::_slipOpenE[] = {
-   0.399285248472,   0.001222226930,
-   0.499920967705,   0.001165826903,
-};
-
 // ----------------------------------------------------------------------
 pylith::faults::CohesiveDynDataQuad4::CohesiveDynDataQuad4(void)
 { // constructor
@@ -419,17 +417,15 @@ pylith::faults::CohesiveDynDataQuad4::CohesiveDynDataQuad4(void)
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
-  slipStickE = const_cast<PylithScalar*>(_slipStickE);
+  residualStickE = const_cast<PylithScalar*>(_residualStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);
-  fieldIncrSlipE = const_cast<PylithScalar*>(_fieldIncrSlipE);
-  slipSlipE = const_cast<PylithScalar*>(_slipSlipE);
+  residualSlipE = const_cast<PylithScalar*>(_residualSlipE);
 
   // Open
   fieldIncrOpen = const_cast<PylithScalar*>(_fieldIncrOpen);
-  fieldIncrOpenE = const_cast<PylithScalar*>(_fieldIncrOpenE);
-  slipOpenE = const_cast<PylithScalar*>(_slipOpenE);
+  residualOpenE = const_cast<PylithScalar*>(_residualOpenE);
 } // constructor
 
 pylith::faults::CohesiveDynDataQuad4::~CohesiveDynDataQuad4(void)
diff --git a/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh b/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh
index 1bc4432..1a375ef 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh
+++ b/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh
@@ -68,11 +68,9 @@ private:
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
-  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
-  static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
-  static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
-  static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.
-  static const PylithScalar _slipOpenE[]; ///< Expected values for slip for opening case.
+  static const PylithScalar _residualStickE[]; ///< Expected values for residual for stick case.
+  static const PylithScalar _residualSlipE[]; ///< Expected values for residual for slip case.
+  static const PylithScalar _residualOpenE[]; ///< Expected values for residual for opening case.
   static const int _constraintEdges[]; ///< Expected points for constraint edges
   static const int _negativeVertices[]; ///< Expected points for negative-side fault vertices
   static const int _numConstraintEdges; ///< Number of constraint edges
diff --git a/unittests/libtests/faults/data/CohesiveDynDataTet4.cc b/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
index d98e9cb..d97b48b 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
+++ b/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
@@ -518,11 +518,19 @@ const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrStick[] = {
  -81.1, 2.1, 3.1, // 36
 };
 
-// No slip
-const PylithScalar pylith::faults::CohesiveDynDataTet4::_slipStickE[] = {
-  0.0,  0.0,  0.0,
-  0.0,  0.0,  0.0,
-  0.0,  0.0,  0.0,
+// Output
+const PylithScalar pylith::faults::CohesiveDynDataTet4::_residualStickE[] = {
+  1.1, 2.1, 3.1,
+  1.2, 2.2, 3.2, // 4
+  1.3, 2.3, 3.3, // 5
+  1.4, 2.4, 3.4, // 6
+  1.5, 2.5, 3.5,
+  1.2, 2.2, 3.2, // 8
+  1.3, 2.3, 3.3, // 9
+  1.4, 2.4, 3.4, // 10
+ -81.7, 2.7, 3.7, // 34
+ -81.9, 2.9, 3.9, // 35
+ -81.1, 2.1, 3.1, // 36
 };
 
 // ----------------------------------------------------------------------
@@ -544,7 +552,7 @@ const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrSlip[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrSlipE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataTet4::_residualSlipE[] = {
    1.100000000000,   2.100000000000,   3.100000000000,
    1.200000000000,   2.200000916680,   3.200000185945,
    1.300000000000,   2.299999954294,   3.300000084646,
@@ -558,12 +566,6 @@ const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrSlipE[] = {
   -4.100000000000, -13.548480328050, -14.156107942537,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataTet4::_slipSlipE[] = {
-  -0.000001833360,  -0.000000371890,   0.000000000000,
-   0.000000091413,  -0.000000169291,   0.000000000000,
-  -0.000000930394,  -0.000000739303,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 // Open case
 // ----------------------------------------------------------------------
@@ -583,7 +585,7 @@ const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrOpen[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrOpenE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataTet4::_residualOpenE[] = {
    1.100000000000,   2.100000000000,   3.100000000000,
    1.199999161233,   2.200004202086,   3.200002477003,
    1.299998110594,   2.300001999917,   3.300002482177,
@@ -597,12 +599,6 @@ const PylithScalar pylith::faults::CohesiveDynDataTet4::_fieldIncrOpenE[] = {
    7.100000000000, -18.100000000000, -19.100000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataTet4::_slipOpenE[] = {
-  -0.000008404171,  -0.000004954006,   0.000001677534,
-  -0.000003999835,  -0.000004964354,   0.000003778811,
-  -0.000005176299,  -0.000004948142,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 pylith::faults::CohesiveDynDataTet4::CohesiveDynDataTet4(void)
 { // constructor
@@ -632,17 +628,15 @@ pylith::faults::CohesiveDynDataTet4::CohesiveDynDataTet4(void)
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
-  slipStickE = const_cast<PylithScalar*>(_slipStickE);
+  residualStickE = const_cast<PylithScalar*>(_residualStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);
-  fieldIncrSlipE = const_cast<PylithScalar*>(_fieldIncrSlipE);
-  slipSlipE = const_cast<PylithScalar*>(_slipSlipE);
+  residualSlipE = const_cast<PylithScalar*>(_residualSlipE);
 
   // Open
   fieldIncrOpen = const_cast<PylithScalar*>(_fieldIncrOpen);
-  fieldIncrOpenE = const_cast<PylithScalar*>(_fieldIncrOpenE);
-  slipOpenE = const_cast<PylithScalar*>(_slipOpenE);
+  residualOpenE = const_cast<PylithScalar*>(_residualOpenE);
 } // constructor
 
 pylith::faults::CohesiveDynDataTet4::~CohesiveDynDataTet4(void)
diff --git a/unittests/libtests/faults/data/CohesiveDynDataTet4.hh b/unittests/libtests/faults/data/CohesiveDynDataTet4.hh
index c9057f7..6e79090 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataTet4.hh
+++ b/unittests/libtests/faults/data/CohesiveDynDataTet4.hh
@@ -68,11 +68,9 @@ private:
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
-  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
-  static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
-  static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
-  static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.
-  static const PylithScalar _slipOpenE[]; ///< Expected values for slip for opening case.
+  static const PylithScalar _residualStickE[]; ///< Expected values for residual for stick case.
+  static const PylithScalar _residualSlipE[]; ///< Expected values for residual for slip case.
+  static const PylithScalar _residualOpenE[]; ///< Expected values for residual for opening case.
   static const int _constraintEdges[]; ///< Expected points for constraint edges
   static const int _negativeVertices[]; ///< Expected points for negative-side fault vertices
   static const int _numConstraintEdges; ///< Number of constraint edges
diff --git a/unittests/libtests/faults/data/CohesiveDynDataTri3.cc b/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
index 35ed5c1..67a5f75 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
+++ b/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
@@ -280,10 +280,16 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrStick[] = {
  -21.8, 2.8, // 16
 };
 
-// No slip
-const PylithScalar pylith::faults::CohesiveDynDataTri3::_slipStickE[] = {
- 0.0,  0.0,
- 0.0,  0.0,
+// Output
+const PylithScalar pylith::faults::CohesiveDynDataTri3::_residualStickE[] = {
+  1.1, 2.1,
+  1.2, 2.2, // 3
+  1.3, 2.3, // 4
+  1.4, 2.4,
+  1.2, 2.2, // 6
+  1.3, 2.3, // 7
+ -21.6, 2.6, // 15
+ -21.8, 2.8, // 16
 };
 
 // ----------------------------------------------------------------------
@@ -302,7 +308,7 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrSlip[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrSlipE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataTri3::_residualSlipE[] = {
    9.100000000000,   7.100000000000,
    9.200000000000,   7.200190546440,
    9.300000000000,   7.300983993112,
@@ -313,11 +319,6 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrSlipE[] = {
   -1.800000000000,  -3.440000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataTri3::_slipSlipE[] = {
-  -0.000381092881,   0.000000000000,
-  -0.001967986224,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 // Open case
 // ----------------------------------------------------------------------
@@ -334,7 +335,7 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrOpen[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrOpenE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataTri3::_residualOpenE[] = {
    9.100000000000,   7.100000000000,
    9.199826714877,   7.200414257705,
    9.299943020362,   7.300360547702,
@@ -345,11 +346,6 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3::_fieldIncrOpenE[] = {
    8.800000000000,  -9.800000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataTri3::_slipOpenE[] = {
-  -0.000828515410,   0.000346570247,
-  -0.000721095405,   0.000113959275,
-};
-
 // ----------------------------------------------------------------------
 pylith::faults::CohesiveDynDataTri3::CohesiveDynDataTri3(void)
 { // constructor
@@ -379,17 +375,15 @@ pylith::faults::CohesiveDynDataTri3::CohesiveDynDataTri3(void)
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
-  slipStickE = const_cast<PylithScalar*>(_slipStickE);
+  residualStickE = const_cast<PylithScalar*>(_residualStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);
-  fieldIncrSlipE = const_cast<PylithScalar*>(_fieldIncrSlipE);
-  slipSlipE = const_cast<PylithScalar*>(_slipSlipE);
+  residualSlipE = const_cast<PylithScalar*>(_residualSlipE);
 
   // Open
   fieldIncrOpen = const_cast<PylithScalar*>(_fieldIncrOpen);
-  fieldIncrOpenE = const_cast<PylithScalar*>(_fieldIncrOpenE);
-  slipOpenE = const_cast<PylithScalar*>(_slipOpenE);
+  residualOpenE = const_cast<PylithScalar*>(_residualOpenE);
 } // constructor
 
 pylith::faults::CohesiveDynDataTri3::~CohesiveDynDataTri3(void)
diff --git a/unittests/libtests/faults/data/CohesiveDynDataTri3.hh b/unittests/libtests/faults/data/CohesiveDynDataTri3.hh
index 18f039c..f31d904 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataTri3.hh
+++ b/unittests/libtests/faults/data/CohesiveDynDataTri3.hh
@@ -68,11 +68,9 @@ private:
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
-  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
-  static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
-  static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
-  static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.
-  static const PylithScalar _slipOpenE[]; ///< Expected values for slip for opening case.
+  static const PylithScalar _residualStickE[]; ///< Expected values for residual for stick case.
+  static const PylithScalar _residualSlipE[]; ///< Expected values for residual for slip case.
+  static const PylithScalar _residualOpenE[]; ///< Expected values for residual for opening case.
   static const int _constraintEdges[]; ///< Expected points for constraint edges
   static const int _negativeVertices[]; ///< Expected points for negative-side fault vertices
   static const int _numConstraintEdges; ///< Number of constraint edges
diff --git a/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc b/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc
index b7ff164..fdc8f14 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc
+++ b/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc
@@ -466,11 +466,20 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrStick[] = {
   2.2,-22.2, // 28
 };
 
-// No slip
-const PylithScalar pylith::faults::CohesiveDynDataTri3d::_slipStickE[] = {
- 0.0,  0.0,
- 0.0,  0.0,
- 0.0,  0.0,
+// Output
+const PylithScalar pylith::faults::CohesiveDynDataTri3d::_residualStickE[] = {
+  1.1, 2.1,
+  1.2, 2.2, // 5
+  1.3, 2.3, // 6
+  1.4, 2.4,
+  1.5, 2.5, // 8
+  1.6, 2.6,
+  1.2, 2.2, // 10
+  1.3, 2.3, // 11
+  1.5, 2.5, // 12
+ -21.8,-22.8, // 26
+ -21.0, 2.0, // 27
+  2.2,-22.2, // 28
 };
 
 // ----------------------------------------------------------------------
@@ -493,7 +502,7 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrSlip[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrSlipE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataTri3d::_residualSlipE[] = {
    1.100000000000,   2.100000000000,
    1.199970441179,   2.200029558821,
    1.300000000000,   2.299168310929,
@@ -508,12 +517,6 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrSlipE[] = {
    0.040000000000,  -1.200000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataTri3d::_slipSlipE[] = {
-  -0.000083604971,   0.000000000000,
-   0.001663378142,   0.000000000000,
-  -0.001020100652,   0.000000000000,
-};
-
 // ----------------------------------------------------------------------
 // Open case
 // ----------------------------------------------------------------------
@@ -534,7 +537,7 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrOpen[] = {
 };
 
 // Output
-const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrOpenE[] = {
+const PylithScalar pylith::faults::CohesiveDynDataTri3d::_residualOpenE[] = {
    1.100000000000,   2.100000000000,
    1.190062443638,   2.192265294477,
    1.292981353233,   2.293412522606,
@@ -549,12 +552,6 @@ const PylithScalar pylith::faults::CohesiveDynDataTri3d::_fieldIncrOpenE[] = {
   -3.200000000000,   4.200000000000,
 };
 
-const PylithScalar pylith::faults::CohesiveDynDataTri3d::_slipOpenE[] = {
-  -0.003115301533,   0.024992352435,
-   0.013174954788,   0.014037293534,
-  -0.009924592753,   0.010297547694,
-};
-
 // ----------------------------------------------------------------------
 pylith::faults::CohesiveDynDataTri3d::CohesiveDynDataTri3d(void)
 { // constructor
@@ -584,17 +581,15 @@ pylith::faults::CohesiveDynDataTri3d::CohesiveDynDataTri3d(void)
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
-  slipStickE = const_cast<PylithScalar*>(_slipStickE);
+  residualStickE = const_cast<PylithScalar*>(_residualStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);
-  fieldIncrSlipE = const_cast<PylithScalar*>(_fieldIncrSlipE);
-  slipSlipE = const_cast<PylithScalar*>(_slipSlipE);
+  residualSlipE = const_cast<PylithScalar*>(_residualSlipE);
 
   // Open
   fieldIncrOpen = const_cast<PylithScalar*>(_fieldIncrOpen);
-  fieldIncrOpenE = const_cast<PylithScalar*>(_fieldIncrOpenE);
-  slipOpenE = const_cast<PylithScalar*>(_slipOpenE);
+  residualOpenE = const_cast<PylithScalar*>(_residualOpenE);
 } // constructor
 
 pylith::faults::CohesiveDynDataTri3d::~CohesiveDynDataTri3d(void)
diff --git a/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh b/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh
index f720760..ab1a060 100644
--- a/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh
+++ b/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh
@@ -68,11 +68,9 @@ private:
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
-  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
-  static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
-  static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
-  static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.
-  static const PylithScalar _slipOpenE[]; ///< Expected values for slip for opening case.
+  static const PylithScalar _residualStickE[]; ///< Expected values for residual for stick case.
+  static const PylithScalar _residualSlipE[]; ///< Expected values for residual for slip case.
+  static const PylithScalar _residualOpenE[]; ///< Expected values for residual for opening case.
   static const int _constraintEdges[]; ///< Expected points for constraint edges
   static const int _negativeVertices[]; ///< Expected points for negative-side fault vertices
   static const int _numConstraintEdges; ///< Number of constraint edges



More information about the CIG-COMMITS mailing list