[cig-commits] r5195 - in short/3D/PyLith/trunk: libsrc/meshio pylith/feassemble unittests/libtests/meshio unittests/libtests/meshio/data

brad at geodynamics.org brad at geodynamics.org
Tue Nov 7 15:48:27 PST 2006


Author: brad
Date: 2006-11-07 15:48:26 -0800 (Tue, 07 Nov 2006)
New Revision: 5195

Added:
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.hh
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.hh
Removed:
   short/3D/PyLith/trunk/pylith/feassemble/Assembler.py
Modified:
   short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.cc
   short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.hh
Log:
Implemented unit tests for MeshIOAscii. Will need updating when we implement groups of vertices.

Modified: short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -14,6 +14,8 @@
 
 #include "MeshIO.hh" // implementation of class methods
 
+#include <assert.h> // USES assert()
+
 // ----------------------------------------------------------------------
 // Constructor
 pylith::meshio::MeshIO::MeshIO(void) :
@@ -26,6 +28,7 @@
 // Destructor
 pylith::meshio::MeshIO::~MeshIO(void)
 { // destructor
+  assert(0 == _mesh);
 } // destructor
   
 // ----------------------------------------------------------------------
@@ -33,6 +36,8 @@
 void 
 pylith::meshio::MeshIO::read(ALE::Obj<Mesh>* mesh)
 { // read
+  assert(0 == _mesh);
+
   _mesh = mesh;
   _read();
   _mesh = 0;
@@ -43,6 +48,8 @@
 void 
 pylith::meshio::MeshIO::write(ALE::Obj<Mesh>* mesh)
 { // write
+  assert(0 == _mesh);
+
   _mesh = mesh;
   _write();
   _mesh = 0;
@@ -60,7 +67,7 @@
 				   const int meshDim)
 { // _buildMesh
   assert(0 != _mesh);
-  *_mesh = Mesh(PETSC_COMM_WORLD, meshDim);
+  *_mesh = new Mesh(PETSC_COMM_WORLD, meshDim);
   ALE::Obj<Mesh>& mesh = *_mesh;
   
   ALE::Obj<sieve_type> sieve = new sieve_type(mesh->comm());
@@ -105,7 +112,7 @@
 
   double* coordinates = 0;
   const int size = numVertices * spaceDim;
-  if (0 != *pCoordinates && size > 0) {
+  if (0 != pCoordinates && size > 0) {
     coordinates = new double[size];
 
     int i = 0;
@@ -116,7 +123,7 @@
       const Mesh::real_section_type::value_type *vertexCoords = 
 	coordsField->restrict(patch, *v_iter);
       for (int iDim=0; iDim < spaceDim; ++iDim)
-	coordinates[i++] = coordinates[iDim];
+	coordinates[i++] = vertexCoords[iDim];
     } // for
   } // if
 
@@ -124,7 +131,7 @@
     *pCoordinates = coordinates;
   if (0 != pNumVertices)
     *pNumVertices = numVertices;
-  if (0 != *pSpaceDim)
+  if (0 != pSpaceDim)
     *pSpaceDim = spaceDim;
 } // _getVertices
 

Deleted: short/3D/PyLith/trunk/pylith/feassemble/Assembler.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/Assembler.py	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/pylith/feassemble/Assembler.py	2006-11-07 23:48:26 UTC (rev 5195)
@@ -1,60 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# <LicenseText>
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pyre/feassemble/Assembler.py
-## @brief Python finite-element assembler.
-
-from pyre.components.Component import Component
-
-# Assembler class
-class Assembler(Component):
-  """Python finite-element assembler."""
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  # INITIALIZE
-  # Set mesh, chart, integrator
-  
-  def assembleResidual(self, residual, state):
-    """Assemble residual for field."""
-    elements = self.mesh.restrict(self.chart)
-    for element in elements:
-      stateElem = self.mesh.restrict(element)
-      residual.update(element,
-                      self.integrator.integrateResidual(element, stateElem),
-                      ADD_VALUES)
-    return
-
-
-  def assembleJacobian(self, jacobian, state):
-    elements = self.mesh.restrict(self.chart)
-    for element in elements:
-      stateElem = self.mesh.restrict(element)
-      jacobian.updateOperator(field, element,
-                              self.integrator.integrateJacobian(element, stateElem),
-                              ADD_VALUES)
-    return
-
-
-  def __init__(self, name="assembler"):
-    """Constructor."""
-    Component.__init__(self, name, facility="assembler")
-    self.mesh = None
-    self.chart = None
-    self.integrator = None
-    return
-
-
-# version
-__id__ = "$Id$"
-
-# End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/Makefile.am	2006-11-07 23:48:26 UTC (rev 5195)
@@ -19,16 +19,32 @@
 
 # Primary source files
 testmeshio_SOURCES = \
+	TestMeshIO.cc \
 	TestMeshIOAscii.cc \
 	test_meshio.cc
 
 noinst_HEADERS = \
+	TestMeshIO.hh \
 	TestMeshIOAscii.hh
 
 # Source files associated with testing data
-testmeshio_SOURCES += 
+testmeshio_SOURCES += \
+	data/MeshData.cc \
+	data/MeshData1D.cc \
+	data/MeshData1Din3D.cc \
+	data/MeshData1Din2D.cc \
+	data/MeshData2D.cc \
+	data/MeshData2Din3D.cc \
+	data/MeshData3D.cc
 
-noinst_HEADERS += 
+noinst_HEADERS += \
+	data/MeshData.hh \
+	data/MeshData1D.hh \
+	data/MeshData1Din2D.hh \
+	data/MeshData1Din2D.hh \
+	data/MeshData2D.hh \
+	data/MeshData2Din3D.hh \
+	data/MeshData3D.hh
 
 testmeshio_LDFLAGS = $(PETSC_LIB) \
 	-ljournal
@@ -40,4 +56,14 @@
 	-lcppunit -ldl \
 	$(top_builddir)/libsrc/meshio/libpylithmeshio.la
 
+noinst_tmp = \
+	mesh1D.txt \
+	mesh1Din2D.txt \
+	mesh1Din3D.txt \
+	mesh2D.txt \
+	mesh2Din3D.txt \
+	mesh3D.txt
+
+CLEANFILES = $(noinst_tmp)
+
 # End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestMeshIO.hh" // Implementation of class methods
+
+#include <Mesh.hh>
+
+#include "data/MeshData.hh"
+
+// ----------------------------------------------------------------------
+// Check values in mesh against data.
+void
+pylith::meshio::TestMeshIO::_checkVals(const ALE::Obj<ALE::Mesh>& mesh,
+				       const MeshData& data)
+{ // _checkVals
+  const Mesh::real_section_type::patch_type patch = 0;
+  const ALE::Obj<topology_type>& topology = mesh->getTopology();
+
+  // Check mesh dimension
+  CPPUNIT_ASSERT_EQUAL(data.cellDim, mesh->getDimension());
+
+  // Check vertices
+  const ALE::Obj<Mesh::topology_type::label_sequence>& vertices = 
+    topology->depthStratum(patch, 0);
+  const ALE::Obj<Mesh::real_section_type>& coordsField =
+    mesh->getRealSection("coordinates");
+  const int numVertices = vertices->size();
+  CPPUNIT_ASSERT_EQUAL(data.numVertices, numVertices);
+  CPPUNIT_ASSERT_EQUAL(data.spaceDim, 
+		       coordsField->getFiberDimension(patch, 
+						      *vertices->begin()));
+  int i = 0;
+  const int spaceDim = data.spaceDim;
+  for(Mesh::topology_type::label_sequence::iterator v_iter = 
+	vertices->begin();
+      v_iter != vertices->end();
+      ++v_iter) {
+    const Mesh::real_section_type::value_type *vertexCoords = 
+      coordsField->restrict(patch, *v_iter);
+    const double tolerance = 1.0e-06;
+    for (int iDim=0; iDim < spaceDim; ++iDim)
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vertexCoords[iDim]/data.vertices[i++],
+				   tolerance);
+  } // for
+
+  // check cells
+  const ALE::Obj<sieve_type>& sieve = topology->getPatch(patch);
+  const ALE::Obj<Mesh::topology_type::label_sequence>& cells = 
+    topology->heightStratum(patch, 0);
+
+  const int numCells = cells->size();
+  CPPUNIT_ASSERT_EQUAL(data.numCells, numCells);
+  const int numCorners = sieve->nCone(*cells->begin(), 
+				      topology->depth())->size();
+  CPPUNIT_ASSERT_EQUAL(data.numCorners, numCorners);
+
+  const ALE::Obj<Mesh::numbering_type>& vNumbering = 
+    mesh->getFactory()->getLocalNumbering(topology, patch, 0);
+
+  const int offset = (data.useIndexZero) ? 0 : 1;
+  i = 0;
+  for(Mesh::topology_type::label_sequence::iterator e_iter = cells->begin();
+      e_iter != cells->end();
+      ++e_iter) {
+    const ALE::Obj<sieve_type::traits::coneSequence>& cone = 
+      sieve->cone(*e_iter);
+    for(sieve_type::traits::coneSequence::iterator c_iter = cone->begin();
+	c_iter != cone->end();
+	++c_iter)
+      CPPUNIT_ASSERT_EQUAL(data.cells[i++], 
+			   vNumbering->getIndex(*c_iter) + offset);
+  } // for
+
+  // :TODO: Check groups of vertices
+} // _checkVals
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIO.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/meshio/TestMeshIO.hh
+ *
+ * @brief C++ TestMeshIO object
+ *
+ * C++ unit testing for MeshIO.
+ */
+
+#if !defined(pylith_meshio_testmeshio_hh)
+#define pylith_meshio_testmeshio_hh
+
+#include <cppunit/extensions/HelperMacros.h>
+
+#include <Mesh.hh>
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace meshio {
+    class TestMeshIO;
+    class MeshData;
+  } // meshio
+} // pylith
+
+/// C++ unit testing for TestMeshIO
+class pylith::meshio::TestMeshIO : public CppUnit::TestFixture
+{ // class TestMeshIO
+  // PUBLIC TYPEDEFS ////////////////////////////////////////////////////
+public :
+
+  typedef ALE::Mesh Mesh;
+  typedef ALE::Mesh::sieve_type sieve_type;
+  typedef ALE::Mesh::topology_type topology_type;
+
+  // PROTECTED METHODS //////////////////////////////////////////////////
+protected :
+
+  /** Check values in mesh against data.
+   *
+   * @param mesh PETSc mesh
+   * @param data Mesh data
+   */
+  void _checkVals(const ALE::Obj<ALE::Mesh>& mesh,
+		  const MeshData& data);
+
+}; // class TestMeshIO
+
+#endif // pylith_meshio_testmeshio_hh
+
+// End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -16,6 +16,15 @@
 
 #include "pylith/meshio/MeshIOAscii.hh"
 
