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

brad at geodynamics.org brad at geodynamics.org
Fri Jul 13 17:48:21 PDT 2007


Author: brad
Date: 2007-07-13 17:48:21 -0700 (Fri, 13 Jul 2007)
New Revision: 7667

Added:
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8i.mesh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4g.mesh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4j.mesh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3_finalslipB.spatialdb
   short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3f.mesh
Modified:
   short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am
Log:
Added unit tests for creating cohesive cells when tri, quad, tet, or hex mesh has some cells with only an edge or vertex on the fault.

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am	2007-07-14 00:48:21 UTC (rev 7667)
@@ -65,6 +65,7 @@
 	data/CohesiveDataTri3c.cc \
 	data/CohesiveDataTri3d.cc \
 	data/CohesiveDataTri3e.cc \
+	data/CohesiveDataTri3f.cc \
 	data/CohesiveDataTri3Lagrange.cc \
 	data/CohesiveDataQuad4.cc \
 	data/CohesiveDataQuad4b.cc \
@@ -72,6 +73,7 @@
 	data/CohesiveDataQuad4d.cc \
 	data/CohesiveDataQuad4e.cc \
 	data/CohesiveDataQuad4f.cc \
+	data/CohesiveDataQuad4g.cc \
 	data/CohesiveDataQuad4Lagrange.cc \
 	data/CohesiveDataTet4.cc \
 	data/CohesiveDataTet4b.cc \
@@ -81,6 +83,7 @@
 	data/CohesiveDataTet4g.cc \
 	data/CohesiveDataTet4h.cc \
 	data/CohesiveDataTet4i.cc \
+	data/CohesiveDataTet4j.cc \
 	data/CohesiveDataTet4Lagrange.cc \
 	data/CohesiveDataHex8.cc \
 	data/CohesiveDataHex8b.cc \
@@ -90,6 +93,7 @@
 	data/CohesiveDataHex8f.cc \
 	data/CohesiveDataHex8g.cc \
 	data/CohesiveDataHex8h.cc \
+	data/CohesiveDataHex8i.cc \
 	data/CohesiveDataHex8Lagrange.cc \
 	data/CohesiveKinData.cc \
 	data/CohesiveKinDataLine2.cc \
@@ -116,6 +120,7 @@
 	data/CohesiveDataTri3c.hh \
 	data/CohesiveDataTri3d.hh \
 	data/CohesiveDataTri3e.hh \
+	data/CohesiveDataTri3f.hh \
 	data/CohesiveDataTri3Lagrange.hh \
 	data/CohesiveDataQuad4.hh \
 	data/CohesiveDataQuad4b.hh \
@@ -123,6 +128,7 @@
 	data/CohesiveDataQuad4d.hh \
 	data/CohesiveDataQuad4e.hh \
 	data/CohesiveDataQuad4f.hh \
+	data/CohesiveDataQuad4g.hh \
 	data/CohesiveDataQuad4Lagrange.hh \
 	data/CohesiveDataTet4.hh \
 	data/CohesiveDataTet4b.hh \
@@ -132,6 +138,7 @@
 	data/CohesiveDataTet4g.hh \
 	data/CohesiveDataTet4h.hh \
 	data/CohesiveDataTet4i.hh \
+	data/CohesiveDataTet4j.hh \
 	data/CohesiveDataTet4Lagrange.hh \
 	data/CohesiveDataHex8.hh \
 	data/CohesiveDataHex8b.hh \
@@ -141,6 +148,7 @@
 	data/CohesiveDataHex8f.hh \
 	data/CohesiveDataHex8g.hh \
 	data/CohesiveDataHex8h.hh \
+	data/CohesiveDataHex8i.hh \
 	data/CohesiveDataHex8Lagrange.hh \
 	data/CohesiveKinData.hh \
 	data/CohesiveKinDataLine2.hh \

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc	2007-07-14 00:48:21 UTC (rev 7667)
@@ -214,12 +214,12 @@
   const char* meshFilename = "data/tri3.mesh";
   const char* faultLabel = "fault";
   const int faultId = 2;
-  const char* finalSlipFilename = "data/tri3_finalslip.spatialdb";
+  const char* finalSlipFilename = "data/tri3_finalslipB.spatialdb";
   const char* slipTimeFilename = "data/tri3_sliptime.spatialdb";
   const char* peakRateFilename = "data/tri3_peakrate.spatialdb";
   const int constraintPts[] = { 3, 4 };
   const double finalSlipE[] = { 2.3, 0.1, 
-				2.4, 0.2};
+				0.0, 0.0};
   const double slipTimeE[] = { 1.2, 1.3 };
   const double peakRateE[] = { 1.4, 1.5 };
   const int numConstraintPts = 2;
@@ -310,12 +310,12 @@
   const char* meshFilename = "data/tri3.mesh";
   const char* faultLabel = "fault";
   const int faultId = 2;
