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

knepley at geodynamics.org knepley at geodynamics.org
Fri Jul 6 15:44:28 PDT 2007


Author: knepley
Date: 2007-07-06 15:44:28 -0700 (Fri, 06 Jul 2007)
New Revision: 7611

Added:
   short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8traction.mesh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4traction.mesh
Modified:
   short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.hh
Log:
Added quad and hex tests for boundary mesh


Modified: short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am	2007-07-06 22:44:28 UTC (rev 7611)
@@ -103,7 +103,9 @@
 	data/CohesiveKinDataHex8.cc \
 	data/BoundaryData.cc \
 	data/BoundaryDataTri3.cc \
-	data/BoundaryDataTet4.cc
+	data/BoundaryDataQuad4.cc \
+	data/BoundaryDataTet4.cc \
+	data/BoundaryDataHex8.cc
 
 noinst_HEADERS += \
 	data/CohesiveData.hh \
@@ -152,7 +154,9 @@
 	data/CohesiveKinDataHex8.hh \
 	data/BoundaryData.hh \
 	data/BoundaryDataTri3.hh \
-	data/BoundaryDataTet4.hh
+	data/BoundaryDataQuad4.hh \
+	data/BoundaryDataTet4.hh \
+	data/BoundaryDataHex8.hh
 
 AM_CPPFLAGS = $(PETSC_SIEVE_FLAGS) $(PETSC_INCLUDE)
 

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.cc	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.cc	2007-07-06 22:44:28 UTC (rev 7611)
@@ -21,7 +21,9 @@
 #include "pylith/meshio/MeshIOAscii.hh" // USES MeshIOAscii
 
 #include "data/BoundaryDataTri3.hh" // USES BoundaryDataTri3
+#include "data/BoundaryDataQuad4.hh" // USES BoundaryDataQuad4
 #include "data/BoundaryDataTet4.hh" // USES BoundaryDataTet4
+#include "data/BoundaryDataHex8.hh" // USES BoundaryDataHex8
 
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestBoundary );
@@ -36,6 +38,15 @@
 } // testCreateBoundaryTri3
 
 // ----------------------------------------------------------------------
+// Test createBoundary() with 2-D quadrilateral elements.
+void
+pylith::faults::TestBoundary::testCreateBoundaryQuad4(void)
+{ // testCreateBoundaryQuad4
+  BoundaryDataQuad4 data;
+  _testCreateBoundary(data);
+} // testCreateBoundaryQuad4
+
+// ----------------------------------------------------------------------
 // Test createBoundary() with 3-D tetrahedral elements.
 void
 pylith::faults::TestBoundary::testCreateBoundaryTet4(void)
@@ -45,6 +56,15 @@
 } // testCreateBoundaryTet4
 
 // ----------------------------------------------------------------------
+// Test createBoundary() with 3-D hexahedral elements.
+void
+pylith::faults::TestBoundary::testCreateBoundaryHex8(void)
+{ // testCreateBoundaryHex8
+  BoundaryDataHex8 data;
+  _testCreateBoundary(data);
+} // testCreateBoundaryHex8
+
+// ----------------------------------------------------------------------
 // Test createBoundary().
 void
 pylith::faults::TestBoundary::_testCreateBoundary(const BoundaryData& data)

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.hh	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestBoundary.hh	2007-07-06 22:44:28 UTC (rev 7611)
@@ -41,7 +41,9 @@
   CPPUNIT_TEST_SUITE( TestBoundary );
 
   CPPUNIT_TEST( testCreateBoundaryTri3 );
+  CPPUNIT_TEST( testCreateBoundaryQuad4 );
   CPPUNIT_TEST( testCreateBoundaryTet4 );
+  CPPUNIT_TEST( testCreateBoundaryHex8 );
 
   CPPUNIT_TEST_SUITE_END();
 
@@ -50,8 +52,12 @@
 
   /// Test createBoundary() with 2-D triangular element.
   void testCreateBoundaryTri3(void);