+#include "data/MeshData1D.hh"
+#include "data/MeshData1Din2D.hh"
+#include "data/MeshData1Din3D.hh"
+#include "data/MeshData2D.hh"
+#include "data/MeshData2Din3D.hh"
+#include "data/MeshData3D.hh"
+
+#include <assert.h> // USES assert()
+
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::meshio::TestMeshIOAscii );
 
@@ -44,31 +53,39 @@
 void
 pylith::meshio::TestMeshIOAscii::testWriteRead1D(void)
 { // testWriteRead1D
-  CPPUNIT_ASSERT(false);
+  MeshData1D data;
+  const char* filename = "mesh1D.txt";
+  _testWriteRead(data, filename);
 } // testWriteRead1D
 
 // ----------------------------------------------------------------------
 // Test write() and read() for 1D mesh in 2D space.
 void
 pylith::meshio::TestMeshIOAscii::testWriteRead1Din2D(void)
-{ // testWriteRead1D
-  CPPUNIT_ASSERT(false);
-} // testWriteRead1D
+{ // testWriteRead1Din2D
+  MeshData1Din2D data;
+  const char* filename = "mesh1Din2D.txt";
+  _testWriteRead(data, filename);
+} // testWriteRead1Din2D
 
 // ----------------------------------------------------------------------
 // Test write() and read() for 1D mesh in 3D space.
 void
 pylith::meshio::TestMeshIOAscii::testWriteRead1Din3D(void)
