[cig-commits] [commit] knepley/fix-faults-parallel: Updated 2-D fault cohesive kinematic tests for including fault edge. (8f8fd96)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue May 6 12:16:36 PDT 2014


Repository : ssh://geoshell/pylith

On branch  : knepley/fix-faults-parallel
Link       : https://github.com/geodynamics/pylith/compare/8db09a41c2c343e14056a2efdabe319d8fa7fe5b...8f8fd96b68466722a83a80eebfcba574c803d3fb

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

commit 8f8fd96b68466722a83a80eebfcba574c803d3fb
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Tue May 6 12:16:17 2014 -0700

    Updated 2-D fault cohesive kinematic tests for including fault edge.


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

8f8fd96b68466722a83a80eebfcba574c803d3fb
 unittests/libtests/faults/TestFaultCohesiveKin.cc  |  13 +-
 unittests/libtests/faults/data/CohesiveKinData.cc  |   1 +
 unittests/libtests/faults/data/CohesiveKinData.hh  |   1 +
 .../libtests/faults/data/CohesiveKinDataQuad4i.cc  | 390 +++++++--------------
 .../libtests/faults/data/CohesiveKinDataQuad4i.hh  |   3 +-
 .../libtests/faults/data/CohesiveKinDataTri3g.cc   | 248 +++++--------
 .../libtests/faults/data/CohesiveKinDataTri3g.hh   |   1 +
 7 files changed, 214 insertions(+), 443 deletions(-)

diff --git a/unittests/libtests/faults/TestFaultCohesiveKin.cc b/unittests/libtests/faults/TestFaultCohesiveKin.cc
index 2f36e88..85db03a 100644
--- a/unittests/libtests/faults/TestFaultCohesiveKin.cc
+++ b/unittests/libtests/faults/TestFaultCohesiveKin.cc
@@ -162,17 +162,17 @@ pylith::faults::TestFaultCohesiveKin::testInitialize(void)
   topology::SolutionFields fields(mesh);
   _initialize(&mesh, &fault, &fields);
 
+#if 1 // DEBUGGING
+  mesh.view("::ascii_info_detail");
+  fault._faultMesh->view("::ascii_info_detail");
+#endif
+
   // Check fault mesh sizes
   CPPUNIT_ASSERT_EQUAL(_data->cellDim, fault.dimension());
   CPPUNIT_ASSERT_EQUAL(_data->numBasis, fault.numCorners());
   CPPUNIT_ASSERT_EQUAL(_data->numFaultVertices, fault.numVertices());
   CPPUNIT_ASSERT_EQUAL(_data->numCohesiveCells, fault.numCells());
 
-#if 0 // DEBUGGING
-  mesh.view("::ascii_info_detail");
-  fault._faultMesh->view("::ascii_info_detail");
-#endif
-
   topology::SubMeshIS subpointIS(*fault._faultMesh);
   const PetscInt numPoints = subpointIS.size();
   const PetscInt* points = subpointIS.points();CPPUNIT_ASSERT(points);