+  /// Test createBoundary() with 2-D quadrilateral element.
+  void testCreateBoundaryQuad4(void);
   /// Test createBoundary() with 3-D tetrahedral element.
   void testCreateBoundaryTet4(void);
+  /// Test createBoundary() with 3-D hexahedral element.
+  void testCreateBoundaryHex8(void);
 
   // PROTECTED METHODS //////////////////////////////////////////////////
 public :

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.cc	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.cc	2007-07-06 22:44:28 UTC (rev 7611)
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-1 and vertices are 2-13.
+ *
+ *       2,3,4,5 -------- 6,7,8,9 -------- 10,11,12,13
+ *
+ *                        ^^^^^^^ Vertices forming fault
+ *
+ * Taking the boundary
+ *
+ */
+
+#include "BoundaryDataHex8.hh"
+
+const int pylith::faults::BoundaryDataHex8::_numVertices = 12;
+
+const int pylith::faults::BoundaryDataHex8::_spaceDim = 3;
+
+const int pylith::faults::BoundaryDataHex8::_numCells = 10;
+
+const int pylith::faults::BoundaryDataHex8::_cellDim = 2;
+
+const double pylith::faults::BoundaryDataHex8::_vertices[] = {
+  -2.0, -1.0, -1.0,
+  -2.0,  1.0, -1.0,
+  -2.0, -1.0,  1.0,
+  -2.0,  1.0,  1.0,
+   0.0, -1.0, -1.0,
+   0.0,  1.0, -1.0,
+   0.0, -1.0,  1.0,
+   0.0,  1.0,  1.0,
+   2.0, -1.0, -1.0,
+   2.0,  1.0, -1.0,
+   2.0, -1.0,  1.0,
+   2.0,  1.0,  1.0,
+};
+
+const int pylith::faults::BoundaryDataHex8::_numCorners[] = {
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+  4,
+  4
+};
+
+const int pylith::faults::BoundaryDataHex8::_cells[] = {
+  4,  5,  3,  2,
+  3,  7,  6,  2,
+  6,  8,  4,  2,
+  5,  9,  7,  3,
+  8,  9,  5,  4,
+  7, 11, 10,  6,
+ 10, 12,  8,  6,
+  9, 13, 11,  7,
+ 12, 13,  9,  8,
+ 11, 13, 12, 10,
+};
+
+const char* pylith::faults::BoundaryDataHex8::_filename = 
+  "data/hex8traction.mesh";
+
+pylith::faults::BoundaryDataHex8::BoundaryDataHex8(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);
+  filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::BoundaryDataHex8::~BoundaryDataHex8(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.hh	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataHex8.hh	2007-07-06 22:44:28 UTC (rev 7611)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_boundarydatahex8_hh)
+#define pylith_faults_boundarydatahex8_hh
+
+#include "BoundaryData.hh"
+
+namespace pylith {
+  namespace faults {
+     class BoundaryDataHex8;
+  } // pylith
+} // faults
+
+class pylith::faults::BoundaryDataHex8 : public BoundaryData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  BoundaryDataHex8(void);
+
+  /// Destructor
+  ~BoundaryDataHex8(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 char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_boundarydatahex8_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.cc	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.cc	2007-07-06 22:44:28 UTC (rev 7611)
@@ -0,0 +1,98 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-1, vertices are 2-7.
+ *
+ *       3 -------- 5 -------- 7
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       |          |          |
+ *       2 -------- 4 -------- 6
+ *
+ * Taking the boundary
+ *
+ *       3 -------- 5 -------- 7
+ *       |                     |
+ *       |                     |
+ *       |                     |
+ *       |                     |
+ *       |                     |
+ *       |                     |
+ *       |                     |
+ *       |                     |
+ *       2 -------- 4 -------- 6
+ */
+
+#include "BoundaryDataQuad4.hh"
+
+const int pylith::faults::BoundaryDataQuad4::_numVertices = 6;
+
+const int pylith::faults::BoundaryDataQuad4::_spaceDim = 2;
+
+const int pylith::faults::BoundaryDataQuad4::_numCells = 6;
+
+const int pylith::faults::BoundaryDataQuad4::_cellDim = 1;
+
+const double pylith::faults::BoundaryDataQuad4::_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,
+};
+
+const int pylith::faults::BoundaryDataQuad4::_numCorners[] = {
+  2,
+  2,
+  2,
+  2,
+  2,
+  2
+};
+
+const int pylith::faults::BoundaryDataQuad4::_cells[] = {
+  3,  2,
+  2,  4,
+  5,  3,
+  4,  6,
+  7,  5,
+  6,  7,
+};
+
+const char* pylith::faults::BoundaryDataQuad4::_filename = 
+  "data/quad4traction.mesh";
+
+pylith::faults::BoundaryDataQuad4::BoundaryDataQuad4(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);
+  filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::BoundaryDataQuad4::~BoundaryDataQuad4(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.hh	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/BoundaryDataQuad4.hh	2007-07-06 22:44:28 UTC (rev 7611)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_boundarydataquad4_hh)
+#define pylith_faults_boundarydataquad4_hh
+
+#include "BoundaryData.hh"
+
+namespace pylith {
+  namespace faults {
+     class BoundaryDataQuad4;
+  } // pylith
+} // faults
+
+class pylith::faults::BoundaryDataQuad4 : public BoundaryData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  BoundaryDataQuad4(void);
+
+  /// Destructor
+  ~BoundaryDataQuad4(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 char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_boundarydataquad4_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8traction.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8traction.mesh	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8traction.mesh	2007-07-06 22:44:28 UTC (rev 7611)
@@ -0,0 +1,64 @@
+mesh = {
+  dimension = 3
+  use-index-zero = true
+  vertices = {
+    dimension = 3
+    count = 12
+    coordinates = {
+             0     -2.0 -1.0 -1.0
+             1     -2.0  1.0 -1.0
+             2     -2.0 -1.0  1.0
+             3     -2.0  1.0  1.0
+             4      0.0 -1.0 -1.0
+             5      0.0  1.0 -1.0
+             6      0.0 -1.0  1.0
+             7      0.0  1.0  1.0
+             8      2.0 -1.0 -1.0
+             9      2.0  1.0 -1.0
+            10      2.0 -1.0  1.0
+            11      2.0  1.0  1.0
+    }
+  }
+  cells = {
+    count = 2
+    num-corners = 8
+    simplices = {
+             0       0  1  3  2  4  5  7  6
+             1       4  5  7  6  8  9 11 10
+    }
+    material-ids = {
+             0   0
+             1   0
+    }
+  }
+  group = {
+    name = fault
+    type = vertices
+    count = 4
+    indices = {
+      4
+      5
+      6
+      7
+    }
+  }
+  group = {
+    name = traction
+    type = vertices
+    count = 12
+    indices = {
+      0
+      1
+      2
+      3
+      4
+      5
+      6
+      7
+      8
+      9
+     10
+     11
+    }
+  }
+}

Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4traction.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4traction.mesh	2007-07-06 20:48:44 UTC (rev 7610)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/quad4traction.mesh	2007-07-06 22:44:28 UTC (rev 7611)
@@ -0,0 +1,50 @@
+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 = 2
+    num-corners = 4
+    simplices = {
+             0       0  2  3  1
+             1       4  5  3  2
+    }
+    material-ids = {
+             0   0
+             1   0
+    }
+  }
+  group = {
+    name = fault
+    type = vertices
+    count = 2
+    indices = {
+      2
+      3
+    }
+  }
+  group = {
+    name = traction
+    type = vertices
+    count = 6
+    indices = {
+      0
+      1
+      2
+      3
+      4
+      5
+    }
+  }
+}



More information about the cig-commits mailing list