-{ // testWriteRead1D
-  CPPUNIT_ASSERT(false);
-} // testWriteRead1D
+{ // testWriteRead1Din3D
+  MeshData1Din3D data;
+  const char* filename = "mesh1Din3D.txt";
+  _testWriteRead(data, filename);
+} // testWriteRead1Din3D
 
 // ----------------------------------------------------------------------
 // Test write() and read() for 2D mesh in 2D space.
 void
 pylith::meshio::TestMeshIOAscii::testWriteRead2D(void)
 { // testWriteRead2D
-  CPPUNIT_ASSERT(false);
+  MeshData2D data;
+  const char* filename = "mesh2D.txt";
+  _testWriteRead(data, filename);
 } // testWriteRead2D
 
 // ----------------------------------------------------------------------
@@ -76,7 +93,9 @@
 void
 pylith::meshio::TestMeshIOAscii::testWriteRead2Din3D(void)
 { // testWriteRead2Din3D
-  CPPUNIT_ASSERT(false);
+  MeshData2Din3D data;
+  const char* filename = "mesh2Din3D.txt";
+  _testWriteRead(data, filename);
 } // testWriteRead2Din3D
 
 // ----------------------------------------------------------------------
@@ -84,7 +103,49 @@
 void
 pylith::meshio::TestMeshIOAscii::testWriteRead3D(void)
 { // testWriteRead3D
-  CPPUNIT_ASSERT(false);
+  MeshData3D data;
+  const char* filename = "mesh3D.txt";
+  _testWriteRead(data, filename);
 } // testWriteRead3D
 