-  const char* finalSlipFilename = "data/tri3_finalslip.spatialdb";
+  const char* finalSlipFilename = "data/tri3_finalslipB.spatialdb";
   const char* slipTimeFilename = "data/tri3_sliptime.spatialdb";
   const char* peakRateFilename = "data/tri3_peakrate.spatialdb";
   const int constraintPts[] = { 3, 4 };
   const double finalSlipE[] = { 2.3, 0.1, 
-				2.4, 0.2};
+				0.0, 0.0};
   const double slipTimeE[] = { 1.2, 1.3 };
   const double peakRateE[] = { 1.4, 1.5 };
   const int numConstraintPts = 2;

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc	2007-07-14 00:48:21 UTC (rev 7667)
@@ -28,12 +28,14 @@
 #include "data/CohesiveDataTri3c.hh" // USES CohesiveDataTri3c
 #include "data/CohesiveDataTri3d.hh" // USES CohesiveDataTri3d
 #include "data/CohesiveDataTri3e.hh" // USES CohesiveDataTri3e
+#include "data/CohesiveDataTri3f.hh" // USES CohesiveDataTri3f
 #include "data/CohesiveDataQuad4.hh" // USES CohesiveDataQuad4
 #include "data/CohesiveDataQuad4b.hh" // USES CohesiveDataQuad4b
 #include "data/CohesiveDataQuad4c.hh" // USES CohesiveDataQuad4c
 #include "data/CohesiveDataQuad4d.hh" // USES CohesiveDataQuad4d
 #include "data/CohesiveDataQuad4e.hh" // USES CohesiveDataQuad4e
 #include "data/CohesiveDataQuad4f.hh" // USES CohesiveDataQuad4f
+#include "data/CohesiveDataQuad4g.hh" // USES CohesiveDataQuad4g
 #include "data/CohesiveDataTet4.hh" // USES CohesiveDataTet4
 #include "data/CohesiveDataTet4b.hh" // USES CohesiveDataTet4b
 #include "data/CohesiveDataTet4c.hh" // USES CohesiveDataTet4c
@@ -42,6 +44,7 @@
 #include "data/CohesiveDataTet4g.hh" // USES CohesiveDataTet4g
 #include "data/CohesiveDataTet4h.hh" // USES CohesiveDataTet4h
 #include "data/CohesiveDataTet4i.hh" // USES CohesiveDataTet4i
+#include "data/CohesiveDataTet4j.hh" // USES CohesiveDataTet4j
 #include "data/CohesiveDataHex8.hh" // USES CohesiveDataHex8
 #include "data/CohesiveDataHex8b.hh" // USES CohesiveDataHex8b
 #include "data/CohesiveDataHex8c.hh" // USES CohesiveDataHex8c
@@ -50,6 +53,7 @@
 #include "data/CohesiveDataHex8f.hh" // USES CohesiveDataHex8f
 #include "data/CohesiveDataHex8g.hh" // USES CohesiveDataHex8g
 #include "data/CohesiveDataHex8h.hh" // USES CohesiveDataHex8h
+#include "data/CohesiveDataHex8i.hh" // USES CohesiveDataHex8i
 
 #include "data/CohesiveDataLine2Lagrange.hh" // USES CohesiveDataLine2Lagrange
 #include "data/CohesiveDataTri3Lagrange.hh" // USES CohesiveDataTri3Lagrange
@@ -121,6 +125,16 @@
 } // testAdjustTopologyTri3e
 
 // ----------------------------------------------------------------------
+// Test adjustTopology() with 2-D triangular element (vertex on fault).
+void
+pylith::faults::TestFaultCohesive::testAdjustTopologyTri3f(void)
+{ // testAdjustTopologyTri3f
+  CohesiveDataTri3f data;
+  FaultCohesiveDyn fault;
+  _testAdjustTopology(&fault, data);
+} // testAdjustTopologyTri3f
+
+// ----------------------------------------------------------------------
 // Test adjustTopology() with 2-D quadrilateral element.
 void
 pylith::faults::TestFaultCohesive::testAdjustTopologyQuad4(void)
@@ -181,6 +195,16 @@
 } // testAdjustTopologyQuad4f
 
 // ----------------------------------------------------------------------
+// Test adjustTopology() with 2-D quadrilateral element.
+void
+pylith::faults::TestFaultCohesive::testAdjustTopologyQuad4g(void)
+{ // testAdjustTopologyQuad4gs
+  CohesiveDataQuad4g data;
+  FaultCohesiveDyn fault;
+  _testAdjustTopology(&fault, data);
+} // testAdjustTopologyQuad4g
+
+// ----------------------------------------------------------------------
 // Test adjustTopology() with 3-D tetrahedral element.
 void
 pylith::faults::TestFaultCohesive::testAdjustTopologyTet4(void)
@@ -261,6 +285,16 @@
 } // testAdjustTopologyTet4i
 
 // ----------------------------------------------------------------------
+// Test adjustTopology() with 3-D tetrahedral element (vertex/edge on fault).
+void
+pylith::faults::TestFaultCohesive::testAdjustTopologyTet4j(void)
+{ // testAdjustTopologyTet4j
+  CohesiveDataTet4j data;
+  FaultCohesiveDyn fault;
+  _testAdjustTopology(&fault, data);
+} // testAdjustTopologyTet4j
+
+// ----------------------------------------------------------------------
 // Test adjustTopology() with 3-D hexahedral element.
 void
 pylith::faults::TestFaultCohesive::testAdjustTopologyHex8(void)
@@ -341,6 +375,16 @@
 } // testAdjustTopologyHex8h
 
 // ----------------------------------------------------------------------
