[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