+// ----------------------------------------------------------------------
+// Build mesh, perform write() and read(), and then check values.
+void
+pylith::meshio::TestMeshIOAscii::_testWriteRead(const MeshData& data,
+						const char* filename)
+{ // _testWriteRead
+  // buildTopology() requires zero based index
+  assert(true == data.useIndexZero);
+
+  // Build mesh
+  ALE::Obj<Mesh> meshOut = new Mesh(PETSC_COMM_WORLD, data.cellDim);
+  ALE::Obj<sieve_type> sieve = new sieve_type(meshOut->comm());
+  ALE::Obj<topology_type> topology = new topology_type(meshOut->comm());
+
+  const bool interpolate = false;
+  ALE::New::SieveBuilder<sieve_type>::buildTopology(
+			  sieve, data.cellDim, data.numCells, 
+			  const_cast<int*>(data.cells), 
+			  data.numVertices, interpolate, data.numCorners);
+  sieve->stratify();
+  topology->setPatch(0, sieve);
+  topology->stratify();
+  meshOut->setTopology(topology);
+  ALE::New::SieveBuilder<sieve_type>::buildCoordinates(
+				      meshOut->getRealSection("coordinates"), 
+				      data.spaceDim, data.vertices);
+
+  // Write mesh
+  MeshIOAscii iohandler;
+  iohandler.filename(filename);
+  iohandler.write(&meshOut);
+
+  // Read mesh
+  ALE::Obj<Mesh> meshIn;
+  iohandler.read(&meshIn);
+
+  // Make sure meshIn matches data
+  _checkVals(meshIn, data);
+} // _testWriteRead
+
 // End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/TestMeshIOAscii.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -21,17 +21,18 @@
 #if !defined(pylith_meshio_testmeshioascii_hh)
 #define pylith_meshio_testmeshioascii_hh
 
-#include <cppunit/extensions/HelperMacros.h>
+#include "TestMeshIO.hh"
 
-/// Namespace for spatialdata package
+/// Namespace for pylith package
 namespace pylith {
   namespace meshio {
     class TestMeshIOAscii;
+    class MeshData;
   } // meshio
 } // pylith
 
 /// C++ unit testing for Quadrature1D