+// Test adjustTopology() with 3-D hexahedral element (vertex/edge on fault).
+void
+pylith::faults::TestFaultCohesive::testAdjustTopologyHex8i(void)
+{ // testAdjustTopologyHex8i
+  CohesiveDataHex8i data;
+  FaultCohesiveDyn fault;
+  _testAdjustTopology(&fault, data);
+} // testAdjustTopologyHex8i
+
+// ----------------------------------------------------------------------
 // Test adjustTopology() with 1-D line element for Lagrange
 // multipliers.
 void

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -47,12 +47,14 @@
   CPPUNIT_TEST( testAdjustTopologyTri3c );
   CPPUNIT_TEST( testAdjustTopologyTri3d );
   CPPUNIT_TEST( testAdjustTopologyTri3e );
+  CPPUNIT_TEST( testAdjustTopologyTri3f );
   CPPUNIT_TEST( testAdjustTopologyQuad4 );
   CPPUNIT_TEST( testAdjustTopologyQuad4b );
   CPPUNIT_TEST( testAdjustTopologyQuad4c );
   CPPUNIT_TEST( testAdjustTopologyQuad4d );
   CPPUNIT_TEST( testAdjustTopologyQuad4e );
   CPPUNIT_TEST( testAdjustTopologyQuad4f );
+  CPPUNIT_TEST( testAdjustTopologyQuad4g );
   CPPUNIT_TEST( testAdjustTopologyTet4 );
   CPPUNIT_TEST( testAdjustTopologyTet4b );
   CPPUNIT_TEST( testAdjustTopologyTet4c );
@@ -61,6 +63,7 @@
   CPPUNIT_TEST( testAdjustTopologyTet4g );
   CPPUNIT_TEST( testAdjustTopologyTet4h );
   CPPUNIT_TEST( testAdjustTopologyTet4i );
+  CPPUNIT_TEST( testAdjustTopologyTet4j );
   CPPUNIT_TEST( testAdjustTopologyHex8 );
   CPPUNIT_TEST( testAdjustTopologyHex8b );
   CPPUNIT_TEST( testAdjustTopologyHex8c );
@@ -69,6 +72,7 @@
   CPPUNIT_TEST( testAdjustTopologyHex8f );
   CPPUNIT_TEST( testAdjustTopologyHex8g );
   CPPUNIT_TEST( testAdjustTopologyHex8h );
+  CPPUNIT_TEST( testAdjustTopologyHex8i );
 
   CPPUNIT_TEST( testAdjustTopologyLine2Lagrange );
   CPPUNIT_TEST( testAdjustTopologyTri3Lagrange );
@@ -103,6 +107,9 @@
   /// Test adjustTopology() with 2-D triangular element (2 cohesive cells b).
   void testAdjustTopologyTri3e(void);
 
+  /// Test adjustTopology() with 2-D triangular element (vertex on fault).
+  void testAdjustTopologyTri3f(void);
+
   /// Test adjustTopology() with 2-D quadrilateral element.
   void testAdjustTopologyQuad4(void);
 
@@ -121,6 +128,9 @@
   /// Test adjustTopology() with 2-D quadrilateral element (2 cohesive cells b).
   void testAdjustTopologyQuad4f(void);
 
+  /// Test adjustTopology() with 2-D quadrilateral element (vertex on fault).
+  void testAdjustTopologyQuad4g(void);
+
   /// Test adjustTopology() with 3-D tetrahedral element.
   void testAdjustTopologyTet4(void);
 
@@ -145,6 +155,9 @@
   /// Test adjustTopology() with 3-D tetrahedral element (2 cells b).
   void testAdjustTopologyTet4i(void);
 
+  /// Test adjustTopology() with 3-D tetrahedral element (vertex/edge on fault).
+  void testAdjustTopologyTet4j(void);
+
   /// Test adjustTopology() with 3-D hexahedral element.
   void testAdjustTopologyHex8(void);
 
@@ -169,6 +182,9 @@
   /// Test adjustTopology() with 3-D hexahedral element (2 cells difficult).
   void testAdjustTopologyHex8h(void);
 