@@ -709,6 +709,9 @@ pylith::faults::TestFaultCohesiveKin::_initialize(topology::Mesh* const mesh,
 
   fault->id(_data->id);
   fault->label(_data->label);
+  if (_data->edge) {
+    fault->edge(_data->edge);
+  } // if
   fault->quadrature(_quadrature);
   fault->eqsrcs(const_cast<const char**>(names), nsrcs, sources, nsrcs);
 
diff --git a/unittests/libtests/faults/data/CohesiveKinData.cc b/unittests/libtests/faults/data/CohesiveKinData.cc
index 3550c20..8de29f7 100644
--- a/unittests/libtests/faults/data/CohesiveKinData.cc
+++ b/unittests/libtests/faults/data/CohesiveKinData.cc
@@ -37,6 +37,7 @@ pylith::faults::CohesiveKinData::CohesiveKinData(void) :
   verticesRef(0),
   id(0),
   label(0),
+  edge(0),
   finalSlipFilename(0),
   slipTimeFilename(0),
   riseTimeFilename(0),
diff --git a/unittests/libtests/faults/data/CohesiveKinData.hh b/unittests/libtests/faults/data/CohesiveKinData.hh
index 000d72e..83271bc 100644
--- a/unittests/libtests/faults/data/CohesiveKinData.hh
+++ b/unittests/libtests/faults/data/CohesiveKinData.hh
@@ -69,6 +69,7 @@ public:
   //@{
   int id; ///< Fault material identifier
   char* label; ///< Label for fault
+  char* edge; ///< Label for fault edge
   char* finalSlipFilename; ///< Name of db for final slip
   char* slipTimeFilename; ///< Name of db for slip time
   char* riseTimeFilename; ///< Name of db for rise time
diff --git a/unittests/libtests/faults/data/CohesiveKinDataQuad4i.cc b/unittests/libtests/faults/data/CohesiveKinDataQuad4i.cc
index 3599778..db1d6fb 100644
--- a/unittests/libtests/faults/data/CohesiveKinDataQuad4i.cc
+++ b/unittests/libtests/faults/data/CohesiveKinDataQuad4i.cc
@@ -23,8 +23,7 @@
 
 #include "CohesiveKinDataQuad4i.hh"
 
-const char* pylith::faults::CohesiveKinDataQuad4i::_meshFilename =
-  "data/quad4i.mesh";
+const char* pylith::faults::CohesiveKinDataQuad4i::_meshFilename = "data/quad4i.mesh";
 
 const int pylith::faults::CohesiveKinDataQuad4i::_spaceDim = 2;
 
@@ -59,6 +58,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_verticesRef[2] = {
 const int pylith::faults::CohesiveKinDataQuad4i::_id = 100;
 
 const char* pylith::faults::CohesiveKinDataQuad4i::_label = "fault";
+const char* pylith::faults::CohesiveKinDataQuad4i::_edge = "edge";
 
 const char* pylith::faults::CohesiveKinDataQuad4i::_finalSlipFilename = 
   "data/quad4i_finalslip.spatialdb";
@@ -69,137 +69,126 @@ const char* pylith::faults::CohesiveKinDataQuad4i::_slipTimeFilename =
 const char* pylith::faults::CohesiveKinDataQuad4i::_riseTimeFilename = 
   "data/quad4i_risetime.spatialdb";
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_fieldT[(15+3)*2] = {
-  3.1, 5.1, // 9
-  3.2, 5.2, // 10
-  3.3, 5.3, // 11
-  3.4, 5.4, // 12
-  3.5, 5.5, // 13
-  3.6, 5.6, // 14
-  3.7, 5.7, // 15
-  3.8, 5.8, // 16
-  3.9, 5.9, // 17
-  3.0, 5.0, // 18
-  4.2, 6.2, // 19
-  4.4, 6.4, // 20
-  4.1, 6.1, // 21
-  4.3, 6.3, // 22
-  4.5, 6.5, // 23
-  4.7, 6.6, // 44
-  4.9, 6.7, // 45
-  4.6, 6.8, // 46
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_fieldT[(14+2)*2] = {
+  3.1, 5.1, // 8
+  3.2, 5.2, // 9
+  3.3, 5.3, // 10
+  3.4, 5.4, // 11
+  3.5, 5.5, // 12
+  3.6, 5.6, // 13
+  3.7, 5.7, // 14
+  3.8, 5.8, // 15
+  3.9, 5.9, // 16
+  3.0, 5.0, // 17
+  4.2, 6.2, // 18
+  4.4, 6.4, // 19
+  4.1, 6.1, // 20
+  4.3, 6.3, // 21
+  4.5, 6.5, // 41
+  4.7, 6.6, // 42
 };
 
 
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_fieldIncr[(15+3)*2] = {
-  6.1, 4.1, // 9
-  6.2, 4.2, // 10
-  6.3, 4.3, // 11
-  6.4, 4.4, // 12
-  6.5, 4.5, // 13
-  6.6, 4.6, // 14
-  6.7, 4.7, // 15
-  6.8, 4.8, // 16
-  6.9, 4.9, // 17
-  6.0, 4.0, // 18
-  5.2, 3.2, // 19
-  5.4, 3.4, // 20
-  5.1, 3.1, // 21
-  5.3, 3.3, // 22
-  5.5, 3.5, // 23
-  5.7, 3.7, // 44
-  5.9, 3.9, // 45
-  5.6, 3.2, // 46
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_fieldIncr[(14+2)*2] = {
+  6.1, 4.1, // 8
+  6.2, 4.2, // 9
+  6.3, 4.3, // 10
+  6.4, 4.4, // 11
+  6.5, 4.5, // 12
+  6.6, 4.6, // 13
+  6.7, 4.7, // 14
+  6.8, 4.8, // 15
+  6.9, 4.9, // 16
+  6.0, 4.0, // 17
+  5.2, 3.2, // 18
+  5.4, 3.4, // 19
+  5.1, 3.1, // 20
+  5.3, 3.3, // 21
+  5.5, 3.5, // 41
+  5.7, 3.7, // 42
 };
 
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobianLumped[(15+3)*2] = {
-  1.1, 7.1, // 9
-  1.2, 7.2, // 10
-  1.3, 7.3, // 11
-  1.4, 7.4, // 12
-  1.5, 7.5, // 13
-  1.6, 7.6, // 14
-  1.7, 7.7, // 15
-  1.8, 7.8, // 16
-  1.9, 7.9, // 17
-  1.0, 7.0, // 18
-  2.2, 3.2, // 19
-  2.4, 3.4, // 20
-  2.6, 3.5, // 21
-  2.8, 3.6, // 22
-  3.0, 3.7, // 23
-  1.0, 1.0, // 44
-  1.0, 1.0, // 45
-  1.0, 1.0, // 46
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobianLumped[(14+2)*2] = {
+  1.1, 7.1, // 8
+  1.2, 7.2, // 9
+  1.3, 7.3, // 10
+  1.4, 7.4, // 11
+  1.5, 7.5, // 12
+  1.6, 7.6, // 13
+  1.7, 7.7, // 14
+  1.8, 7.8, // 15
+  1.9, 7.9, // 16
+  1.0, 7.0, // 17
+  2.2, 3.2, // 18
+  2.4, 3.4, // 19
+  2.6, 3.5, // 20
+  2.8, 3.6, // 21
+  3.0, 3.7, // 41
+  1.0, 1.0, // 42
 };
 
 
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_orientation[4*2*2] = {
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_orientation[3*2*2] = {
   0.0, +1.0,   1.0, 0.0,
-  0.0,  0.0,   0.0, 0.0,
   0.0, +1.0,   1.0, 0.0,
   0.0, +1.0,   1.0, 0.0,
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_area[4] = {
-  10.0,
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_area[3] = {
    5.0,
   10.0,
    5.0,
 };
 
-const int pylith::faults::CohesiveKinDataQuad4i::_numFaultVertices = 4;
-const int pylith::faults::CohesiveKinDataQuad4i::_verticesFault[4] = {
-  6,  7,  8,  9,
+const int pylith::faults::CohesiveKinDataQuad4i::_numFaultVertices = 3;
+const int pylith::faults::CohesiveKinDataQuad4i::_verticesFault[3] = {
+  4,  5,  6,
 };
-const int pylith::faults::CohesiveKinDataQuad4i::_edgesLagrange[4] = {
-  44, 47, 45, 46,
+const int pylith::faults::CohesiveKinDataQuad4i::_edgesLagrange[3] = {
+  43, 41, 42,
 };
-const int pylith::faults::CohesiveKinDataQuad4i::_verticesNegative[4] = {
-  13, 14, 16, 19,
+const int pylith::faults::CohesiveKinDataQuad4i::_verticesNegative[3] = {
+  12, 15, 18,
 };
-const int pylith::faults::CohesiveKinDataQuad4i::_verticesPositive[4] = {
-  21, 14, 22, 23,
+const int pylith::faults::CohesiveKinDataQuad4i::_verticesPositive[3] = {
+  12, 20, 21,
 };
 
-const int pylith::faults::CohesiveKinDataQuad4i::_numCohesiveCells = 3;
-const int pylith::faults::CohesiveKinDataQuad4i::_cellMappingFault[3] = {
-  10, 11, 12,
+const int pylith::faults::CohesiveKinDataQuad4i::_numCohesiveCells = 2;
+const int pylith::faults::CohesiveKinDataQuad4i::_cellMappingFault[2] = {
+  7, 8,
 };
-const int pylith::faults::CohesiveKinDataQuad4i::_cellMappingCohesive[3] = {
-  6, 7, 8,
+const int pylith::faults::CohesiveKinDataQuad4i::_cellMappingCohesive[2] = {
+  6, 7,
 };
 
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_residual[(15+3)*2] = {
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_residual[(14+2)*2] = {
+  0.0,  0.0, // 8
   0.0,  0.0, // 9
   0.0,  0.0, // 10
   0.0,  0.0, // 11
   0.0,  0.0, // 12
- +10.0*4.7, +10.0*6.6, // 13
+  0.0,  0.0, // 13
   0.0,  0.0, // 14
-  0.0,  0.0, // 15
- +10.0*4.9, +10.0*6.7, // 16
+ +10.0*4.5, +10.0*6.5, // 15
+  0.0,  0.0, // 16
   0.0,  0.0, // 17
-  0.0,  0.0, // 18
- +5.0*4.6, +5.0*6.8, // 19
-  0.0,  0.0, // 20
- -10.0*4.7, -10.0*6.6, // 21
- -10.0*4.9, -10.0*6.7, // 22
- -5.0*4.6, -5.0*6.8, // 23
- -10.0*(4.1-3.5 - 0.08241148423),
- -10.0*(6.1-5.5 - 1.89546413727), // 44
- -10.0*(4.3-3.8 - 0.14794836271),
- -10.0*(6.3-5.8 - 1.77538035254), // 45
-  -5.0*(4.5-4.2 - 0.19186497837),
-  -5.0*(6.5-6.2 - 1.59887481971), // 46
+ +5.0*4.7, +5.0*6.6, // 18
+  0.0,  0.0, // 19
+ -10.0*4.5, -10.0*6.5, // 20
+ -5.0*4.7, -5.0*6.6, // 21
+ -10.0*(4.1-3.8 - 0.14794836271),
+ -10.0*(6.1-5.8 - 1.77538035254), // 41
+  -5.0*(4.3-4.2 - 0.19186497837),
+  -5.0*(6.3-6.2 - 1.59887481971), // 42
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15+3)*2] = {
-  0.0, 0.0, // 9x
+const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(14+2)*2*(14+2)*2] = {
+  0.0, 0.0, // 8x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -215,9 +204,9 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 8y
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 9y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -231,11 +220,11 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 9x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 10x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -247,13 +236,13 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 9y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 10y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -263,6 +252,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 10x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -271,7 +261,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 11x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -279,6 +268,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 10y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -289,12 +279,12 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 11y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 11x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -307,10 +297,10 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 12x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 11y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -325,8 +315,8 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 12y
   0.0, 0.0,
+  0.0, 0.0, // 12x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -342,8 +332,8 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 12y
   0.0, 0.0,
-  0.0, 0.0, // 13x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -358,10 +348,9 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
--10.0, 0.0, // 44
+  0.0, 0.0, // 13x
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 13y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -375,11 +364,10 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 13y
   0.0, 0.0,
-  0.0,-10.0, // 44
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 14x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -392,12 +380,12 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 14x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 14y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -408,6 +396,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 14y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -415,7 +404,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 15x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -424,6 +412,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 15x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -433,12 +422,13 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 15y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+-10.0, 0.0, // 41
   0.0, 0.0,
+  0.0, 0.0, // 15y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -451,9 +441,10 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 16x
   0.0, 0.0,
+  0.0,-10.0, // 41
   0.0, 0.0,
+  0.0, 0.0, // 16x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -467,10 +458,9 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
--10.0, 0.0, // 45
   0.0, 0.0,
-  0.0, 0.0, // 16y
   0.0, 0.0,
+  0.0, 0.0, // 16y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -485,7 +475,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0,-10.0, // 45
   0.0, 0.0,
   0.0, 0.0, // 17x
   0.0, 0.0,
@@ -503,8 +492,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
   0.0, 0.0, // 17y
   0.0, 0.0,
   0.0, 0.0,
@@ -521,8 +508,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
   0.0, 0.0, // 18x
   0.0, 0.0,
   0.0, 0.0,
@@ -538,9 +523,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
+ -5.0, 0.0, // 42
   0.0, 0.0, // 18y
   0.0, 0.0,
   0.0, 0.0,
@@ -556,9 +539,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
+  0.0,-5.0, // 42
   0.0, 0.0, // 19x
   0.0, 0.0,
   0.0, 0.0,
@@ -575,8 +556,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
- -5.0, 0.0, // 46
   0.0, 0.0, // 19y
   0.0, 0.0,
   0.0, 0.0,
@@ -593,8 +572,6 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0,-5.0, // 46
   0.0, 0.0, // 20x
   0.0, 0.0,
   0.0, 0.0,
@@ -609,9 +586,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
++10.0, 0.0, // 41
   0.0, 0.0,
   0.0, 0.0, // 20y
   0.0, 0.0,
@@ -627,9 +602,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
+  0.0,+10.0, // 41
   0.0, 0.0,
   0.0, 0.0, // 21x
   0.0, 0.0,
@@ -646,9 +619,7 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-+10.0, 0.0, // 44
-  0.0, 0.0,
-  0.0, 0.0,
+ +5.0, 0.0, // 42
   0.0, 0.0, // 21y
   0.0, 0.0,
   0.0, 0.0,
@@ -664,174 +635,56 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0,+10.0, // 44
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0, // 22x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-+10.0, 0.0, // 45
-  0.0, 0.0,
-  0.0, 0.0, // 22y
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,+10.0, // 45
-  0.0, 0.0,
-  0.0, 0.0, // 23x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
- +5.0, 0.0, // 46
-  0.0, 0.0, // 23y
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,+5.0, // 46
-  0.0, 0.0, // 44x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
--10.0, 0.0, // 13
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-+10.0, 0.0, // 21
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0, // 44y
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,-10.0, // 13
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,+10.0, // 21
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0, // 45x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
--10.0, 0.0, // 16
-  0.0, 0.0,
-  0.0, 0.0,
+  0.0,+5.0, // 42
+  0.0, 0.0, // 41x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
- +10.0, 0.0, // 22
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+-10.0, 0.0, // 15
   0.0, 0.0,
-  0.0, 0.0, // 45y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+ +10.0, 0.0, // 20
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0,-10.0, // 16
+  0.0, 0.0, // 41y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0,+10.0, // 22
   0.0, 0.0,
+  0.0,-10.0, // 15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 46x
   0.0, 0.0,
+  0.0,+10.0, // 20
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 42x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
- -5.0, 0.0, // 19
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
- +5.0, 0.0, // 23
   0.0, 0.0,
+ -5.0, 0.0, // 18
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 46y
+ +5.0, 0.0, // 21
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 42y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -839,12 +692,12 @@ const PylithScalar pylith::faults::CohesiveKinDataQuad4i::_jacobian[(15+3)*2*(15
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0,-5.0, // 19
   0.0, 0.0,
   0.0, 0.0,
+  0.0,-5.0, // 18
   0.0, 0.0,
-  0.0,+5.0, // 23
   0.0, 0.0,
+  0.0,+5.0, // 21
   0.0, 0.0,
   0.0, 0.0,
 };
@@ -863,6 +716,7 @@ pylith::faults::CohesiveKinDataQuad4i::CohesiveKinDataQuad4i(void)
   verticesRef = const_cast<PylithScalar*>(_verticesRef);
   id = _id;
   label = const_cast<char*>(_label);
+  edge = const_cast<char*>(_edge);
   finalSlipFilename = const_cast<char*>(_finalSlipFilename);
   slipTimeFilename = const_cast<char*>(_slipTimeFilename);
   riseTimeFilename = const_cast<char*>(_riseTimeFilename);
diff --git a/unittests/libtests/faults/data/CohesiveKinDataQuad4i.hh b/unittests/libtests/faults/data/CohesiveKinDataQuad4i.hh
index 7616712..367b1ae 100644
--- a/unittests/libtests/faults/data/CohesiveKinDataQuad4i.hh
+++ b/unittests/libtests/faults/data/CohesiveKinDataQuad4i.hh
@@ -56,7 +56,8 @@ private:
   static const PylithScalar _verticesRef[]; ///< Coordinates of vertices in ref cell (dual basis)
 
   static const int _id; ///< Fault material identifier
-  static const char* _label; ///< Label for fault
+  static const char* _label; ///< Label for fault.
+  static const char* _edge; ///< Label for fault edge.
   static const char* _finalSlipFilename; ///< Name of db for final slip
   static const char* _slipTimeFilename; ///< Name of db for slip time
   static const char* _riseTimeFilename; ///< Name of db for rise time
diff --git a/unittests/libtests/faults/data/CohesiveKinDataTri3g.cc b/unittests/libtests/faults/data/CohesiveKinDataTri3g.cc
index 514669b..8523bd9 100644
--- a/unittests/libtests/faults/data/CohesiveKinDataTri3g.cc
+++ b/unittests/libtests/faults/data/CohesiveKinDataTri3g.cc
@@ -23,8 +23,7 @@
 
 #include "CohesiveKinDataTri3g.hh"
 
-const char* pylith::faults::CohesiveKinDataTri3g::_meshFilename =
-  "data/tri3g.mesh";
+const char* pylith::faults::CohesiveKinDataTri3g::_meshFilename = "data/tri3g.mesh";
 
 const int pylith::faults::CohesiveKinDataTri3g::_spaceDim = 2;
 
@@ -59,6 +58,7 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_verticesRef[2] = {
 const int pylith::faults::CohesiveKinDataTri3g::_id = 10;
 
 const char* pylith::faults::CohesiveKinDataTri3g::_label = "fault";
+const char* pylith::faults::CohesiveKinDataTri3g::_edge = "edge";
 
 const char* pylith::faults::CohesiveKinDataTri3g::_finalSlipFilename = 
   "data/tri3g_finalslip.spatialdb";
@@ -69,101 +69,90 @@ const char* pylith::faults::CohesiveKinDataTri3g::_slipTimeFilename =
 const char* pylith::faults::CohesiveKinDataTri3g::_riseTimeFilename = 
   "data/tri3g_risetime.spatialdb";
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_fieldT[(9+2)*2] = {
-  6.1, 8.1, // 8
-  6.2, 8.2, // 9
-  6.3, 8.3, // 10
-  6.4, 8.4, // 11
-  6.5, 8.5, // 12
-  6.6, 8.6, // 13
-  6.7, 8.7, // 14
-  6.9, 8.9, // 15
-  7.1, 9.1, // 16
-  6.8, 8.8, // 31
-  6.0, 8.0, // 32
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_fieldT[(8+1)*2] = {
+  6.1, 8.1, // 7
+  6.2, 8.2, // 8
+  6.3, 8.3, // 9
+  6.4, 8.4, // 10
+  6.5, 8.5, // 11
+  6.6, 8.6, // 12
+  6.7, 8.7, // 13
+  6.9, 8.9, // 14
+  7.1, 9.1, // 28
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_fieldIncr[(9+2)*2] = {
-  3.1, 7.1, // 8
-  3.2, 7.2, // 9
-  3.3, 7.3, // 10
-  3.4, 7.4, // 11
-  3.5, 7.5, // 12
-  3.6, 7.6, // 13
-  3.7, 7.7, // 14
-  3.9, 7.9, // 15
-  3.1, 7.1, // 16
-  3.8, 7.8, // 31
-  3.0, 7.0, // 32
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_fieldIncr[(8+1)*2] = {
+  3.1, 7.1, // 7
+  3.2, 7.2, // 8
+  3.3, 7.3, // 9
+  3.4, 7.4, // 10
+  3.5, 7.5, // 11
+  3.6, 7.6, // 12
+  3.7, 7.7, // 13
+  3.9, 7.9, // 14
+  3.1, 7.1, // 28
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobianLumped[(9+2)*2] = {
-  6.1, 8.1, // 8
-  6.2, 8.2, // 9
-  6.3, 8.3, // 10
-  6.4, 8.4, // 11
-  6.5, 8.5, // 12
-  6.6, 8.6, // 13
-  6.7, 8.7, // 14
-  6.9, 8.9, // 15
-  7.1, 9.1, // 16
-  1.0, 1.0, // 31
-  1.0, 1.0, // 32
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobianLumped[(8+1)*2] = {
+  6.1, 8.1, // 7
+  6.2, 8.2, // 8
+  6.3, 8.3, // 9
+  6.4, 8.4, // 10
+  6.5, 8.5, // 11
+  6.6, 8.6, // 12
+  6.7, 8.7, // 13
+  6.9, 8.9, // 14
+  7.1, 9.1, // 28
 };
 
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_orientation[3*2*2] = {
-  0.0,  0.0,   0.0,  0.0,
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_orientation[2*2*2] = {
   0.0, +1.0,  +1.0,  0.0,
   0.0, +1.0,  +1.0,  0.0,
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_area[3] = {
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_area[2] = {
   1.0,
-  2.0,
   1.0,
 };
 
-const int pylith::faults::CohesiveKinDataTri3g::_numFaultVertices = 3;
-const int pylith::faults::CohesiveKinDataTri3g::_verticesFault[3] = {
-  4,  5,  6,
+const int pylith::faults::CohesiveKinDataTri3g::_numFaultVertices = 2;
+const int pylith::faults::CohesiveKinDataTri3g::_verticesFault[2] = {
+  2,  3,
 };
-const int pylith::faults::CohesiveKinDataTri3g::_edgesLagrange[3] = {
-  33, 31, 32,
+const int pylith::faults::CohesiveKinDataTri3g::_edgesLagrange[2] = {
+  29, 28,
 };
-const int pylith::faults::CohesiveKinDataTri3g::_verticesNegative[3] = {
-   8, 10, 13,
+const int pylith::faults::CohesiveKinDataTri3g::_verticesNegative[2] = {
+   9, 12,
 };
-const int pylith::faults::CohesiveKinDataTri3g::_verticesPositive[3] = {
-  8, 15, 16,
+const int pylith::faults::CohesiveKinDataTri3g::_verticesPositive[2] = {
+  9, 14,
 };
 
-const int pylith::faults::CohesiveKinDataTri3g::_numCohesiveCells = 2;
-const int pylith::faults::CohesiveKinDataTri3g::_cellMappingFault[2] = {
-  7, 8,
+const int pylith::faults::CohesiveKinDataTri3g::_numCohesiveCells = 1;
+const int pylith::faults::CohesiveKinDataTri3g::_cellMappingFault[1] = {
+  4,
 };
-const int pylith::faults::CohesiveKinDataTri3g::_cellMappingCohesive[2] = {
-  6, 7,
+const int pylith::faults::CohesiveKinDataTri3g::_cellMappingCohesive[1] = {
+  6,
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_residual[(9+2)*2] = {
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_residual[(8+1)*2] = {
+  0.0,  0.0, // 7
   0.0,  0.0, // 8
   0.0,  0.0, // 9
- +6.8*2, +8.8*2, // 10
+  0.0,  0.0, // 10
   0.0,  0.0, // 11
-  0.0,  0.0, // 12
- +6.0, +8.0, // 13
-  0.0,  0.0, // 14
- -6.8*2, -8.8*2, // 15
- -6.0, -8.0, // 16
- -(6.9-6.3)*2 + (0.08241148423)*2,
- -(8.9-8.3)*2 + (1.89546413727)*2, // 31
- -(7.1-6.6) + (0.14794836271),
- -(9.1-8.6) + (1.77538035254), // 32
+ +7.1, +9.1, // 12
+  0.0,  0.0, // 13
+ -7.1, -9.1, // 14
+ -(6.9-6.6) + (0.14794836271),
+ -(8.9-8.6) + (1.77538035254), // 28
 };
 
-const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)*2] = {
-  0.0, 0.0, // 8x
+const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(8+1)*2*(8+1)*2] = {
+  0.0, 0.0, // 7x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -172,34 +161,34 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 7y
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 8y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 8x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 9x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 8y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 9y
-  0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 9x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -207,8 +196,8 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 10x
   0.0, 0.0,
+  0.0, 0.0, // 9y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -216,9 +205,8 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
- -2.0, 0.0, // 31
   0.0, 0.0,
-  0.0, 0.0, // 10y
+  0.0, 0.0, // 10x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -227,9 +215,8 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0,-2.0, // 31
+  0.0, 0.0, // 10y
   0.0, 0.0,
-  0.0, 0.0, // 11x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -237,24 +224,25 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 11x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 11y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 11y
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 12x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0, 0.0, // 12x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
@@ -262,6 +250,7 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+ -1.0, 0.0, // 28
   0.0, 0.0, // 12y
   0.0, 0.0,
   0.0, 0.0,
@@ -270,9 +259,7 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
+  0.0,-1.0, // 28
   0.0, 0.0, // 13x
   0.0, 0.0,
   0.0, 0.0,
@@ -282,8 +269,6 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
- -1.0, 0.0, // 32
   0.0, 0.0, // 13y
   0.0, 0.0,
   0.0, 0.0,
@@ -293,8 +278,6 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0,-1.0, // 32
   0.0, 0.0, // 14x
   0.0, 0.0,
   0.0, 0.0,
@@ -303,9 +286,7 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
+ +1.0, 0.0, // 28
   0.0, 0.0, // 14y
   0.0, 0.0,
   0.0, 0.0,
@@ -314,96 +295,24 @@ const PylithScalar pylith::faults::CohesiveKinDataTri3g::_jacobian[(9+2)*2*(9+2)
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
+  0.0,+1.0, // 28
+  0.0, 0.0, // 28x
   0.0, 0.0,
   0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 15x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
- +2.0, 0.0, // 31
-  0.0, 0.0,
-  0.0, 0.0, // 15y
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,+2.0, // 31
-  0.0, 0.0,
-  0.0, 0.0, // 16x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
- +1.0, 0.0, // 32
-  0.0, 0.0, // 16y
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,+1.0, // 32
-  0.0, 0.0, // 31x
-  0.0, 0.0,
- -2.0, 0.0, // 10
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
- +2.0, 0.0, // 15
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0, // 31y
-  0.0, 0.0,
-  0.0,-2.0, // 10
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0,+2.0, // 15
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0, // 32x
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
-  0.0, 0.0,
- -1.0, 0.0, // 13
-  0.0, 0.0,
-  0.0, 0.0,
- +1.0, 0.0, // 16
-  0.0, 0.0,
   0.0, 0.0,
-  0.0, 0.0, // 32y
+ -1.0, 0.0, // 12
   0.0, 0.0,
+ +1.0, 0.0, // 14
   0.0, 0.0,
+  0.0, 0.0, // 28y
   0.0, 0.0,
   0.0, 0.0,
-  0.0,-1.0, // 13
   0.0, 0.0,
   0.0, 0.0,
-  0.0,+1.0, // 16
+  0.0,-1.0, // 12
   0.0, 0.0,
+  0.0,+1.0, // 14
   0.0, 0.0,
 };
 
@@ -421,6 +330,7 @@ pylith::faults::CohesiveKinDataTri3g::CohesiveKinDataTri3g(void)
   verticesRef = const_cast<PylithScalar*>(_verticesRef);
   id = _id;
   label = const_cast<char*>(_label);
+  edge = const_cast<char*>(_edge);
   finalSlipFilename = const_cast<char*>(_finalSlipFilename);
   slipTimeFilename = const_cast<char*>(_slipTimeFilename);
   riseTimeFilename = const_cast<char*>(_riseTimeFilename);
diff --git a/unittests/libtests/faults/data/CohesiveKinDataTri3g.hh b/unittests/libtests/faults/data/CohesiveKinDataTri3g.hh
index 9a79976..260ffac 100644
--- a/unittests/libtests/faults/data/CohesiveKinDataTri3g.hh
+++ b/unittests/libtests/faults/data/CohesiveKinDataTri3g.hh
@@ -57,6 +57,7 @@ private:
 
   static const int _id; ///< Fault material identifier
   static const char* _label; ///< Label for fault
+  static const char* _edge; ///< Label for fault edge
   static const char* _finalSlipFilename; ///< Name of db for final slip
   static const char* _slipTimeFilename; ///< Name of db for slip time
   static const char* _riseTimeFilename; ///< Name of db for rise time



More information about the CIG-COMMITS mailing list