[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