+  /// Test adjustTopology() with 3-D hexahedral element (edge/vertex on fault).
+  void testAdjustTopologyHex8i(void);
+
   /// Test adjustTopology() with 1-D line element for Lagrange
   /// multipliers.
   void testAdjustTopologyLine2Lagrange(void);

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.cc	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.cc	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,139 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-6 and vertices are 8-43
+ */
+
+#include "CohesiveDataHex8i.hh"
+
+const int pylith::faults::CohesiveDataHex8i::_numVertices = 36;
+
+const int pylith::faults::CohesiveDataHex8i::_spaceDim = 3;
+
+const int pylith::faults::CohesiveDataHex8i::_numCells = 9;
+
+const int pylith::faults::CohesiveDataHex8i::_cellDim = 3;
+
+const double pylith::faults::CohesiveDataHex8i::_vertices[] = {
+  -2.0, -2.0, -2.0,
+  -2.0, -1.0, -2.0,
+  -3.0,  0.0, -2.0,
+  -2.0,  1.0, -2.0,
+  -2.0,  2.0, -2.0,
+  -2.0, -2.0,  0.0,
+  -2.0, -1.0,  0.0,
+  -3.0,  0.0,  0.0,
+  -2.0,  1.0,  0.0,
+  -2.0,  2.0,  0.0,
+  -2.0, -1.0,  2.0,
+  -3.0,  0.0,  2.0,
+  -2.0,  1.0,  2.0,
+   0.0, -2.0, -2.0,
+   0.0,  0.0, -2.0,
+   0.0,  2.0, -2.0,
+   0.0, -2.0,  0.0,
+   0.0,  0.0,  0.0,
+   0.0,  2.0,  0.0,
+   0.0,  0.0,  2.0,
+   2.0, -2.0, -2.0,
+   2.0, -1.0, -2.0,
+   3.0,  0.0, -2.0,
+   2.0,  1.0, -2.0,
+   2.0,  2.0, -2.0,
+   2.0, -2.0,  0.0,
+   2.0, -1.0,  0.0,
+   3.0,  0.0,  0.0,
+   2.0,  1.0,  0.0,
+   2.0,  2.0,  0.0,
+   0.0, -2.0, -2.0,
+   0.0,  0.0, -2.0,
+   0.0,  2.0, -2.0,
+   0.0, -2.0,  0.0,
+   0.0,  0.0,  0.0,
+   0.0,  2.0,  0.0,
+};
+
+const int pylith::faults::CohesiveDataHex8i::_numCorners[] = {
+  8,
+  8,
+  8,
+  8,
+  8,
+  8,
+  8,
+  8,
+  8,
+};
+
+const int pylith::faults::CohesiveDataHex8i::_cells[] = {
+    8,  7, 20, 21, 13, 12, 23, 24,
+   14,  9, 10, 15, 13,  8, 21, 24,
+   15, 10, 11, 16, 24, 21, 22, 25,
+   30, 38, 28, 29, 35, 41, 33, 34,
+   41, 35, 30, 38, 42, 36, 31, 39,
+   27, 28, 38, 37, 32, 33, 41, 40,
+   15, 14, 13, 24, 19, 18, 17, 26,
+   24, 23, 20, 21, 41, 40, 37, 38,
+   24, 21, 22, 25, 41, 38, 39, 42
+};
+
+const int pylith::faults::CohesiveDataHex8i::_materialIds[] = {
+  0,  0,  0,  0,  0,  0,  2,
+  1,  1
+};
+
+const int pylith::faults::CohesiveDataHex8i::_numGroups = 2;
+
+const int pylith::faults::CohesiveDataHex8i::_groupSizes[] = 
+  { 12, 10 };
+
+const int pylith::faults::CohesiveDataHex8i::_groups[] = {
+  20, 21, 22, 23, 24, 25, 37, 38, 39, 40, 41, 42,
+  27, 28, 29, 30, 31, 32, 33, 34, 35, 36
+};
+
+const char* pylith::faults::CohesiveDataHex8i::_groupNames[] = {
+  "fault", "output"
+};
+
+const char* pylith::faults::CohesiveDataHex8i::_groupTypes[] = {
+  "vertex", "vertex"
+};
+
+const char* pylith::faults::CohesiveDataHex8i::_filename = 
+  "data/hex8i.mesh";
+
+pylith::faults::CohesiveDataHex8i::CohesiveDataHex8i(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  vertices = const_cast<double*>(_vertices);
+  numCorners = const_cast<int*>(_numCorners);
+  cells = const_cast<int*>(_cells);
+  materialIds = const_cast<int*>(_materialIds);
+  groups = const_cast<int*>(_groups);
+  groupSizes = const_cast<int*>(_groupSizes);
+  groupNames = const_cast<char**>(_groupNames);
+  groupTypes = const_cast<char**>(_groupTypes);
+  numGroups = _numGroups;
+  filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::CohesiveDataHex8i::~CohesiveDataHex8i(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.hh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataHex8i.hh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_cohesivedatahex8i_hh)
+#define pylith_faults_cohesivedatahex8i_hh
+
+#include "CohesiveData.hh"
+
+namespace pylith {
+  namespace faults {
+     class CohesiveDataHex8i;
+  } // pylith
+} // faults
+
+class pylith::faults::CohesiveDataHex8i : public CohesiveData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  CohesiveDataHex8i(void);
+
+  /// Destructor
+  ~CohesiveDataHex8i(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+  static const int _numVertices; ///< Number of vertices
+  static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+  static const int _numCells; ///< Number of cells
+  static const int _cellDim; ///< Number of dimensions associated with cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _numCorners[]; ///< Number of vertices in cell
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+  static const int _materialIds[]; ///< Pointer to cell material identifiers
+
+  static const int _groups[]; ///< Groups of points
+  static const int _groupSizes[]; ///< Sizes of groups
+  static const char* _groupNames[]; ///< Array of group names
+  static const char* _groupTypes[]; ///< Array of group types
+  static const int _numGroups; ///< Number of groups
+
+  static const char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_cohesivedatahex8i_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.cc	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.cc	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,157 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-3, vertices are 4-12.
+ *
+ *       7 --------12 --------15
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       6 --------11 --------14
+ *       |        / |          |
+ *       |       /  |          |
+ *       |      /   |          |
+ *       5-----9    |          |
+ *             |    |          |
+ *             |    |          |
+ *             |    |          |
+ *             |    |          |
+ *             8---10 --------13
+ *
+ * After adding cohesive elements
+ *
+ * Cells are 0-3,16-17 vertices are 4-15.
+ *
+ *       7 --------12 -- 18 --------15
+ *       |          |     |          |
+ *       |          |     |          |
+ *       |          |     |          |
+ *       |          |     |          |
+ *       |          |     |          |
+ *       |          |     |          |
+ *       |          |     |          |
+ *       |          |     |          |
+ *       6 --------11 -- 17 --------14
+ *       |        / |     |          |
+ *       |       /  |     |          |
+ *       |      /   |     |          |
+ *       5-----9    |     |          |
+ *             |    |     |          |
+ *             |    |     |          |
+ *             |    |     |          |
+ *             |    |     |          |
+ *             8---10 -- 16 --------13
+ */
+
+#include "CohesiveDataQuad4g.hh"
+
+const int pylith::faults::CohesiveDataQuad4g::_numVertices = 14;
+
+const int pylith::faults::CohesiveDataQuad4g::_spaceDim = 2;
+
+const int pylith::faults::CohesiveDataQuad4g::_numCells = 7;
+
+const int pylith::faults::CohesiveDataQuad4g::_cellDim = 2;
+
+const double pylith::faults::CohesiveDataQuad4g::_vertices[] = {
+  -2.0, -2.0,
+  -2.0,  0.0,
+  -2.0,  2.0,
+  -1.0, -2.0,
+  -1.0, -1.0,
+   0.0, -2.0,
+   0.0,  0.0,
+   0.0,  2.0,
+   2.0, -2.0,
+   2.0,  0.0,
+   2.0,  2.0,
+   0.0, -2.0,
+   0.0,  0.0,
+   0.0,  2.0,
+};
+
+const int pylith::faults::CohesiveDataQuad4g::_numCorners[] = {
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+};
+
+const int pylith::faults::CohesiveDataQuad4g::_cells[] = {
+  6, 17, 18,  7,
+ 11, 10, 13, 14,
+ 15, 12, 11, 14,
+  6,  5,  9, 17,
+  9,  8, 16, 17,
+ 11, 10, 17, 16,
+ 12, 11, 18, 17,
+};
+
+const int pylith::faults::CohesiveDataQuad4g::_materialIds[] = {
+  0,  0,  0,  2,  2,
+  1,  1,
+};
+
+const int pylith::faults::CohesiveDataQuad4g::_numGroups = 2;
+
+const int pylith::faults::CohesiveDataQuad4g::_groupSizes[] = 
+  { 6, 3 };
+
+const int pylith::faults::CohesiveDataQuad4g::_groups[] = {
+  10, 11, 12, 16, 17, 18,
+  13, 14, 15
+};
+
+const char* pylith::faults::CohesiveDataQuad4g::_groupNames[] = {
+  "fault", "output"
+};
+
+const char* pylith::faults::CohesiveDataQuad4g::_groupTypes[] = {
+  "vertex", "vertex"
+};
+
+const char* pylith::faults::CohesiveDataQuad4g::_filename = 
+  "data/quad4g.mesh";
+
+pylith::faults::CohesiveDataQuad4g::CohesiveDataQuad4g(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  vertices = const_cast<double*>(_vertices);
+  numCorners = const_cast<int*>(_numCorners);
+  cells = const_cast<int*>(_cells);
+  materialIds = const_cast<int*>(_materialIds);
+  groups = const_cast<int*>(_groups);
+  groupSizes = const_cast<int*>(_groupSizes);
+  groupNames = const_cast<char**>(_groupNames);
+  groupTypes = const_cast<char**>(_groupTypes);
+  numGroups = _numGroups;
+  filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::CohesiveDataQuad4g::~CohesiveDataQuad4g(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.hh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataQuad4g.hh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_cohesivedataquad4g_hh)
+#define pylith_faults_cohesivedataquad4g_hh
+
+#include "CohesiveData.hh"
+
+namespace pylith {
+  namespace faults {
+     class CohesiveDataQuad4g;
+  } // pylith
+} // faults
+
+class pylith::faults::CohesiveDataQuad4g : public CohesiveData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  CohesiveDataQuad4g(void);
+
+  /// Destructor
+  ~CohesiveDataQuad4g(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+  static const int _numVertices; ///< Number of vertices
+  static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+  static const int _numCells; ///< Number of cells
+  static const int _cellDim; ///< Number of dimensions associated with cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _numCorners[]; ///< Number of vertices in cell
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+  static const int _materialIds[]; ///< Pointer to cell material identifiers
+
+  static const int _groups[]; ///< Groups of points
+  static const int _groupSizes[]; ///< Sizes of groups
+  static const char* _groupNames[]; ///< Array of group names
+  static const char* _groupTypes[]; ///< Array of group types
+  static const int _numGroups; ///< Number of groups
+
+  static const char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_cohesivedataquad4g_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.cc	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.cc	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-5, vertices are 6-17.
+ */
+
+#include "CohesiveDataTet4j.hh"
+
+const int pylith::faults::CohesiveDataTet4j::_numVertices = 12;
+
+const int pylith::faults::CohesiveDataTet4j::_spaceDim = 3;
+
+const int pylith::faults::CohesiveDataTet4j::_numCells = 7;
+
+const int pylith::faults::CohesiveDataTet4j::_cellDim = 3;
+
+const double pylith::faults::CohesiveDataTet4j::_vertices[] = {
+  -2.0, -1.0,  0.0,
+  -2.0,  0.0,  0.0,
+  -2.0,  0.0,  1.0,
+   0.0, -1.0,  0.0,
+   0.0,  0.0,  0.0,
+   0.0,  0.0,  1.0,
+   2.0, -1.0,  0.0,
+   2.0,  0.0,  0.0,
+   2.0,  0.0,  1.0,
+   0.0, -1.0,  0.0,
+   0.0,  0.0,  0.0,
+   0.0,  0.0,  1.0,
+};
+
+const int pylith::faults::CohesiveDataTet4j::_numCorners[] = {
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+  6
+};
+
+const int pylith::faults::CohesiveDataTet4j::_cells[] = {
+  7,  9,  8,  6,
+  17, 15, 13, 14,
+  16, 13, 17, 15,
+  10,  9, 11,  7,
+  15, 13, 14, 12,
+  7, 11,  8,   9,
+  11, 9, 10, 17, 15, 16
+};
+
+const int pylith::faults::CohesiveDataTet4j::_materialIds[] = {
+  0, 2, 2, 0, 2, 0,
+  1, 1
+};
+
+const int pylith::faults::CohesiveDataTet4j::_numGroups = 2;
+
+const int pylith::faults::CohesiveDataTet4j::_groupSizes[] = 
+  { 6, 8 };
+
+const int pylith::faults::CohesiveDataTet4j::_groups[] = {
+  9, 10, 11, 15, 16, 17,
+  6, 8, 9, 11, 12, 14, 15, 17
+};
+
+const char* pylith::faults::CohesiveDataTet4j::_groupNames[] = {
+  "fault", "output"
+};
+
+const char* pylith::faults::CohesiveDataTet4j::_groupTypes[] = {
+  "vertex", "vertex"
+};
+
+const char* pylith::faults::CohesiveDataTet4j::_filename = "data/tet4j.mesh";
+
+pylith::faults::CohesiveDataTet4j::CohesiveDataTet4j(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  vertices = const_cast<double*>(_vertices);
+  numCorners = const_cast<int*>(_numCorners);
+  cells = const_cast<int*>(_cells);
+  materialIds = const_cast<int*>(_materialIds);
+  groups = const_cast<int*>(_groups);
+  groupSizes = const_cast<int*>(_groupSizes);
+  groupNames = const_cast<char**>(_groupNames);
+  groupTypes = const_cast<char**>(_groupTypes);
+  numGroups = _numGroups;
+  filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::CohesiveDataTet4j::~CohesiveDataTet4j(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.hh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4j.hh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_cohesivedatatet4j_hh)
+#define pylith_faults_cohesivedatatet4j_hh
+
+#include "CohesiveData.hh"
+
+namespace pylith {
+  namespace faults {
+     class CohesiveDataTet4j;
+  } // pylith
+} // faults
+
+class pylith::faults::CohesiveDataTet4j : public CohesiveData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  CohesiveDataTet4j(void);
+
+  /// Destructor
+  ~CohesiveDataTet4j(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+  static const int _numVertices; ///< Number of vertices
+  static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+  static const int _numCells; ///< Number of cells
+  static const int _cellDim; ///< Number of dimensions associated with cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _numCorners[]; ///< Number of vertices in cell
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+  static const int _materialIds[]; ///< Pointer to cell material identifiers
+
+  static const int _groups[]; ///< Groups of points
+  static const int _groupSizes[]; ///< Sizes of groups
+  static const char* _groupNames[]; ///< Array of group names
+  static const char* _groupTypes[]; ///< Array of group types
+  static const int _numGroups; ///< Number of groups
+
+  static const char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_cohesivedatatet4j_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.cc	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.cc	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-3, vertices are 4-9.
+ *
+ *       5 -------- 7 -------- 9
+ *       |        / | \        |
+ *       |       /  |  \       |
+ *       |      /   |   \      |
+ *       |     /    |    \     |
+ *       |    /     |     \    |
+ *       |   /      |      \   |
+ *       |  /       |       \  |
+ *       | /        |        \ |
+ *       4 -------- 6 -------- 8
+ *
+ * After adding cohesive elements
+ *
+ * Cells are 0-3, 12, vertices are 4-11.
+ *
+ *       5 -------- 7 --11 -------- 9
+ *       |        / |    |        / |
+ *       |       /  |    |       /  |
+ *       |      /   |    |      /   |
+ *       |     /    |    |     /    |
+ *       |    /     |    |    /     |
+ *       |   /      |    |   /      |
+ *       |  /       |    |  /       |
+ *       | /        |    | /        |
+ *       4 -------- 6 -- 6 -------- 8
+ */
+
+#include "CohesiveDataTri3f.hh"
+
+const int pylith::faults::CohesiveDataTri3f::_numVertices = 8;
+
+const int pylith::faults::CohesiveDataTri3f::_spaceDim = 2;
+
+const int pylith::faults::CohesiveDataTri3f::_numCells = 5;
+
+const int pylith::faults::CohesiveDataTri3f::_cellDim = 2;
+
+const double pylith::faults::CohesiveDataTri3f::_vertices[] = {
+ -2.0, -1.0,
+ -2.0,  1.0,
+  0.0, -1.0,
+  0.0,  1.0,
+  2.0, -1.0,
+  2.0,  1.0,
+  0.0, -1.0,
+  0.0,  1.0,
+};
+
+const int pylith::faults::CohesiveDataTri3f::_numCorners[] = {
+  3,
+  3,
+  3,
+  3,
+  4,
+};
+
+const int pylith::faults::CohesiveDataTri3f::_cells[] = {
+  4,  7,  5,
+  9, 11, 10,
+ 10,  8,  9,
+  6,  7,  4,
+  6,  7, 10, 11,
+};
+
+const int pylith::faults::CohesiveDataTri3f::_materialIds[] = {
+  0,  0,  2,  2,
+  1,  1
+};
+
+const int pylith::faults::CohesiveDataTri3f::_numGroups = 2;
+
+const int pylith::faults::CohesiveDataTri3f::_groupSizes[] = 
+  { 4, 4 };
+
+const int pylith::faults::CohesiveDataTri3f::_groups[] = {
+  6, 7, 10, 11,
+  5, 7, 9, 11
+};
+
+const char* pylith::faults::CohesiveDataTri3f::_groupNames[] = {
+  "fault", "output"
+};
+
+const char* pylith::faults::CohesiveDataTri3f::_groupTypes[] = {
+  "vertex", "vertex"
+};
+
+const char* pylith::faults::CohesiveDataTri3f::_filename = "data/tri3f.mesh";
+
+pylith::faults::CohesiveDataTri3f::CohesiveDataTri3f(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  vertices = const_cast<double*>(_vertices);
+  numCorners = const_cast<int*>(_numCorners);
+  cells = const_cast<int*>(_cells);
+  materialIds = const_cast<int*>(_materialIds);
+  groups = const_cast<int*>(_groups);
+  groupSizes = const_cast<int*>(_groupSizes);
+  groupNames = const_cast<char**>(_groupNames);
+  groupTypes = const_cast<char**>(_groupTypes);
+  numGroups = _numGroups;
+  filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::CohesiveDataTri3f::~CohesiveDataTri3f(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.hh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTri3f.hh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_cohesivedatatri3f_hh)
+#define pylith_faults_cohesivedatatri3f_hh
+
+#include "CohesiveData.hh"
+
+namespace pylith {
+  namespace faults {
+     class CohesiveDataTri3f;
+  } // pylith
+} // faults
+
+class pylith::faults::CohesiveDataTri3f : public CohesiveData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  CohesiveDataTri3f(void);
+
+  /// Destructor
+  ~CohesiveDataTri3f(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+  static const int _numVertices; ///< Number of vertices
+  static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+  static const int _numCells; ///< Number of cells
+  static const int _cellDim; ///< Number of dimensions associated with cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _numCorners[]; ///< Number of vertices in cell
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+  static const int _materialIds[]; ///< Pointer to cell material identifiers
+
+  static const int _groups[]; ///< Groups of points
+  static const int _groupSizes[]; ///< Sizes of groups
+  static const char* _groupNames[]; ///< Array of group names
+  static const char* _groupTypes[]; ///< Array of group types
+  static const int _numGroups; ///< Number of groups
+
+  static const char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_cohesivedatatri3f_hh
+
+// End of file

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am	2007-07-14 00:48:21 UTC (rev 7667)
@@ -23,7 +23,9 @@
 	tri3c.mesh \
 	tri3d.mesh \
 	tri3e.mesh \
+	tri3f.mesh \
 	tri3_finalslip.spatialdb \
+	tri3_finalslipB.spatialdb \
 	tri3_sliptime.spatialdb \
 	tri3_peakrate.spatialdb \
 	tri3d_finalslip.spatialdb \
@@ -35,6 +37,7 @@
 	quad4d.mesh \
 	quad4e.mesh \
 	quad4f.mesh \
+	quad4g.mesh \
 	quad4_finalslip.spatialdb \
 	quad4_sliptime.spatialdb \
 	quad4_peakrate.spatialdb \
@@ -50,6 +53,7 @@
 	tet4g.mesh \
 	tet4h.mesh \
 	tet4i.mesh \
+	tet4j.mesh \
 	tet4_finalslip.spatialdb \
 	tet4_sliptime.spatialdb \
 	tet4_peakrate.spatialdb \
@@ -64,6 +68,7 @@
 	hex8f.mesh \
 	hex8g.mesh \
 	hex8h.mesh \
+	hex8i.mesh \
 	hex8_finalslip.spatialdb \
 	hex8_sliptime.spatialdb \
 	hex8_peakrate.spatialdb \

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8i.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8i.mesh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8i.mesh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,92 @@
+mesh = {
+  dimension = 3
+  use-index-zero = true
+  vertices = {
+    dimension = 3
+    count = 30
+    coordinates = {
+             0     -2.0 -2.0 -2.0
+             1     -2.0 -1.0 -2.0
+             2     -3.0  0.0 -2.0
+             3     -2.0  1.0 -2.0
+             4     -2.0  2.0 -2.0
+             5     -2.0 -2.0  0.0
+             6     -2.0 -1.0  0.0
+             7     -3.0  0.0  0.0
+             8     -2.0  1.0  0.0
+             9     -2.0  2.0  0.0
+            10     -2.0 -1.0  2.0
+            11     -3.0  0.0  2.0
+            12     -2.0  1.0  2.0
+            13      0.0 -2.0 -2.0
+            14      0.0  0.0 -2.0
+            15      0.0  2.0 -2.0
+            16      0.0 -2.0  0.0
+            17      0.0  0.0  0.0
+            18      0.0  2.0  0.0
+            19      0.0  0.0  2.0
+            20      2.0 -2.0 -2.0
+            21      2.0 -1.0 -2.0
+            22      3.0  0.0 -2.0
+            23      2.0  1.0 -2.0
+            24      2.0  2.0 -2.0
+            25      2.0 -2.0  0.0
+            26      2.0 -1.0  0.0
+            27      3.0  0.0  0.0
+            28      2.0  1.0  0.0
+            29      2.0  2.0  0.0
+    }
+  }
+  cells = {
+    count = 7
+    num-corners = 8
+    simplices = {
+             0       1  0 13 14  6  5 16 17
+             1       7  2  3  8  6  1 14 17
+             2       8  3  4  9 17 14 15 18
+             3      23 14 21 22 28 17 26 27
+             4      17 28 23 14 18 29 24 15
+             5      20 21 14 13 25 26 17 16
+             6       8  7  6 17 12 11 10 19
+    }
+    material-ids = {
+             0   0
+             1   0
+             2   0
+             3   0
+             4   0
+             5   0
+             6   2
+    }
+  }
+  group = {
+    name = fault
+    type = vertices
+    count = 6
+    indices = {
+     13
+     14
+     15
+     16
+     17
+     18
+    }
+  }
+  group = {
+    name = output
+    type = vertices
+    count = 10
+    indices = {
+     20
+     21
+     22
+     23
+     24
+     25
+     26
+     27
+     28
+     29
+    }
+  }
+}

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4g.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4g.mesh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4g.mesh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,59 @@
+mesh = {
+  dimension = 2
+  use-index-zero = true
+  vertices = {
+    dimension = 2
+    count = 11
+    coordinates = {
+             0     -2.0 -2.0
+             1     -2.0  0.0
+             2     -2.0  2.0
+             3     -1.0 -2.0
+             4     -1.0 -1.0
+             5      0.0 -2.0
+             6      0.0  0.0
+             7      0.0  2.0
+             8      2.0 -2.0
+             9      2.0  0.0
+            10      2.0  2.0
+    }
+  }
+  cells = {
+    count = 5
+    num-corners = 4
+    simplices = {
+             0       1  6  7  2
+             1       6  5  8  9
+             2      10  7  6  9
+             3       1  0  4  6
+             4       4  3  5  6
+    }
+    material-ids = {
+             0   0
+             1   0
+             2   0
+             3   2
+             4   2
+    }
+  }
+  group = {
+    name = fault
+    type = vertices
+    count = 3
+    indices = {
+      5
+      6
+      7
+    }
+  }
+  group = {
+    name = output
+    type = vertices
+    count = 3
+    indices = {
+      8
+      9
+     10
+    }
+  }
+}

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4j.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4j.mesh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4j.mesh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,62 @@
+mesh = {
+  dimension = 3
+  use-index-zero = true
+  vertices = {
+    dimension = 3
+    count = 9
+    coordinates = {
+             0     -2.0 -1.0  0.0
+             1     -2.0  0.0  0.0
+             2     -2.0  0.0  1.0
+             3      0.0 -1.0  0.0
+             4      0.0  0.0  0.0
+             5      0.0  0.0  1.0
+             6      2.0 -1.0  0.0
+             7      2.0  0.0  0.0
+             8      2.0  0.0  1.0
+    }
+  }
+  cells = {
+    count = 6
+    num-corners = 4
+    simplices = {
+             0       1  3  2  0
+             1       5  3  7  8
+             2       4  7  5  3
+             3       4  3  5  1
+             4       3  7  8  6
+             5       1  5  2  3
+    }
+    material-ids = {
+             0   0
+             1   2
+             2   2
+             3   0
+             4   2
+             5   0
+    }
+  }
+  group = {
+    name = fault
+    type = vertices
+    count = 3
+    indices = {
+      3
+      4
+      5
+    }
+  }
+  group = {
+    name = output
+    type = vertices
+    count = 6
+    indices = {
+      0
+      2
+      3
+      5
+      6
+      8
+    }
+  }
+}

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3_finalslipB.spatialdb
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3_finalslipB.spatialdb	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3_finalslipB.spatialdb	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,15 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 2
+  value-names =  left-lateral-slip fault-opening
+  value-units =  m   m
+  num-locs = 2
+  data-dim = 1
+  space-dim = 2
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 2
+  }
+}
+0.0  +1.0   2.3   0.1
+0.0  -1.0   0.0   0.0

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3f.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3f.mesh	2007-07-13 23:24:27 UTC (rev 7666)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/tri3f.mesh	2007-07-14 00:48:21 UTC (rev 7667)
@@ -0,0 +1,51 @@
+mesh = {
+  dimension = 2
+  use-index-zero = true
+  vertices = {
+    dimension = 2
+    count = 6
+    coordinates = {
+             0     -2.0 -1.0
+             1     -2.0  1.0
+             2      0.0 -1.0
+             3      0.0  1.0
+             4      2.0 -1.0
+             5      2.0  1.0
+    }
+  }
+  cells = {
+    count = 4
+    num-corners = 3
+    simplices = {
+             0       0  3  1
+             1       5  3  2
+             2       2  4  5
+             3       2  3  0
+    }
+    material-ids = {
+             0   0
+             1   0
+             2   2
+             3   2
+    }
+  }
+  group = {
+    name = fault
+    type = vertices
+    count = 2
+    indices = {
+      2
+      3
+    }
+  }
+  group = {
+    name = output
+    type = vertices
+    count = 3
+    indices = {
+      1
+      3
+      5
+    }
+  }
+}



More information about the cig-commits mailing list