-class pylith::meshio::TestMeshIOAscii : public CppUnit::TestFixture
+class pylith::meshio::TestMeshIOAscii : public TestMeshIO
 { // class TestMeshIOAscii
 
   // CPPUNIT TEST SUITE /////////////////////////////////////////////////
@@ -73,6 +74,17 @@
   /// Test write() and read() for 3D mesh in 3D space.
   void testWriteRead3D(void);
 
+  // PRIVATE METHODS ////////////////////////////////////////////////////
+private :
+
+  /** Build mesh, perform write() and read(), and then check values.
+   *
+   * @param data Mesh data
+   * @param filename Name of mesh file to write/read
+   */
+  void _testWriteRead(const MeshData& data,
+		      const char* filename);
+
 }; // class TestMeshIOAscii
 
 #endif // pylith_meshio_testmeshioascii_hh

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,35 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData.hh"
+
+// ----------------------------------------------------------------------
+// Constructor
+pylith::meshio::MeshData::MeshData(void) :
+  numVertices(0),
+  spaceDim(0),
+  numCells(0),
+  cellDim(0),
+  numCorners(0),
+  vertices(0),
+  cells(0),
+  useIndexZero(true)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Destructor
+pylith::meshio::MeshData::~MeshData(void)
+{ // destructor
+} // destructor
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,55 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata_hh)
+#define pylith_meshio_meshdata_hh
+
+namespace pylith {
+  namespace meshio {
+     class MeshData;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+  
+  /// Constructor
+  MeshData(void);
+
+  /// Destructor
+  ~MeshData(void);
+
+// PUBLIC MEMBERS ///////////////////////////////////////////////////////
+public:
+
+  int numVertices; ///< Number of vertices
+  int spaceDim; ///< Number of dimensions in vertex coordinates
+  int numCells; ///< Number of cells
+  int cellDim; ///< Number of dimensions associated with cell
+  int numCorners; ///< Number of vertices in cell
+
+  double* vertices; ///< Pointer to coordinates of vertices
+  int* cells; ///< Pointer to indices of vertices in cells
+
+  bool useIndexZero; ///< Indices start with 0 if true, 1 if false
+
+  // :TODO:
+  // Add groups of vertices
+
+};
+
+#endif // pylith_meshio_meshdata_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData1D.hh"
+
+const int pylith::meshio::MeshData1D::_numVertices = 3;
+
+const int pylith::meshio::MeshData1D::_spaceDim = 1;
+
+const int pylith::meshio::MeshData1D::_numCells = 2;
+
+const int pylith::meshio::MeshData1D::_cellDim = 1;
+
+const int pylith::meshio::MeshData1D::_numCorners = 2;
+
+const double pylith::meshio::MeshData1D::_vertices[] = {
+  -1.2,
+   2.1,
+   0.3
+};
+
+const int pylith::meshio::MeshData1D::_cells[] = {
+       0,  2,
+       2,  1,
+};
+
+const bool pylith::meshio::MeshData1D::_useIndexZero = true;
+
+pylith::meshio::MeshData1D::MeshData1D(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  numCorners = _numCorners;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  useIndexZero = _useIndexZero;
+} // constructor
+
+pylith::meshio::MeshData1D::~MeshData1D(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1D.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata1d_hh)
+#define pylith_meshio_meshdata1d_hh
+
+#include "MeshData.hh"
+
+namespace pylith {
+  namespace meshio {
+     class MeshData1D;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData1D : public MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  MeshData1D(void);
+
+  /// Destructor
+  ~MeshData1D(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 int _numCorners; ///< Number of vertices in cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+
+  static const bool _useIndexZero; ///< First vertex is 0 if true, 1 if false
+
+};
+
+#endif // pylith_meshio_meshdata1d_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData1Din2D.hh"
+
+const int pylith::meshio::MeshData1Din2D::_numVertices = 4;
+
+const int pylith::meshio::MeshData1Din2D::_spaceDim = 2;
+
+const int pylith::meshio::MeshData1Din2D::_numCells = 3;
+
+const int pylith::meshio::MeshData1Din2D::_cellDim = 1;
+
+const int pylith::meshio::MeshData1Din2D::_numCorners = 2;
+
+const double pylith::meshio::MeshData1Din2D::_vertices[] = {
+  -3.0, -1.2,
+   1.0, -1.0,
+   2.6,  3.1,
+   1.8, -4.0
+};
+
+const int pylith::meshio::MeshData1Din2D::_cells[] = {
+       3,  1,
+       0,  1,
+       1,  2
+};
+
+const bool pylith::meshio::MeshData1Din2D::_useIndexZero = true;
+
+pylith::meshio::MeshData1Din2D::MeshData1Din2D(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  numCorners = _numCorners;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  useIndexZero = _useIndexZero;
+} // constructor
+
+pylith::meshio::MeshData1Din2D::~MeshData1Din2D(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din2D.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata1din2d_hh)
+#define pylith_meshio_meshdata1din2d_hh
+
+#include "MeshData.hh"
+
+namespace pylith {
+  namespace meshio {
+     class MeshData1Din2D;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData1Din2D : public MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  MeshData1Din2D(void);
+
+  /// Destructor
+  ~MeshData1Din2D(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 int _numCorners; ///< Number of vertices in cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+
+  static const bool _useIndexZero; ///< First vertex is 0 if true, 1 if false
+
+};
+
+#endif // pylith_meshio_meshdata1din2d_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData1Din3D.hh"
+
+const int pylith::meshio::MeshData1Din3D::_numVertices = 4;
+
+const int pylith::meshio::MeshData1Din3D::_spaceDim = 3;
+
+const int pylith::meshio::MeshData1Din3D::_numCells = 3;
+
+const int pylith::meshio::MeshData1Din3D::_cellDim = 1;
+
+const int pylith::meshio::MeshData1Din3D::_numCorners = 2;
+
+const double pylith::meshio::MeshData1Din3D::_vertices[] = {
+  -3.0, -1.2,  0.3,
+   1.0, -1.0,  0.0,
+   2.6,  3.1, -0.5,
+   1.8, -4.0,  1.0
+};
+
+const int pylith::meshio::MeshData1Din3D::_cells[] = {
+       3,  1,
+       0,  1,
+       1,  2
+};
+
+const bool pylith::meshio::MeshData1Din3D::_useIndexZero = true;
+
+pylith::meshio::MeshData1Din3D::MeshData1Din3D(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  numCorners = _numCorners;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  useIndexZero = _useIndexZero;
+} // constructor
+
+pylith::meshio::MeshData1Din3D::~MeshData1Din3D(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData1Din3D.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata1din3d_hh)
+#define pylith_meshio_meshdata1din3d_hh
+
+#include "MeshData.hh"
+
+namespace pylith {
+  namespace meshio {
+     class MeshData1Din3D;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData1Din3D : public MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  MeshData1Din3D(void);
+
+  /// Destructor
+  ~MeshData1Din3D(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 int _numCorners; ///< Number of vertices in cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+
+  static const bool _useIndexZero; ///< First vertex is 0 if true, 1 if false
+
+};
+
+#endif // pylith_meshio_meshdata1din3d_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData2D.hh"
+
+const int pylith::meshio::MeshData2D::_numVertices = 9;
+
+const int pylith::meshio::MeshData2D::_spaceDim = 2;
+
+const int pylith::meshio::MeshData2D::_numCells = 3;
+
+const int pylith::meshio::MeshData2D::_cellDim = 2;
+
+const int pylith::meshio::MeshData2D::_numCorners = 4;
+
+const double pylith::meshio::MeshData2D::_vertices[] = {
+  -1.0,  3.0,
+   1.0,  3.3,
+  -1.2,  0.9,
+   0.9,  1.0,
+   3.0,  2.9,
+   6.0,  1.2,
+   3.4, -0.2,
+   0.1, -1.1,
+   2.9, -3.1
+};
+
+const int pylith::meshio::MeshData2D::_cells[] = {
+  0,  2,  3,  1,
+  4,  3,  6,  5,
+  3,  7,  8,  6
+};
+
+const bool pylith::meshio::MeshData2D::_useIndexZero = true;
+
+pylith::meshio::MeshData2D::MeshData2D(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  numCorners = _numCorners;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  useIndexZero = _useIndexZero;
+} // constructor
+
+pylith::meshio::MeshData2D::~MeshData2D(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2D.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata2d_hh)
+#define pylith_meshio_meshdata2d_hh
+
+#include "MeshData.hh"
+
+namespace pylith {
+  namespace meshio {
+     class MeshData2D;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData2D : public MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  MeshData2D(void);
+
+  /// Destructor
+  ~MeshData2D(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 int _numCorners; ///< Number of vertices in cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+
+  static const bool _useIndexZero; ///< First vertex is 0 if true, 1 if false
+
+};
+
+#endif // pylith_meshio_meshdata2d_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData2Din3D.hh"
+
+const int pylith::meshio::MeshData2Din3D::_numVertices = 9;
+
+const int pylith::meshio::MeshData2Din3D::_spaceDim = 2;
+
+const int pylith::meshio::MeshData2Din3D::_numCells = 3;
+
+const int pylith::meshio::MeshData2Din3D::_cellDim = 2;
+
+const int pylith::meshio::MeshData2Din3D::_numCorners = 4;
+
+const double pylith::meshio::MeshData2Din3D::_vertices[] = {
+  -1.0,  3.0,  0.2,
+   1.0,  3.3,  0.5,
+  -1.2,  0.9,  0.3,
+   0.9,  1.0,  0.4,
+   3.0,  2.9, -0.1,
+   6.0,  1.2, -0.2,
+   3.4, -0.2,  0.1,
+   0.1, -1.1,  0.9,
+   2.9, -3.1,  0.8
+};
+
+const int pylith::meshio::MeshData2Din3D::_cells[] = {
+  0,  2,  3,  1,
+  4,  3,  6,  5,
+  3,  7,  8,  6
+};
+
+const bool pylith::meshio::MeshData2Din3D::_useIndexZero = true;
+
+pylith::meshio::MeshData2Din3D::MeshData2Din3D(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  numCorners = _numCorners;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  useIndexZero = _useIndexZero;
+} // constructor
+
+pylith::meshio::MeshData2Din3D::~MeshData2Din3D(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData2Din3D.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata2din3d_hh)
+#define pylith_meshio_meshdata2din3d_hh
+
+#include "MeshData.hh"
+
+namespace pylith {
+  namespace meshio {
+     class MeshData2Din3D;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData2Din3D : public MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  MeshData2Din3D(void);
+
+  /// Destructor
+  ~MeshData2Din3D(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 int _numCorners; ///< Number of vertices in cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+
+  static const bool _useIndexZero; ///< First vertex is 0 if true, 1 if false
+
+};
+
+#endif // pylith_meshio_meshdata2din3d_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.cc	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.cc	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "MeshData3D.hh"
+
+const int pylith::meshio::MeshData3D::_numVertices = 14;
+
+const int pylith::meshio::MeshData3D::_spaceDim = 3;
+
+const int pylith::meshio::MeshData3D::_numCells = 2;
+
+const int pylith::meshio::MeshData3D::_cellDim = 3;
+
+const int pylith::meshio::MeshData3D::_numCorners = 8;
+
+const double pylith::meshio::MeshData3D::_vertices[] = {
+  -3.0, -1.0,  0.2,
+  -3.0, -1.0,  1.3,
+  -1.0, -1.2,  0.1,
+  -1.0, -1.2,  1.2,
+  -3.0,  5.0,  1.3,
+  -3.0,  5.0,  0.1,
+  -0.5,  4.8,  0.2,
+  -0.5,  4.8,  1.4,
+   0.5,  7.0,  1.2,
+   1.0,  3.1,  1.3,
+   3.0,  4.1,  1.4,
+   0.5,  7.0, -0.1,
+   1.0,  3.0, -0.2,
+   3.0,  4.2,  0.1
+};
+
+const int pylith::meshio::MeshData3D::_cells[] = {
+  6, 12, 13, 11,  7,  9, 10,  8,
+  0,  2,  6,  5,  1,  3,  7,  4
+};
+
+const bool pylith::meshio::MeshData3D::_useIndexZero = true;
+
+pylith::meshio::MeshData3D::MeshData3D(void)
+{ // constructor
+  numVertices = _numVertices;
+  spaceDim = _spaceDim;
+  numCells = _numCells;
+  cellDim = _cellDim;
+  numCorners = _numCorners;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  useIndexZero = _useIndexZero;
+} // constructor
+
+pylith::meshio::MeshData3D::~MeshData3D(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.hh	2006-11-07 23:42:53 UTC (rev 5194)
+++ short/3D/PyLith/trunk/unittests/libtests/meshio/data/MeshData3D.hh	2006-11-07 23:48:26 UTC (rev 5195)
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_meshdata3d_hh)
+#define pylith_meshio_meshdata3d_hh
+
+#include "MeshData.hh"
+
+namespace pylith {
+  namespace meshio {
+     class MeshData3D;
+  } // pylith
+} // meshio
+
+class pylith::meshio::MeshData3D : public MeshData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public: 
+
+  /// Constructor
+  MeshData3D(void);
+
+  /// Destructor
+  ~MeshData3D(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 int _numCorners; ///< Number of vertices in cell
+
+  static const double _vertices[]; ///< Pointer to coordinates of vertices
+  static const int _cells[]; ///< Pointer to indices of vertices in cells
+
+  static const bool _useIndexZero; ///< First vertex is 0 if true, 1 if false
+
+};
+
+#endif // pylith_meshio_meshdata3d_hh
+
+// End of file



More information about the cig-commits mailing list