[cig-commits] r6871 - in short/3D/PyLith/trunk: libsrc
libsrc/topology unittests/libtests/topology
unittests/libtests/topology/data
brad at geodynamics.org
brad at geodynamics.org
Sat May 12 21:32:33 PDT 2007
Author: brad
Date: 2007-05-12 21:32:31 -0700 (Sat, 12 May 2007)
New Revision: 6871
Added:
short/3D/PyLith/trunk/libsrc/topology/GeometryHex3D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryHex3D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryLine1D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryLine1D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint1D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint1D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryTet3D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryTet3D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryTri2D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryTri2D.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.hh
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.cc
short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.hh
Removed:
short/3D/PyLith/trunk/libsrc/topology/GeometryHex.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryHex.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryLine.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryLine.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryTet.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryTet.hh
short/3D/PyLith/trunk/libsrc/topology/GeometryTri.cc
short/3D/PyLith/trunk/libsrc/topology/GeometryTri.hh
Modified:
short/3D/PyLith/trunk/libsrc/Makefile.am
short/3D/PyLith/trunk/libsrc/topology/CellGeometry.cc
short/3D/PyLith/trunk/libsrc/topology/CellGeometry.hh
short/3D/PyLith/trunk/libsrc/topology/CellGeometry.icc
short/3D/PyLith/trunk/libsrc/topology/Makefile.am
short/3D/PyLith/trunk/unittests/libtests/topology/Makefile.am
Log:
Worked on implementing unit tests for cell geometry routines. Added objects for lower dimension cells in higher dimension spaces.
Modified: short/3D/PyLith/trunk/libsrc/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/Makefile.am 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/Makefile.am 2007-05-13 04:32:31 UTC (rev 6871)
@@ -63,12 +63,18 @@
meshio/SolutionIO.cc \
meshio/SolutionIOVTK.cc \
topology/CellGeometry.cc \
- topology/GeometryPoint.cc \
- topology/GeometryLine.cc \
- topology/GeometryTri.cc \
- topology/GeometryTet.cc \
- topology/GeometryQuad.cc \
- topology/GeometryHex.cc
+ topology/GeometryPoint1D.cc \
+ topology/GeometryPoint2D.cc \
+ topology/GeometryPoint3D.cc \
+ topology/GeometryLine1D.cc \
+ topology/GeometryLine2D.cc \
+ topology/GeometryLine3D.cc \
+ topology/GeometryTri2D.cc \
+ topology/GeometryTri3D.cc \
+ topology/GeometryTet3D.cc \
+ topology/GeometryQuad2D.cc \
+ topology/GeometryQuad3D.cc \
+ topology/GeometryHex3D.cc
if ENABLE_CUBIT
libpylith_la_SOURCES += \
Modified: short/3D/PyLith/trunk/libsrc/topology/CellGeometry.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/CellGeometry.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/CellGeometry.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -16,8 +16,12 @@
// ----------------------------------------------------------------------
// Default constructor.
-pylith::topology::CellGeometry::CellGeometry(const int dimension) :
- _dimension(dimension)
+pylith::topology::CellGeometry::CellGeometry(const int cellDim,
+ const int spaceDim,
+ const int numCorners) :
+ _cellDim(cellDim),
+ _spaceDim(spaceDim),
+ _numCorners(numCorners)
{ // constructor
} // constructor
Modified: short/3D/PyLith/trunk/libsrc/topology/CellGeometry.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/CellGeometry.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/CellGeometry.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -35,9 +35,13 @@
/** Default constructor.
*
- * @param dimension Dimension of cell.
+ * @param cellDim Dimension of cell.
+ * @param spaceDim Dimension of coordinate space.
+ * @param numCorners Number of corners in cell.
*/
- CellGeometry(const int dimension);
+ CellGeometry(const int cellDim,
+ const int spaceDim,
+ const int numCorners);
/// Default destructor.
virtual
@@ -47,8 +51,28 @@
*
* @returns Spatial dimension of cell.
*/
- int dimension(void) const;
+ int cellDim(void) const;
+ /** Get dimension of coordinate space.
+ *
+ * @returns Dimension of coordinate space.
+ */
+ int spaceDim(void) const;
+
+ /** Get number of vertices in cell.
+ *
+ * @returns Number of vertices in cell.
+ */
+ int numCorners(void) const;
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ virtual
+ CellGeometry* geometryLowerDim(void) const = 0;
+
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
@@ -63,7 +87,9 @@
// PRIVATE MEMBERS //////////////////////////////////////////////////////
private :
- int _dimension; ///< Dimension of cell.
+ int _cellDim; ///< Dimension of cell.
+ int _spaceDim; ///< Dimension of coordinate space.
+ int _numCorners; ///< Number of corners in cell.
}; // CellGeometry
Modified: short/3D/PyLith/trunk/libsrc/topology/CellGeometry.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/CellGeometry.icc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/CellGeometry.icc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -17,11 +17,25 @@
// Get dimension of cell.
inline
int
-pylith::topology::CellGeometry::dimension(void) const {
- return _dimension;
-} // dimension
+pylith::topology::CellGeometry::cellDim(void) const {
+ return _cellDim;
+} // cellDim
+// Get dimension of coordinate space.
+inline
+int
+pylith::topology::CellGeometry::spaceDim(void) const {
+ return _spaceDim;
+} // spaceDim
+// Get number of corners in cell.
+inline
+int
+pylith::topology::CellGeometry::numCorners(void) const {
+ return _numCorners;
+} // numCorners
+
+
#endif
// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryHex.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryHex.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryHex.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,113 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include <portinfo>
-
-#include "GeometryHex.hh" // implementation of class methods
-
-#include "pylith/utils/array.hh" // USES double_array
-
-#include <assert.h> // USES assert()
-
-// ----------------------------------------------------------------------
-// Default constructor.
-pylith::topology::GeometryHex::GeometryHex(void) :
- CellGeometry(3)
-{ // constructor
-} // constructor
-
-// ----------------------------------------------------------------------
-// Default destructor.
-pylith::topology::GeometryHex::~GeometryHex(void)
-{ // destructor
-} // destructor
-
-// ----------------------------------------------------------------------
-// Compute Jacobian at location in cell.
-void
-pylith::topology::GeometryHex::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
-{ // jacobian
- assert(0 != jacobian);
-
- assert(3*8 == vertices.size());
- assert(3 == location.size());
- assert(9 == jacobian->size());
-
- const double x0 = vertices[0];
- const double y0 = vertices[1];
- const double z0 = vertices[2];
-
- const double x1 = vertices[3];
- const double y1 = vertices[4];
- const double z1 = vertices[5];
-
- const double x2 = vertices[6];
- const double y2 = vertices[7];
- const double z2 = vertices[8];
-
- const double x3 = vertices[9];
- const double y3 = vertices[10];
- const double z3 = vertices[11];
-
- const double x4 = vertices[12];
- const double y4 = vertices[13];
- const double z4 = vertices[14];
-
- const double x5 = vertices[15];
- const double y5 = vertices[16];
- const double z5 = vertices[17];
-
- const double x6 = vertices[18];
- const double y6 = vertices[19];
- const double z6 = vertices[20];
-
- const double x7 = vertices[21];
- const double y7 = vertices[22];
- const double z7 = vertices[23];
-
- const double x = location[0];
- const double y = location[1];
- const double z = location[2];
-
- const double f_xy = x2 - x1 - x3 + x0;
- const double g_xy = y2 - y1 - y3 + y0;
- const double h_xy = z2 - z1 - z3 + z0;
-
- const double f_yz = x7 - x3 - x4 + x0;
- const double g_yz = y7 - y3 - y4 + y0;
- const double h_yz = z7 - z3 - z4 + z0;
-
- const double f_xz = x5 - x1 - x4 + x0;
- const double g_xz = y5 - y1 - y4 + y0;
- const double h_xz = z5 - z1 - z4 + z0;
-
- const double f_xyz = x6 - x0 + x1 - x2 + x3 + x4 - x5 - x7;
- const double g_xyz = y6 - y0 + y1 - y2 + y3 + y4 - y5 - y7;
- const double h_xyz = z6 - z0 + z1 - z2 + z3 + z4 - z5 - z7;
-
- (*jacobian)[0] = x1 - x0 + f_xy*y + f_xz*z + f_xyz*y*z;
- (*jacobian)[1] = x3 - x0 + f_xy*x + f_yz*z + f_xyz*x*z;
- (*jacobian)[2] = x4 - x0 + f_yz*y + f_xz*x + f_xyz*x*y;
-
- (*jacobian)[3] = y1 - y0 + g_xy*y + g_xz*z + g_xyz*y*z;
- (*jacobian)[4] = y3 - y0 + g_xy*x + g_yz*z + g_xyz*x*z;
- (*jacobian)[5] = y4 - y0 + g_yz*y + g_xz*x + g_xyz*x*y;
-
- (*jacobian)[6] = z1 - z0 + h_xy*y + h_xz*z + h_xyz*y*z;
- (*jacobian)[7] = z3 - z0 + h_xy*x + h_yz*z + h_xyz*x*z;
- (*jacobian)[8] = z4 - z0 + h_yz*y + h_xz*x + h_xyz*x*y;
-} // jacobian
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryHex.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryHex.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryHex.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-/**
- * @file pylith/topology/GeometryHex.hh
- *
- * @brief C++ implementation of cell geometry calculations for 3-D
- * hexahedral cell.
- */
-
-#if !defined(pylith_topology_geometryhex_hh)
-#define pylith_topology_geometryhex_hh
-
-#include "CellGeometry.hh" // ISA CellGeometry
-
-namespace pylith {
- namespace topology {
- class GeometryHex;
- } // topology
-} // pylith
-
-class pylith::topology::GeometryHex : public CellGeometry
-{ // GeometryHex
-
-// PUBLIC METHODS ///////////////////////////////////////////////////////
-public :
-
- /// Default constructor.
- GeometryHex(void);
-
- /// Default destructor.
- ~GeometryHex(void);
-
- /** Compute Jacobian at location in cell.
- *
- * @param jacobian Jacobian at location.
- * @param vertices Coordinates of vertices of cell.
- * @param location Location in reference cell at which to compute Jacobian.
- */
- void jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const;
-
-}; // GeometryHex
-
-#endif // pylith_topology_geometryhex_hh
-
-
-// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryHex3D.cc (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryHex.cc)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryHex.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryHex3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryHex3D.hh" // implementation of class methods
+
+#include "GeometryQuad3D.hh" // USES GeometryQuad3D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryHex3D::GeometryHex3D(void) :
+ CellGeometry(3, 3, 8)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryHex3D::~GeometryHex3D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryHex3D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryQuad3D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryHex3D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(cellDim() == location.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+ const double z0 = vertices[2];
+
+ const double x1 = vertices[3];
+ const double y1 = vertices[4];
+ const double z1 = vertices[5];
+
+ const double x2 = vertices[6];
+ const double y2 = vertices[7];
+ const double z2 = vertices[8];
+
+ const double x3 = vertices[9];
+ const double y3 = vertices[10];
+ const double z3 = vertices[11];
+
+ const double x4 = vertices[12];
+ const double y4 = vertices[13];
+ const double z4 = vertices[14];
+
+ const double x5 = vertices[15];
+ const double y5 = vertices[16];
+ const double z5 = vertices[17];
+
+ const double x6 = vertices[18];
+ const double y6 = vertices[19];
+ const double z6 = vertices[20];
+
+ const double x7 = vertices[21];
+ const double y7 = vertices[22];
+ const double z7 = vertices[23];
+
+ const double x = location[0];
+ const double y = location[1];
+ const double z = location[2];
+ assert(0 <= x && x <= 1.0);
+ assert(0 <= y && y <= 1.0);
+ assert(0 <= z && z <= 1.0);
+
+ const double f_xy = x2 - x1 - x3 + x0;
+ const double g_xy = y2 - y1 - y3 + y0;
+ const double h_xy = z2 - z1 - z3 + z0;
+
+ const double f_yz = x7 - x3 - x4 + x0;
+ const double g_yz = y7 - y3 - y4 + y0;
+ const double h_yz = z7 - z3 - z4 + z0;
+
+ const double f_xz = x5 - x1 - x4 + x0;
+ const double g_xz = y5 - y1 - y4 + y0;
+ const double h_xz = z5 - z1 - z4 + z0;
+
+ const double f_xyz = x6 - x0 + x1 - x2 + x3 + x4 - x5 - x7;
+ const double g_xyz = y6 - y0 + y1 - y2 + y3 + y4 - y5 - y7;
+ const double h_xyz = z6 - z0 + z1 - z2 + z3 + z4 - z5 - z7;
+
+ (*jacobian)[0] = x1 - x0 + f_xy*y + f_xz*z + f_xyz*y*z;
+ (*jacobian)[1] = x3 - x0 + f_xy*x + f_yz*z + f_xyz*x*z;
+ (*jacobian)[2] = x4 - x0 + f_yz*y + f_xz*x + f_xyz*x*y;
+
+ (*jacobian)[3] = y1 - y0 + g_xy*y + g_xz*z + g_xyz*y*z;
+ (*jacobian)[4] = y3 - y0 + g_xy*x + g_yz*z + g_xyz*x*z;
+ (*jacobian)[5] = y4 - y0 + g_yz*y + g_xz*x + g_xyz*x*y;
+
+ (*jacobian)[6] = z1 - z0 + h_xy*y + h_xz*z + h_xyz*y*z;
+ (*jacobian)[7] = z3 - z0 + h_xy*x + h_yz*z + h_xyz*x*z;
+ (*jacobian)[8] = z4 - z0 + h_yz*y + h_xz*x + h_xyz*x*y;
+} // jacobian
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryHex3D.hh (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryHex.hh)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryHex.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryHex3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryHex3D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 3-D
+ * hexahedral cell.
+ */
+
+#if !defined(pylith_topology_geometryhex3d_hh)
+#define pylith_topology_geometryhex3d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryHex3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryHex3D : public CellGeometry
+{ // GeometryHex3D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryHex3D(void);
+
+ /// Default destructor.
+ ~GeometryHex3D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryHex3D
+
+#endif // pylith_topology_geometryhex3d_hh
+
+
+// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryLine.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include <portinfo>
-
-#include "GeometryLine.hh" // implementation of class methods
-
-#include "pylith/utils/array.hh" // USES double_array
-
-#include <assert.h> // USES assert()
-
-// ----------------------------------------------------------------------
-// Default constructor.
-pylith::topology::GeometryLine::GeometryLine(void) :
- CellGeometry(1)
-{ // constructor
-} // constructor
-
-// ----------------------------------------------------------------------
-// Default destructor.
-pylith::topology::GeometryLine::~GeometryLine(void)
-{ // destructor
-} // destructor
-
-// ----------------------------------------------------------------------
-// Compute Jacobian at location in cell.
-void
-pylith::topology::GeometryLine::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
-{ // jacobian
- assert(0 != jacobian);
-
- assert(2 == vertices.size());
- assert(1 == location.size());
- assert(1 == jacobian->size());
-
- (*jacobian)[0] = vertices[1]-vertices[0];
-} // jacobian
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryLine.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-/**
- * @file pylith/topology/GeometryLine.hh
- *
- * @brief C++ implementation of cell geometry calculations for 1-D
- * line cell.
- */
-
-#if !defined(pylith_topology_geometryline_hh)
-#define pylith_topology_geometryline_hh
-
-#include "CellGeometry.hh" // ISA CellGeometry
-
-namespace pylith {
- namespace topology {
- class GeometryLine;
- } // topology
-} // pylith
-
-class pylith::topology::GeometryLine : public CellGeometry
-{ // GeometryLine
-
-// PUBLIC METHODS ///////////////////////////////////////////////////////
-public :
-
- /// Default constructor.
- GeometryLine(void);
-
- /// Default destructor.
- ~GeometryLine(void);
-
- /** Compute Jacobian at location in cell.
- *
- * @param jacobian Jacobian at location.
- * @param vertices Coordinates of vertices of cell.
- * @param location Location in reference cell at which to compute Jacobian.
- */
- void jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const;
-
-}; // GeometryLine
-
-#endif // pylith_topology_geometryline_hh
-
-
-// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryLine1D.cc (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryLine.cc)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine1D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryLine1D.hh" // implementation of class methods
+
+#include "GeometryPoint1D.hh" // USES GeometryPoint
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryLine1D::GeometryLine1D(void) :
+ CellGeometry(1, 1, 2)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryLine1D::~GeometryLine1D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryLine1D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryPoint1D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryLine1D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double x1 = vertices[1];
+
+ (*jacobian)[0] = x1 - x0;
+} // jacobian
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryLine1D.hh (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryLine.hh)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine1D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryLine1D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 1-D
+ * line cell.
+ */
+
+#if !defined(pylith_topology_geometryline1d_hh)
+#define pylith_topology_geometryline1d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryLine1D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryLine1D : public CellGeometry
+{ // GeometryLine1D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryLine1D(void);
+
+ /// Default destructor.
+ ~GeometryLine1D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryLine1D
+
+#endif // pylith_topology_geometryline1d_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,67 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryLine2D.hh" // implementation of class methods
+
+#include "GeometryPoint2D.hh" // USES GeometryPoint
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryLine2D::GeometryLine2D(void) :
+ CellGeometry(1, 2, 2)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryLine2D::~GeometryLine2D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryLine2D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryPoint2D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryLine2D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+
+ const double x1 = vertices[2];
+ const double y1 = vertices[3];
+
+ (*jacobian)[0] = x1 - x0;
+ (*jacobian)[1] = y1 - y0;
+} // jacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryLine2D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 1-D
+ * line cell in 2-D space.
+ */
+
+#if !defined(pylith_topology_geometryline2d_hh)
+#define pylith_topology_geometryline2d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryLine2D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryLine2D : public CellGeometry
+{ // GeometryLine2D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryLine2D(void);
+
+ /// Default destructor.
+ ~GeometryLine2D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryLine2D
+
+#endif // pylith_topology_geometryline2d_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryLine3D.hh" // implementation of class methods
+
+#include "GeometryPoint3D.hh" // USES GeometryPoint3D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryLine3D::GeometryLine3D(void) :
+ CellGeometry(1, 3, 2)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryLine3D::~GeometryLine3D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryLine3D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryPoint3D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryLine3D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+ const double z0 = vertices[2];
+
+ const double x1 = vertices[3];
+ const double y1 = vertices[4];
+ const double z1 = vertices[5];
+
+ (*jacobian)[0] = x1 - x0;
+ (*jacobian)[1] = y1 - y0;
+ (*jacobian)[2] = z1 - z0;
+} // jacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryLine3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryLine3D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 1-D
+ * line cell.
+ */
+
+#if !defined(pylith_topology_geometryline3d_hh)
+#define pylith_topology_geometryline3d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryLine3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryLine3D : public CellGeometry
+{ // GeometryLine3D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryLine3D(void);
+
+ /// Default destructor.
+ ~GeometryLine3D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryLine3D
+
+#endif // pylith_topology_geometryline3d_hh
+
+
+// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include <portinfo>
-
-#include "GeometryPoint.hh" // implementation of class methods
-
-#include "pylith/utils/array.hh" // USES double_array
-
-#include <assert.h> // USES assert()
-
-// ----------------------------------------------------------------------
-// Default constructor.
-pylith::topology::GeometryPoint::GeometryPoint(void) :
- CellGeometry(0)
-{ // constructor
-} // constructor
-
-// ----------------------------------------------------------------------
-// Default destructor.
-pylith::topology::GeometryPoint::~GeometryPoint(void)
-{ // destructor
-} // destructor
-
-// ----------------------------------------------------------------------
-// Compute Jacobian at location in cell.
-void
-pylith::topology::GeometryPoint::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
-{ // jacobian
- assert(0 != jacobian);
-
- assert(1 == vertices.size());
- assert(1 == location.size());
- assert(1 == jacobian->size());
-
- (*jacobian)[0] = 1.0;
-} // jacobian
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-/**
- * @file pylith/topology/GeometryPoint.hh
- *
- * @brief C++ implementation of cell geometry calculations for 0-D
- * point cell.
- */
-
-#if !defined(pylith_topology_geometrypoint_hh)
-#define pylith_topology_geometrypoint_hh
-
-#include "CellGeometry.hh" // ISA CellGeometry
-
-namespace pylith {
- namespace topology {
- class GeometryPoint;
- } // topology
-} // pylith
-
-class pylith::topology::GeometryPoint : public CellGeometry
-{ // GeometryPoint
-
-// PUBLIC METHODS ///////////////////////////////////////////////////////
-public :
-
- /// Default constructor.
- GeometryPoint(void);
-
- /// Default destructor.
- ~GeometryPoint(void);
-
- /** Compute Jacobian at location in cell.
- *
- * @param jacobian Jacobian at location.
- * @param vertices Coordinates of vertices of cell.
- * @param location Location in reference cell at which to compute Jacobian.
- */
- void jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const;
-
-}; // GeometryPoint
-
-#endif // pylith_topology_geometrypoint_hh
-
-
-// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint1D.cc (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.cc)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint1D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryPoint1D.hh" // implementation of class methods
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryPoint1D::GeometryPoint1D(void) :
+ CellGeometry(0, 1, 1)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryPoint1D::~GeometryPoint1D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryPoint1D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return 0;
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryPoint1D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(1 == jacobian->size());
+
+ (*jacobian)[0] = 1.0;
+} // jacobian
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint1D.hh (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.hh)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint1D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryPoint1D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 0-D
+ * point cell.
+ */
+
+#if !defined(pylith_topology_geometrypoint_hh)
+#define pylith_topology_geometrypoint_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryPoint1D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryPoint1D : public CellGeometry
+{ // GeometryPoint1D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryPoint1D(void);
+
+ /// Default destructor.
+ ~GeometryPoint1D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryPoint1D
+
+#endif // pylith_topology_geometrypoint_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryPoint2D.hh" // implementation of class methods
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryPoint2D::GeometryPoint2D(void) :
+ CellGeometry(0, 2, 1)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryPoint2D::~GeometryPoint2D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryPoint2D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return 0;
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryPoint2D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(1 == jacobian->size());
+
+ (*jacobian)[0] = 1.0;
+} // jacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryPoint2D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 0-D
+ * point cell.
+ */
+
+#if !defined(pylith_topology_geometrypoint_hh)
+#define pylith_topology_geometrypoint_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryPoint2D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryPoint2D : public CellGeometry
+{ // GeometryPoint2D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryPoint2D(void);
+
+ /// Default destructor.
+ ~GeometryPoint2D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryPoint2D
+
+#endif // pylith_topology_geometrypoint_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryPoint3D.hh" // implementation of class methods
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryPoint3D::GeometryPoint3D(void) :
+ CellGeometry(0, 3, 1)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryPoint3D::~GeometryPoint3D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryPoint3D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return 0;
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryPoint3D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(1 == jacobian->size());
+
+ (*jacobian)[0] = 1.0;
+} // jacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryPoint3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryPoint3D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 0-D
+ * point cell.
+ */
+
+#if !defined(pylith_topology_geometrypoint_hh)
+#define pylith_topology_geometrypoint_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryPoint3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryPoint3D : public CellGeometry
+{ // GeometryPoint3D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryPoint3D(void);
+
+ /// Default destructor.
+ ~GeometryPoint3D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryPoint3D
+
+#endif // pylith_topology_geometrypoint_hh
+
+
+// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,72 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include <portinfo>
-
-#include "GeometryQuad.hh" // implementation of class methods
-
-#include "pylith/utils/array.hh" // USES double_array
-
-#include <assert.h> // USES assert()
-
-// ----------------------------------------------------------------------
-// Default constructor.
-pylith::topology::GeometryQuad::GeometryQuad(void) :
- CellGeometry(2)
-{ // constructor
-} // constructor
-
-// ----------------------------------------------------------------------
-// Default destructor.
-pylith::topology::GeometryQuad::~GeometryQuad(void)
-{ // destructor
-} // destructor
-
-// ----------------------------------------------------------------------
-// Compute Jacobian at location in cell.
-void
-pylith::topology::GeometryQuad::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
-{ // jacobian
- assert(0 != jacobian);
-
- assert(2*4 == vertices.size());
- assert(2 == location.size());
- assert(4 == jacobian->size());
-
- const double x0 = vertices[0];
- const double y0 = vertices[1];
-
- const double x1 = vertices[2];
- const double y1 = vertices[3];
-
- const double x2 = vertices[4];
- const double y2 = vertices[5];
-
- const double x3 = vertices[6];
- const double y3 = vertices[7];
-
- const double x = location[0];
- const double y = location[1];
-
- const double f_xy = x2 - x1 - x3 + x0;
- const double g_xy = y2 - y1 - y3 + y0;
-
- (*jacobian)[0] = x1 - x0 + f_xy*y;
- (*jacobian)[1] = x3 - x0 + f_xy*x;
- (*jacobian)[2] = y1 - y0 + g_xy*y;
- (*jacobian)[3] = y3 - y0 + g_xy*x;
-} // jacobian
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-/**
- * @file pylith/topology/GeometryQuad.hh
- *
- * @brief C++ implementation of cell geometry calculations for 2-D
- * quadrilateral cell.
- */
-
-#if !defined(pylith_topology_geometryquad_hh)
-#define pylith_topology_geometryquad_hh
-
-#include "CellGeometry.hh" // ISA CellGeometry
-
-namespace pylith {
- namespace topology {
- class GeometryQuad;
- } // topology
-} // pylith
-
-class pylith::topology::GeometryQuad : public CellGeometry
-{ // GeometryQuad
-
-// PUBLIC METHODS ///////////////////////////////////////////////////////
-public :
-
- /// Default constructor.
- GeometryQuad(void);
-
- /// Default destructor.
- ~GeometryQuad(void);
-
- /** Compute Jacobian at location in cell.
- *
- * @param jacobian Jacobian at location.
- * @param vertices Coordinates of vertices of cell.
- * @param location Location in reference cell at which to compute Jacobian.
- */
- void jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const;
-
-}; // GeometryQuad
-
-#endif // pylith_topology_geometryquad_hh
-
-
-// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryQuad2D.hh" // implementation of class methods
+
+#include "GeometryLine2D.hh" // USES GeometryLine2D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryQuad2D::GeometryQuad2D(void) :
+ CellGeometry(2, 2, 4)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryQuad2D::~GeometryQuad2D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryQuad2D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryLine2D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryQuad2D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(cellDim() == location.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+
+ const double x1 = vertices[2];
+ const double y1 = vertices[3];
+
+ const double x2 = vertices[4];
+ const double y2 = vertices[5];
+
+ const double x3 = vertices[6];
+ const double y3 = vertices[7];
+
+ const double x = location[0];
+ const double y = location[1];
+ assert(0 <= x && x <= 1.0);
+ assert(0 <= y && y <= 1.0);
+
+ const double f_xy = x2 - x1 - x3 + x0;
+ const double g_xy = y2 - y1 - y3 + y0;
+
+ (*jacobian)[0] = x1 - x0 + f_xy*y;
+ (*jacobian)[1] = x3 - x0 + f_xy*x;
+ (*jacobian)[2] = y1 - y0 + g_xy*y;
+ (*jacobian)[3] = y3 - y0 + g_xy*x;
+} // jacobian
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.hh (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.hh)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryQuad2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryQuad2D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 2-D
+ * quadrilateral cell.
+ */
+
+#if !defined(pylith_topology_geometryquad2d_hh)
+#define pylith_topology_geometryquad2d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryQuad2D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryQuad2D : public CellGeometry
+{ // GeometryQuad2D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryQuad2D(void);
+
+ /// Default destructor.
+ ~GeometryQuad2D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryQuad2D
+
+#endif // pylith_topology_geometryquad2d_hh
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.cc (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.cc)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryQuad.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,93 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryQuad3D.hh" // implementation of class methods
+
+#include "GeometryLine3D.hh" // USES GeometryLine3D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryQuad3D::GeometryQuad3D(void) :
+ CellGeometry(2, 2, 4)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryQuad3D::~GeometryQuad3D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryQuad3D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryLine3D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryQuad3D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(cellDim() == location.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+ const double z0 = vertices[2];
+
+ const double x1 = vertices[3];
+ const double y1 = vertices[4];
+ const double z1 = vertices[5];
+
+ const double x2 = vertices[6];
+ const double y2 = vertices[7];
+ const double z2 = vertices[8];
+
+ const double x3 = vertices[9];
+ const double y3 = vertices[10];
+ const double z3 = vertices[11];
+
+ const double x = location[0];
+ const double y = location[1];
+ assert(0 <= x && x <= 1.0);
+ assert(0 <= y && y <= 1.0);
+
+ const double f_xy = x2 - x1 - x3 + x0;
+ const double g_xy = y2 - y1 - y3 + y0;
+ const double h_xy = z2 - z1 - z3 + z0;
+
+ (*jacobian)[0] = x1 - x0 + f_xy*y;
+ (*jacobian)[1] = x3 - x0 + f_xy*x;
+
+ (*jacobian)[2] = y1 - y0 + g_xy*y;
+ (*jacobian)[3] = y3 - y0 + g_xy*x;
+
+ (*jacobian)[4] = z1 - z0 + h_xy*y;
+ (*jacobian)[5] = z3 - z0 + h_xy*x;
+} // jacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryQuad3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryQuad3D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 2-D
+ * quadrilateral cell in 3-D.
+ */
+
+#if !defined(pylith_topology_geometryquad3d_hh)
+#define pylith_topology_geometryquad3d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryQuad3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryQuad3D : public CellGeometry
+{ // GeometryQuad3D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryQuad3D(void);
+
+ /// Default destructor.
+ ~GeometryQuad3D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryQuad3D
+
+#endif // pylith_topology_geometryquad3d_hh
+
+
+// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryTet.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTet.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTet.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,75 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include <portinfo>
-
-#include "GeometryTet.hh" // implementation of class methods
-
-#include "pylith/utils/array.hh" // USES double_array
-
-#include <assert.h> // USES assert()
-
-// ----------------------------------------------------------------------
-// Default constructor.
-pylith::topology::GeometryTet::GeometryTet(void) :
- CellGeometry(3)
-{ // constructor
-} // constructor
-
-// ----------------------------------------------------------------------
-// Default destructor.
-pylith::topology::GeometryTet::~GeometryTet(void)
-{ // destructor
-} // destructor
-
-// ----------------------------------------------------------------------
-// Compute Jacobian at location in cell.
-void
-pylith::topology::GeometryTet::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
-{ // jacobian
- assert(0 != jacobian);
-
- assert(12 == vertices.size());
- assert(3 == location.size());
- assert(9 == jacobian->size());
-
- const double x0 = vertices[0];
- const double y0 = vertices[1];
- const double z0 = vertices[2];
-
- const double x1 = vertices[3];
- const double y1 = vertices[4];
- const double z1 = vertices[5];
-
- const double x2 = vertices[6];
- const double y2 = vertices[7];
- const double z2 = vertices[8];
-
- const double x3 = vertices[9];
- const double y3 = vertices[10];
- const double z3 = vertices[11];
-
- (*jacobian)[0] = x1 - x0;
- (*jacobian)[1] = x2 - x0;
- (*jacobian)[2] = x3 - x0;
- (*jacobian)[3] = y1 - y0;
- (*jacobian)[4] = y2 - y0;
- (*jacobian)[5] = y3 - y0;
- (*jacobian)[6] = z1 - z0;
- (*jacobian)[7] = z2 - z0;
- (*jacobian)[8] = z3 - z0;
-} // jacobian
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryTet.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTet.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTet.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-/**
- * @file pylith/topology/GeometryTet.hh
- *
- * @brief C++ implementation of cell geometry calculations for 3-D
- * tetrahedral cell.
- */
-
-#if !defined(pylith_topology_geometrytet_hh)
-#define pylith_topology_geometrytet_hh
-
-#include "CellGeometry.hh" // ISA CellGeometry
-
-namespace pylith {
- namespace topology {
- class GeometryTet;
- } // topology
-} // pylith
-
-class pylith::topology::GeometryTet : public CellGeometry
-{ // GeometryTet
-
-// PUBLIC METHODS ///////////////////////////////////////////////////////
-public :
-
- /// Default constructor.
- GeometryTet(void);
-
- /// Default destructor.
- ~GeometryTet(void);
-
- /** Compute Jacobian at location in cell.
- *
- * @param jacobian Jacobian at location.
- * @param vertices Coordinates of vertices of cell.
- * @param location Location in reference cell at which to compute Jacobian.
- */
- void jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const;
-
-}; // GeometryTet
-
-#endif // pylith_topology_geometrytet_hh
-
-
-// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryTet3D.cc (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryTet.cc)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTet.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTet3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryTet3D.hh" // implementation of class methods
+
+#include "GeometryTri3D.hh" // USES GeometryTri3D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryTet3D::GeometryTet3D(void) :
+ CellGeometry(3, 3, 4)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryTet3D::~GeometryTet3D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryTet3D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryTri3D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryTet3D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+ const double z0 = vertices[2];
+
+ const double x1 = vertices[3];
+ const double y1 = vertices[4];
+ const double z1 = vertices[5];
+
+ const double x2 = vertices[6];
+ const double y2 = vertices[7];
+ const double z2 = vertices[8];
+
+ const double x3 = vertices[9];
+ const double y3 = vertices[10];
+ const double z3 = vertices[11];
+
+ (*jacobian)[0] = x1 - x0;
+ (*jacobian)[1] = x2 - x0;
+ (*jacobian)[2] = x3 - x0;
+ (*jacobian)[3] = y1 - y0;
+ (*jacobian)[4] = y2 - y0;
+ (*jacobian)[5] = y3 - y0;
+ (*jacobian)[6] = z1 - z0;
+ (*jacobian)[7] = z2 - z0;
+ (*jacobian)[8] = z3 - z0;
+} // jacobian
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryTet3D.hh (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryTet.hh)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTet.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTet3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryTet3D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 3-D
+ * tetrahedral cell.
+ */
+
+#if !defined(pylith_topology_geometrytet3d_hh)
+#define pylith_topology_geometrytet3d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryTet3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryTet3D : public CellGeometry
+{ // GeometryTet3D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryTet3D(void);
+
+ /// Default destructor.
+ ~GeometryTet3D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryTet3D
+
+#endif // pylith_topology_geometrytet3d_hh
+
+
+// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryTri.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTri.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTri.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-#include <portinfo>
-
-#include "GeometryTri.hh" // implementation of class methods
-
-#include "pylith/utils/array.hh" // USES double_array
-
-#include <assert.h> // USES assert()
-
-// ----------------------------------------------------------------------
-// Default constructor.
-pylith::topology::GeometryTri::GeometryTri(void) :
- CellGeometry(2)
-{ // constructor
-} // constructor
-
-// ----------------------------------------------------------------------
-// Default destructor.
-pylith::topology::GeometryTri::~GeometryTri(void)
-{ // destructor
-} // destructor
-
-// ----------------------------------------------------------------------
-// Compute Jacobian at location in cell.
-void
-pylith::topology::GeometryTri::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
-{ // jacobian
- assert(0 != jacobian);
-
- assert(2*3 == vertices.size());
- assert(2 == location.size());
- assert(4 == jacobian->size());
-
- const double x0 = vertices[0];
- const double y0 = vertices[1];
-
- const double x1 = vertices[2];
- const double y1 = vertices[3];
-
- const double x2 = vertices[4];
- const double y2 = vertices[5];
-
- (*jacobian)[0] = x1 - x0;
- (*jacobian)[1] = x2 - x0;
- (*jacobian)[2] = y1 - y0;
- (*jacobian)[3] = y2 - y0;
-} // jacobian
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/libsrc/topology/GeometryTri.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTri.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTri.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//
-// ======================================================================
-//
-// Brad T. Aagaard
-// U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ======================================================================
-//
-
-/**
- * @file pylith/topology/GeometryTri.hh
- *
- * @brief C++ implementation of cell geometry calculations for 2-D
- * triangular cell.
- */
-
-#if !defined(pylith_topology_geometrytri_hh)
-#define pylith_topology_geometrytri_hh
-
-#include "CellGeometry.hh" // ISA CellGeometry
-
-namespace pylith {
- namespace topology {
- class GeometryTri;
- } // topology
-} // pylith
-
-class pylith::topology::GeometryTri : public CellGeometry
-{ // GeometryTri
-
-// PUBLIC METHODS ///////////////////////////////////////////////////////
-public :
-
- /// Default constructor.
- GeometryTri(void);
-
- /// Default destructor.
- ~GeometryTri(void);
-
- /** Compute Jacobian at location in cell.
- *
- * @param jacobian Jacobian at location.
- * @param vertices Coordinates of vertices of cell.
- * @param location Location in reference cell at which to compute Jacobian.
- */
- void jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const;
-
-}; // GeometryTri
-
-#endif // pylith_topology_geometrytri_hh
-
-
-// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryTri2D.cc (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryTri.cc)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTri.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTri2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,72 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryTri2D.hh" // implementation of class methods
+
+#include "GeometryLine2D.hh" // USES GeometryLine2D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryTri2D::GeometryTri2D(void) :
+ CellGeometry(2, 2, 3)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryTri2D::~GeometryTri2D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryTri2D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryLine2D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryTri2D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+
+ const double x1 = vertices[2];
+ const double y1 = vertices[3];
+
+ const double x2 = vertices[4];
+ const double y2 = vertices[5];
+
+ (*jacobian)[0] = x1 - x0;
+ (*jacobian)[1] = x2 - x0;
+ (*jacobian)[2] = y1 - y0;
+ (*jacobian)[3] = y2 - y0;
+} // jacobian
+
+
+// End of file
Copied: short/3D/PyLith/trunk/libsrc/topology/GeometryTri2D.hh (from rev 6870, short/3D/PyLith/trunk/libsrc/topology/GeometryTri.hh)
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTri.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTri2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryTri2D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 2-D
+ * triangular cell.
+ */
+
+#if !defined(pylith_topology_geometrytri2d_hh)
+#define pylith_topology_geometrytri2d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryTri2D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryTri2D : public CellGeometry
+{ // GeometryTri2D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryTri2D(void);
+
+ /// Default destructor.
+ ~GeometryTri2D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryTri2D
+
+#endif // pylith_topology_geometrytri2d_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,79 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include <portinfo>
+
+#include "GeometryTri3D.hh" // implementation of class methods
+
+#include "GeometryLine3D.hh" // USES GeometryLine3D
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include <assert.h> // USES assert()
+
+// ----------------------------------------------------------------------
+// Default constructor.
+pylith::topology::GeometryTri3D::GeometryTri3D(void) :
+ CellGeometry(2, 2, 3)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Default destructor.
+pylith::topology::GeometryTri3D::~GeometryTri3D(void)
+{ // destructor
+} // destructor
+
+// ----------------------------------------------------------------------
+// Get cell geometry for lower dimension cell.
+pylith::topology::CellGeometry*
+pylith::topology::GeometryTri3D::geometryLowerDim(void) const
+{ // geometryLowerDim
+ return new GeometryLine3D();
+} // geometryLowerDim
+
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::topology::GeometryTri3D::jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const
+{ // jacobian
+ assert(0 != jacobian);
+
+ assert(numCorners()*spaceDim() == vertices.size());
+ assert(spaceDim()*cellDim() == jacobian->size());
+
+ const double x0 = vertices[0];
+ const double y0 = vertices[1];
+ const double z0 = vertices[2];
+
+ const double x1 = vertices[3];
+ const double y1 = vertices[4];
+ const double z1 = vertices[5];
+
+ const double x2 = vertices[6];
+ const double y2 = vertices[7];
+ const double z2 = vertices[8];
+
+ (*jacobian)[0] = x1 - x0;
+ (*jacobian)[1] = x2 - x0;
+
+ (*jacobian)[2] = y1 - y0;
+ (*jacobian)[3] = y2 - y0;
+
+ (*jacobian)[4] = z1 - z0;
+ (*jacobian)[5] = z2 - z0;
+} // jacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/GeometryTri3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/**
+ * @file pylith/topology/GeometryTri3D.hh
+ *
+ * @brief C++ implementation of cell geometry calculations for 2-D
+ * triangular cell.
+ */
+
+#if !defined(pylith_topology_geometrytri3d_hh)
+#define pylith_topology_geometrytri3d_hh
+
+#include "CellGeometry.hh" // ISA CellGeometry
+
+namespace pylith {
+ namespace topology {
+ class GeometryTri3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeometryTri3D : public CellGeometry
+{ // GeometryTri3D
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Default constructor.
+ GeometryTri3D(void);
+
+ /// Default destructor.
+ ~GeometryTri3D(void);
+
+ /** Get cell geometry for lower dimension cell.
+ *
+ * @returns Pointer to cell geometry object corresponding to next
+ * lower dimension, NULL if there is no lower dimension object.
+ */
+ CellGeometry* geometryLowerDim(void) const;
+
+ /** Compute Jacobian at location in cell.
+ *
+ * @param jacobian Jacobian at location.
+ * @param vertices Coordinates of vertices of cell.
+ * @param location Location in reference cell at which to compute Jacobian.
+ */
+ void jacobian(double_array* jacobian,
+ const double_array& vertices,
+ const double_array& location) const;
+
+}; // GeometryTri3D
+
+#endif // pylith_topology_geometrytri3d_hh
+
+
+// End of file
Modified: short/3D/PyLith/trunk/libsrc/topology/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/Makefile.am 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/libsrc/topology/Makefile.am 2007-05-13 04:32:31 UTC (rev 6871)
@@ -16,12 +16,18 @@
subpkginclude_HEADERS = \
CellGeometry.hh \
CellGeometry.icc \
- GeometryPoint.hh \
- GeometryLine.hh \
- GeometryTri.hh \
- GeometryTet.hh \
- GeometryQuad.hh \
- GeometryHex.hh
+ GeometryPoint1D.hh \
+ GeometryPoint2D.hh \
+ GeometryPoint3D.hh \
+ GeometryLine1D.hh \
+ GeometryLine2D.hh \
+ GeometryLine3D.hh \
+ GeometryTri2D.hh \
+ GeometryTri3D.hh \
+ GeometryTet3D.hh \
+ GeometryQuad2D.hh \
+ GeometryQuad3D.hh \
+ GeometryHex3D.hh
noinst_HEADERS =
Modified: short/3D/PyLith/trunk/unittests/libtests/topology/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/Makefile.am 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/Makefile.am 2007-05-13 04:32:31 UTC (rev 6871)
@@ -19,14 +19,42 @@
# Primary source files
testtopology_SOURCES = \
+ TestCellGeometry.cc \
+ TestGeometryPoint1D.cc \
+ TestGeometryPoint2D.cc \
+ TestGeometryPoint3D.cc \
+ TestGeometryLine1D.cc \
+ TestGeometryLine2D.cc \
+ TestGeometryLine3D.cc \
test_topology.cc
noinst_HEADERS =
+ TestCellGeometry.hh \
+ TestGeometryPoint1D.hh \
+ TestGeometryPoint2D.hh \
+ TestGeometryPoint3D.hh \
+ TestGeometryLine1D.hh \
+ TestGeometryLine2D.hh \
+ TestGeometryLine3D.hh
# Source files associated with testing data
-testtopology_SOURCES +=
+testtopology_SOURCES += \
+ data/CellGeomData.cc \
+ data/GeomDataPoint1D.cc \
+ data/GeomDataPoint2D.cc \
+ data/GeomDataPoint3D.cc \
+ data/GeomDataLine1D.cc \
+ data/GeomDataLine2D.cc \
+ data/GeomDataLine3D.cc
noinst_HEADERS +=
+ data/CellGeomData.hh \
+ data/GeometryDataPoint1D.hh \
+ data/GeometryDataPoint2D.hh \
+ data/GeometryDataPoint3D.hh \
+ data/GeometryDataLine1D.hh \
+ data/GeometryDataLine2D.hh \
+ data/GeometryDataLine3D.hh
testtopology_LDFLAGS = $(PETSC_LIB) $(PYTHON_BLDLIBRARY)
@@ -38,6 +66,10 @@
-lcppunit -ldl \
$(top_builddir)/libsrc/libpylith.la
+if ENABLE_CUBIT
+ testtopology_LDADD += -lnetcdf_c++ -lnetcdf
+endif
+
noinst_tmp =
CLEANFILES = $(noinst_tmp)
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,86 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestCellGeometry.hh" // Implementation of class methods
+
+#include "pylith/topology/CellGeometry.hh" // USES CellGeometry
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/CellGeomData.hh" // USES CellGeomData
+
+// ----------------------------------------------------------------------
+// Test cellDim().
+void
+pylith::topology::TestCellGeometry::_testCellDim(const CellGeometry& geometry,
+ const CellGeomData& data)
+{ // _testCellDim
+ CPPUNIT_ASSERT_EQUAL(data.cellDim, geometry.cellDim());
+} // _testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim().
+void
+pylith::topology::TestCellGeometry::_testSpaceDim(const CellGeometry& geometry,
+ const CellGeomData& data)
+{ // _testSpaceDim
+ CPPUNIT_ASSERT_EQUAL(data.spaceDim, geometry.spaceDim());
+} // _testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners().
+void
+pylith::topology::TestCellGeometry::_testNumCorners(const CellGeometry& geometry,
+ const CellGeomData& data)
+{ // _testNumCorners
+ CPPUNIT_ASSERT_EQUAL(data.numCorners, geometry.numCorners());
+} // _testNumConers
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestCellGeometry::_testJacobian(const CellGeometry* geometry,
+ const CellGeomData& data)
+{ // _testJacobian
+ const int cellDim = data.cellDim;
+ const int spaceDim = data.spaceDim;
+ const int numCorners = data.numCorners;
+
+ const int numLocs = data.numLocs;
+
+ CPPUNIT_ASSERT_EQUAL(cellDim, geometry->cellDim());
+ CPPUNIT_ASSERT_EQUAL(spaceDim, geometry->spaceDim());
+ CPPUNIT_ASSERT_EQUAL(numCorners, geometry->numCorners());
+
+ double_array jacobian(cellDim*spaceDim);
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ double_array vertices(data.vertices, numCorners*spaceDim);
+ double_array location(&data.locations[iLoc*cellDim], cellDim);
+
+ geometry->jacobian(&jacobian, vertices, location);
+
+ const int size = jacobian.size();
+ const int index = iLoc*cellDim*spaceDim;
+ const double tolerance = 1.0e-06;
+ for (int i=0; i < size; ++i)
+ if (data.jacobian[index+i] < 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(data.jacobian[index+i], jacobian[i],
+ tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobian[i]/data.jacobian[index+i],
+ tolerance);
+ } // for
+} // _testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestCellGeometry.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,81 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestCellGeometry.hh
+ *
+ * @brief C++ TestCellGeometry object
+ *
+ * C++ unit testing for CellGeometry.
+ */
+
+#if !defined(pylith_topology_testcellgeometry_hh)
+#define pylith_topology_testcellgeometry_hh
+
+#include <cppunit/extensions/HelperMacros.h>
+
+#include "pylith/utils/sievefwd.hh" // USES PETSc Mesh
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestCellGeometry;
+ class CellGeometry;
+
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for TestCellGeometry
+class pylith::topology::TestCellGeometry : public CppUnit::TestFixture
+{ // class TestCellGeometry
+
+// PROTECTED METHODS ////////////////////////////////////////////////////
+protected :
+
+ /** Test cellDim().
+ *
+ * @param geometry CellGeometry object.
+ * @param data Geometry data.
+ */
+ void _testCellDim(const CellGeometry& geometry,
+ const CellGeomData& data);
+
+ /** Test spaceDim().
+ *
+ * @param geometry CellGeometry object.
+ * @param data Geometry data.
+ */
+ void _testSpaceDim(const CellGeometry& geometry,
+ const CellGeomData& data);
+
+ /** Test numCorners().
+ *
+ * @param geometry CellGeometry object.
+ * @param data Geometry data.
+ */
+ void _testNumCorners(const CellGeometry& geometry,
+ const CellGeomData& data);
+
+ /** Test jacobian().
+ *
+ * @param geometry CellGeometry object.
+ * @param data Geometry data.
+ */
+ void _testJacobian(const CellGeometry* geometry,
+ const CellGeomData& data);
+
+}; // class TestCellGeometry
+
+#endif // pylith_topology_testcellgeometry_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestGeometryLine1D.hh" // Implementation of class methods
+
+#include "pylith/topology/GeometryLine1D.hh"
+#include "pylith/topology/GeometryPoint1D.hh"
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/GeomDataLine1D.hh"
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::topology::TestGeometryLine1D );
+
+// ----------------------------------------------------------------------
+// Test constructor
+void
+pylith::topology::TestGeometryLine1D::testConstructor(void)
+{ // testConstructor
+ GeometryLine1D geometry;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test cellDim()
+void
+pylith::topology::TestGeometryLine1D::testCellDim(void)
+{ // testCellDim
+ GeometryLine1D geometry;
+ GeomDataLine1D data;
+ _testCellDim(geometry, data);
+} // testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim()
+void
+pylith::topology::TestGeometryLine1D::testSpaceDim(void)
+{ // testSpaceDim
+ GeometryLine1D geometry;
+ GeomDataLine1D data;
+ _testSpaceDim(geometry, data);
+} // testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners()
+void
+pylith::topology::TestGeometryLine1D::testNumCorners(void)
+{ // testNumCorners
+ GeometryLine1D geometry;
+ GeomDataLine1D data;
+ _testNumCorners(geometry, data);
+} // testNumCorners
+
+// ----------------------------------------------------------------------
+// Test geometryLowerDim().
+void
+pylith::topology::TestGeometryLine1D::testGeomLowerDim(void)
+{ // testGeomLowerDim
+ GeometryLine1D geometry;
+ CellGeometry* geometryLD = geometry.geometryLowerDim();
+ GeometryPoint1D* geometryPt = dynamic_cast<GeometryPoint1D*>(geometryLD);
+ CPPUNIT_ASSERT(0 != geometryLD);
+ delete geometryLD; geometryLD = 0;
+} // testGeomLowerDim
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestGeometryLine1D::testJacobian(void)
+{ // testJacobian
+ GeometryLine1D geometry;
+ GeomDataLine1D data;
+
+ _testJacobian(&geometry, data);
+} // testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine1D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestGeometryLine1D.hh
+ *
+ * @brief C++ TestGeometryLine1D object
+ *
+ * C++ unit testing for TopologyAscii.
+ */
+
+#if !defined(pylith_topology_testgeometryline1d_hh)
+#define pylith_topology_testgeometryline1d_hh
+
+#include "TestCellGeometry.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestGeometryLine1D;
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for Quadrature1D
+class pylith::topology::TestGeometryLine1D : public TestCellGeometry
+{ // class TestGeometryLine1D
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestGeometryLine1D );
+ CPPUNIT_TEST( testConstructor );
+ CPPUNIT_TEST( testCellDim );
+ CPPUNIT_TEST( testSpaceDim );
+ CPPUNIT_TEST( testNumCorners );
+ CPPUNIT_TEST( testGeomLowerDim );
+ CPPUNIT_TEST( testJacobian );
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Test constructor
+ void testConstructor(void);
+
+ /// Test cellDim()
+ void testCellDim(void);
+
+ /// Test spaceDim()
+ void testSpaceDim(void);
+
+ /// Test numCorners()
+ void testNumCorners(void);
+
+ /// Test geometryLowerDim().
+ void testGeomLowerDim(void);
+
+ /// Test jacobian().
+ void testJacobian(void);
+
+}; // class TestGeometryLine1D
+
+#endif // pylith_topology_testgeometryline1d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestGeometryLine2D.hh" // Implementation of class methods
+
+#include "pylith/topology/GeometryLine2D.hh"
+#include "pylith/topology/GeometryPoint2D.hh"
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/GeomDataLine2D.hh"
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::topology::TestGeometryLine2D );
+
+// ----------------------------------------------------------------------
+// Test constructor
+void
+pylith::topology::TestGeometryLine2D::testConstructor(void)
+{ // testConstructor
+ GeometryLine2D geometry;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test cellDim()
+void
+pylith::topology::TestGeometryLine2D::testCellDim(void)
+{ // testCellDim
+ GeometryLine2D geometry;
+ GeomDataLine2D data;
+ _testCellDim(geometry, data);
+} // testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim()
+void
+pylith::topology::TestGeometryLine2D::testSpaceDim(void)
+{ // testSpaceDim
+ GeometryLine2D geometry;
+ GeomDataLine2D data;
+ _testSpaceDim(geometry, data);
+} // testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners()
+void
+pylith::topology::TestGeometryLine2D::testNumCorners(void)
+{ // testNumCorners
+ GeometryLine2D geometry;
+ GeomDataLine2D data;
+ _testNumCorners(geometry, data);
+} // testNumCorners
+
+// ----------------------------------------------------------------------
+// Test geometryLowerDim().
+void
+pylith::topology::TestGeometryLine2D::testGeomLowerDim(void)
+{ // testGeomLowerDim
+ GeometryLine2D geometry;
+ CellGeometry* geometryLD = geometry.geometryLowerDim();
+ GeometryPoint2D* geometryPt = dynamic_cast<GeometryPoint2D*>(geometryLD);
+ CPPUNIT_ASSERT(0 != geometryLD);
+ delete geometryLD; geometryLD = 0;
+} // testGeomLowerDim
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestGeometryLine2D::testJacobian(void)
+{ // testJacobian
+ GeometryLine2D geometry;
+ GeomDataLine2D data;
+
+ _testJacobian(&geometry, data);
+} // testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestGeometryLine2D.hh
+ *
+ * @brief C++ TestGeometryLine2D object
+ *
+ * C++ unit testing for TopologyAscii.
+ */
+
+#if !defined(pylith_topology_testgeometryline2d_hh)
+#define pylith_topology_testgeometryline2d_hh
+
+#include "TestCellGeometry.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestGeometryLine2D;
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for Quadrature2D
+class pylith::topology::TestGeometryLine2D : public TestCellGeometry
+{ // class TestGeometryLine2D
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestGeometryLine2D );
+ CPPUNIT_TEST( testConstructor );
+ CPPUNIT_TEST( testCellDim );
+ CPPUNIT_TEST( testSpaceDim );
+ CPPUNIT_TEST( testNumCorners );
+ CPPUNIT_TEST( testGeomLowerDim );
+ CPPUNIT_TEST( testJacobian );
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Test constructor
+ void testConstructor(void);
+
+ /// Test cellDim()
+ void testCellDim(void);
+
+ /// Test spaceDim()
+ void testSpaceDim(void);
+
+ /// Test numCorners()
+ void testNumCorners(void);
+
+ /// Test geometryLowerDim().
+ void testGeomLowerDim(void);
+
+ /// Test jacobian().
+ void testJacobian(void);
+
+}; // class TestGeometryLine2D
+
+#endif // pylith_topology_testgeometryline2d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestGeometryLine3D.hh" // Implementation of class methods
+
+#include "pylith/topology/GeometryLine3D.hh"
+#include "pylith/topology/GeometryPoint3D.hh"
+
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/GeomDataLine3D.hh"
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::topology::TestGeometryLine3D );
+
+// ----------------------------------------------------------------------
+// Test constructor
+void
+pylith::topology::TestGeometryLine3D::testConstructor(void)
+{ // testConstructor
+ GeometryLine3D geometry;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test cellDim()
+void
+pylith::topology::TestGeometryLine3D::testCellDim(void)
+{ // testCellDim
+ GeometryLine3D geometry;
+ GeomDataLine3D data;
+ _testCellDim(geometry, data);
+} // testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim()
+void
+pylith::topology::TestGeometryLine3D::testSpaceDim(void)
+{ // testSpaceDim
+ GeometryLine3D geometry;
+ GeomDataLine3D data;
+ _testSpaceDim(geometry, data);
+} // testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners()
+void
+pylith::topology::TestGeometryLine3D::testNumCorners(void)
+{ // testNumCorners
+ GeometryLine3D geometry;
+ GeomDataLine3D data;
+ _testNumCorners(geometry, data);
+} // testNumCorners
+
+// ----------------------------------------------------------------------
+// Test geometryLowerDim().
+void
+pylith::topology::TestGeometryLine3D::testGeomLowerDim(void)
+{ // testGeomLowerDim
+ GeometryLine3D geometry;
+ CellGeometry* geometryLD = geometry.geometryLowerDim();
+ GeometryPoint3D* geometryPt = dynamic_cast<GeometryPoint3D*>(geometryLD);
+ CPPUNIT_ASSERT(0 != geometryLD);
+ delete geometryLD; geometryLD = 0;
+} // testGeomLowerDim
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestGeometryLine3D::testJacobian(void)
+{ // testJacobian
+ GeometryLine3D geometry;
+ GeomDataLine3D data;
+
+ _testJacobian(&geometry, data);
+} // testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryLine3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestGeometryLine3D.hh
+ *
+ * @brief C++ TestGeometryLine3D object
+ *
+ * C++ unit testing for TopologyAscii.
+ */
+
+#if !defined(pylith_topology_testgeometryline3d_hh)
+#define pylith_topology_testgeometryline3d_hh
+
+#include "TestCellGeometry.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestGeometryLine3D;
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for Quadrature3D
+class pylith::topology::TestGeometryLine3D : public TestCellGeometry
+{ // class TestGeometryLine3D
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestGeometryLine3D );
+ CPPUNIT_TEST( testConstructor );
+ CPPUNIT_TEST( testCellDim );
+ CPPUNIT_TEST( testSpaceDim );
+ CPPUNIT_TEST( testNumCorners );
+ CPPUNIT_TEST( testGeomLowerDim );
+ CPPUNIT_TEST( testJacobian );
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Test constructor
+ void testConstructor(void);
+
+ /// Test cellDim()
+ void testCellDim(void);
+
+ /// Test spaceDim()
+ void testSpaceDim(void);
+
+ /// Test numCorners()
+ void testNumCorners(void);
+
+ /// Test geometryLowerDim().
+ void testGeomLowerDim(void);
+
+ /// Test jacobian().
+ void testJacobian(void);
+
+}; // class TestGeometryLine3D
+
+#endif // pylith_topology_testgeometryline3d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestGeometryPoint1D.hh" // Implementation of class methods
+
+#include "pylith/topology/GeometryPoint1D.hh"
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/GeomDataPoint1D.hh"
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::topology::TestGeometryPoint1D );
+
+// ----------------------------------------------------------------------
+// Test constructor
+void
+pylith::topology::TestGeometryPoint1D::testConstructor(void)
+{ // testConstructor
+ GeometryPoint1D geometry;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test cellDim()
+void
+pylith::topology::TestGeometryPoint1D::testCellDim(void)
+{ // testCellDim
+ GeometryPoint1D geometry;
+ GeomDataPoint1D data;
+ _testCellDim(geometry, data);
+} // testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim()
+void
+pylith::topology::TestGeometryPoint1D::testSpaceDim(void)
+{ // testSpaceDim
+ GeometryPoint1D geometry;
+ GeomDataPoint1D data;
+ _testSpaceDim(geometry, data);
+} // testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners()
+void
+pylith::topology::TestGeometryPoint1D::testNumCorners(void)
+{ // testNumCorners
+ GeometryPoint1D geometry;
+ GeomDataPoint1D data;
+ _testNumCorners(geometry, data);
+} // testNumCorners
+
+// ----------------------------------------------------------------------
+// Test geometryLowerDim().
+void
+pylith::topology::TestGeometryPoint1D::testGeomLowerDim(void)
+{ // testGeomLowerDim
+ GeometryPoint1D geometry;
+ CellGeometry* geometryLD = geometry.geometryLowerDim();
+ CPPUNIT_ASSERT(0 == geometryLD);
+ delete geometryLD; geometryLD = 0;
+} // testGeomLowerDim
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestGeometryPoint1D::testJacobian(void)
+{ // testJacobian
+ GeometryPoint1D geometry;
+ GeomDataPoint1D data;
+
+ const int cellDim = data.cellDim;
+ const int spaceDim = data.spaceDim;
+ const int numCorners = data.numCorners;
+
+ const int numLocs = data.numLocs;
+
+ CPPUNIT_ASSERT_EQUAL(cellDim, geometry.cellDim());
+ CPPUNIT_ASSERT_EQUAL(spaceDim, geometry.spaceDim());
+ CPPUNIT_ASSERT_EQUAL(numCorners, geometry.numCorners());
+
+ double_array jacobian(1);
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ double_array vertices(data.vertices, numCorners*spaceDim);
+ double_array location(&data.locations[iLoc], 1);
+
+ geometry.jacobian(&jacobian, vertices, location);
+ CPPUNIT_ASSERT_EQUAL(1.0, jacobian[0]);
+ } //for
+} // testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint1D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestGeometryPoint1D.hh
+ *
+ * @brief C++ TestGeometryPoint1D object
+ *
+ * C++ unit testing for TopologyAscii.
+ */
+
+#if !defined(pylith_topology_testgeometrypoint1d_hh)
+#define pylith_topology_testgeometrypoint1d_hh
+
+#include "TestCellGeometry.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestGeometryPoint1D;
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for Quadrature1D
+class pylith::topology::TestGeometryPoint1D : public TestCellGeometry
+{ // class TestGeometryPoint1D
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestGeometryPoint1D );
+ CPPUNIT_TEST( testConstructor );
+ CPPUNIT_TEST( testCellDim );
+ CPPUNIT_TEST( testSpaceDim );
+ CPPUNIT_TEST( testNumCorners );
+ CPPUNIT_TEST( testGeomLowerDim );
+ CPPUNIT_TEST( testJacobian );
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Test constructor
+ void testConstructor(void);
+
+ /// Test cellDim()
+ void testCellDim(void);
+
+ /// Test spaceDim()
+ void testSpaceDim(void);
+
+ /// Test numCorners()
+ void testNumCorners(void);
+
+ /// Test geometryLowerDim().
+ void testGeomLowerDim(void);
+
+ /// Test jacobian().
+ void testJacobian(void);
+
+}; // class TestGeometryPoint1D
+
+#endif // pylith_topology_testgeometrypoint1d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestGeometryPoint2D.hh" // Implementation of class methods
+
+#include "pylith/topology/GeometryPoint2D.hh"
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/GeomDataPoint2D.hh"
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::topology::TestGeometryPoint2D );
+
+// ----------------------------------------------------------------------
+// Test constructor
+void
+pylith::topology::TestGeometryPoint2D::testConstructor(void)
+{ // testConstructor
+ GeometryPoint2D geometry;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test cellDim()
+void
+pylith::topology::TestGeometryPoint2D::testCellDim(void)
+{ // testCellDim
+ GeometryPoint2D geometry;
+ GeomDataPoint2D data;
+ _testCellDim(geometry, data);
+} // testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim()
+void
+pylith::topology::TestGeometryPoint2D::testSpaceDim(void)
+{ // testSpaceDim
+ GeometryPoint2D geometry;
+ GeomDataPoint2D data;
+ _testSpaceDim(geometry, data);
+} // testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners()
+void
+pylith::topology::TestGeometryPoint2D::testNumCorners(void)
+{ // testNumCorners
+ GeometryPoint2D geometry;
+ GeomDataPoint2D data;
+ _testNumCorners(geometry, data);
+} // testNumCorners
+
+// ----------------------------------------------------------------------
+// Test geometryLowerDim().
+void
+pylith::topology::TestGeometryPoint2D::testGeomLowerDim(void)
+{ // testGeomLowerDim
+ GeometryPoint2D geometry;
+ CellGeometry* geometryLD = geometry.geometryLowerDim();
+ CPPUNIT_ASSERT(0 == geometryLD);
+ delete geometryLD; geometryLD = 0;
+} // testGeomLowerDim
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestGeometryPoint2D::testJacobian(void)
+{ // testJacobian
+ GeometryPoint2D geometry;
+ GeomDataPoint2D data;
+
+ const int cellDim = data.cellDim;
+ const int spaceDim = data.spaceDim;
+ const int numCorners = data.numCorners;
+
+ const int numLocs = data.numLocs;
+
+ CPPUNIT_ASSERT_EQUAL(cellDim, geometry.cellDim());
+ CPPUNIT_ASSERT_EQUAL(spaceDim, geometry.spaceDim());
+ CPPUNIT_ASSERT_EQUAL(numCorners, geometry.numCorners());
+
+ double_array jacobian(1);
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ double_array vertices(data.vertices, numCorners*spaceDim);
+ double_array location(&data.locations[iLoc], 1);
+
+ geometry.jacobian(&jacobian, vertices, location);
+ CPPUNIT_ASSERT_EQUAL(1.0, jacobian[0]);
+ } //for
+} // testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestGeometryPoint2D.hh
+ *
+ * @brief C++ TestGeometryPoint2D object
+ *
+ * C++ unit testing for TopologyAscii.
+ */
+
+#if !defined(pylith_topology_testgeometrypoint2d_hh)
+#define pylith_topology_testgeometrypoint2d_hh
+
+#include "TestCellGeometry.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestGeometryPoint2D;
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for Quadrature2D
+class pylith::topology::TestGeometryPoint2D : public TestCellGeometry
+{ // class TestGeometryPoint2D
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestGeometryPoint2D );
+ CPPUNIT_TEST( testConstructor );
+ CPPUNIT_TEST( testCellDim );
+ CPPUNIT_TEST( testSpaceDim );
+ CPPUNIT_TEST( testNumCorners );
+ CPPUNIT_TEST( testGeomLowerDim );
+ CPPUNIT_TEST( testJacobian );
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Test constructor
+ void testConstructor(void);
+
+ /// Test cellDim()
+ void testCellDim(void);
+
+ /// Test spaceDim()
+ void testSpaceDim(void);
+
+ /// Test numCorners()
+ void testNumCorners(void);
+
+ /// Test geometryLowerDim().
+ void testGeomLowerDim(void);
+
+ /// Test jacobian().
+ void testJacobian(void);
+
+}; // class TestGeometryPoint2D
+
+#endif // pylith_topology_testgeometrypoint2d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestGeometryPoint3D.hh" // Implementation of class methods
+
+#include "pylith/topology/GeometryPoint3D.hh"
+#include "pylith/utils/array.hh" // USES double_array
+
+#include "data/GeomDataPoint3D.hh"
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::topology::TestGeometryPoint3D );
+
+// ----------------------------------------------------------------------
+// Test constructor
+void
+pylith::topology::TestGeometryPoint3D::testConstructor(void)
+{ // testConstructor
+ GeometryPoint3D geometry;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test cellDim()
+void
+pylith::topology::TestGeometryPoint3D::testCellDim(void)
+{ // testCellDim
+ GeometryPoint3D geometry;
+ GeomDataPoint3D data;
+ _testCellDim(geometry, data);
+} // testCellDim
+
+// ----------------------------------------------------------------------
+// Test spaceDim()
+void
+pylith::topology::TestGeometryPoint3D::testSpaceDim(void)
+{ // testSpaceDim
+ GeometryPoint3D geometry;
+ GeomDataPoint3D data;
+ _testSpaceDim(geometry, data);
+} // testSpaceDim
+
+// ----------------------------------------------------------------------
+// Test numCorners()
+void
+pylith::topology::TestGeometryPoint3D::testNumCorners(void)
+{ // testNumCorners
+ GeometryPoint3D geometry;
+ GeomDataPoint3D data;
+ _testNumCorners(geometry, data);
+} // testNumCorners
+
+// ----------------------------------------------------------------------
+// Test geometryLowerDim().
+void
+pylith::topology::TestGeometryPoint3D::testGeomLowerDim(void)
+{ // testGeomLowerDim
+ GeometryPoint3D geometry;
+ CellGeometry* geometryLD = geometry.geometryLowerDim();
+ CPPUNIT_ASSERT(0 == geometryLD);
+ delete geometryLD; geometryLD = 0;
+} // testGeomLowerDim
+
+// ----------------------------------------------------------------------
+// Test jacobian().
+void
+pylith::topology::TestGeometryPoint3D::testJacobian(void)
+{ // testJacobian
+ GeometryPoint3D geometry;
+ GeomDataPoint3D data;
+
+ const int cellDim = data.cellDim;
+ const int spaceDim = data.spaceDim;
+ const int numCorners = data.numCorners;
+
+ const int numLocs = data.numLocs;
+
+ CPPUNIT_ASSERT_EQUAL(cellDim, geometry.cellDim());
+ CPPUNIT_ASSERT_EQUAL(spaceDim, geometry.spaceDim());
+ CPPUNIT_ASSERT_EQUAL(numCorners, geometry.numCorners());
+
+ double_array jacobian(1);
+ for (int iLoc=0; iLoc < numLocs; ++iLoc) {
+ double_array vertices(data.vertices, numCorners*spaceDim);
+ double_array location(&data.locations[iLoc], 1);
+
+ geometry.jacobian(&jacobian, vertices, location);
+ CPPUNIT_ASSERT_EQUAL(1.0, jacobian[0]);
+ } //for
+} // testJacobian
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/TestGeometryPoint3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/topology/TestGeometryPoint3D.hh
+ *
+ * @brief C++ TestGeometryPoint3D object
+ *
+ * C++ unit testing for TopologyAscii.
+ */
+
+#if !defined(pylith_topology_testgeometrypoint3d_hh)
+#define pylith_topology_testgeometrypoint3d_hh
+
+#include "TestCellGeometry.hh"
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace topology {
+ class TestGeometryPoint3D;
+ class CellGeomData;
+ } // topology
+} // pylith
+
+/// C++ unit testing for Quadrature3D
+class pylith::topology::TestGeometryPoint3D : public TestCellGeometry
+{ // class TestGeometryPoint3D
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestGeometryPoint3D );
+ CPPUNIT_TEST( testConstructor );
+ CPPUNIT_TEST( testCellDim );
+ CPPUNIT_TEST( testSpaceDim );
+ CPPUNIT_TEST( testNumCorners );
+ CPPUNIT_TEST( testGeomLowerDim );
+ CPPUNIT_TEST( testJacobian );
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Test constructor
+ void testConstructor(void);
+
+ /// Test cellDim()
+ void testCellDim(void);
+
+ /// Test spaceDim()
+ void testSpaceDim(void);
+
+ /// Test numCorners()
+ void testNumCorners(void);
+
+ /// Test geometryLowerDim().
+ void testGeomLowerDim(void);
+
+ /// Test jacobian().
+ void testJacobian(void);
+
+}; // class TestGeometryPoint3D
+
+#endif // pylith_topology_testgeometrypoint3d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,35 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "CellGeomData.hh"
+
+// ----------------------------------------------------------------------
+// Constructor
+pylith::topology::CellGeomData::CellGeomData(void) :
+ cellDim(0),
+ spaceDim(0),
+ numCorners(0),
+ numLocs(0),
+ vertices(0),
+ locations(0),
+ jacobian(0)
+{ // constructor
+} // constructor
+
+// ----------------------------------------------------------------------
+// Destructor
+pylith::topology::CellGeomData::~CellGeomData(void)
+{ // destructor
+} // destructor
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/CellGeomData.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_topology_cellgeomdata_hh)
+#define pylith_topology_cellgeomdata_hh
+
+namespace pylith {
+ namespace topology {
+ class CellGeomData;
+ } // pylith
+} // topology
+
+class pylith::topology::CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public :
+
+ /// Constructor
+ CellGeomData(void);
+
+ /// Destructor
+ ~CellGeomData(void);
+
+// PUBLIC MEMBERS ///////////////////////////////////////////////////////
+public:
+
+ int cellDim; ///< Number of dimensions associated with cell
+ int spaceDim; ///< Number of dimensions in vertex coordinates
+ int numCorners; ///< Number of vertices in cell
+
+ int numLocs; ///< Number of locations
+
+ double* vertices; ///< Coordinates of vertices of cell
+ double* locations; ///< Locations where Jacobian is computed
+ double* jacobian; ///< Jacobian at locations
+
+};
+
+#endif // pylith_topology_cellgeomdata_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "GeomDataLine1D.hh"
+
+const int pylith::topology::GeomDataLine1D::_cellDim = 1;
+
+const int pylith::topology::GeomDataLine1D::_spaceDim = 1;
+
+const int pylith::topology::GeomDataLine1D::_numCorners = 2;
+
+const int pylith::topology::GeomDataLine1D::_numLocs = 2;
+
+const double pylith::topology::GeomDataLine1D::_vertices[] = {
+ 1.2,
+ 4.5
+};
+
+const double pylith::topology::GeomDataLine1D::_locations[] = {
+ 0.345,
+ 0.459
+};
+
+const double pylith::topology::GeomDataLine1D::_jacobian[] = {
+ 3.3,
+ 3.3
+};
+
+pylith::topology::GeomDataLine1D::GeomDataLine1D(void)
+{ // constructor
+ cellDim = _cellDim;
+ spaceDim = _spaceDim;
+ numCorners = _numCorners;
+ numLocs = _numLocs;
+ vertices = const_cast<double*>(_vertices);
+ locations = const_cast<double*>(_locations);
+ jacobian = const_cast<double*>(_jacobian);
+} // constructor
+
+pylith::topology::GeomDataLine1D::~GeomDataLine1D(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine1D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_geomdataline1d_hh)
+#define pylith_meshio_geomdataline1d_hh
+
+#include "CellGeomData.hh"
+
+namespace pylith {
+ namespace topology {
+ class GeomDataLine1D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeomDataLine1D : public CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ GeomDataLine1D(void);
+
+ /// Destructor
+ ~GeomDataLine1D(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _cellDim; ///< Number of dimensions associated with cell
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCorners; ///< Number of vertices in cell
+
+ static const int _numLocs; ///< Number of locations for computing Jacobian
+
+ static const double _vertices[]; ///< Coordinates of cell's vertices
+ static const double _locations[]; ///< Locations to compute Jacobian
+ static const double _jacobian[]; ///< Jacobian at locations
+
+};
+
+#endif // pylith_meshio_geomdataline1d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "GeomDataLine2D.hh"
+
+const int pylith::topology::GeomDataLine2D::_cellDim = 1;
+
+const int pylith::topology::GeomDataLine2D::_spaceDim = 2;
+
+const int pylith::topology::GeomDataLine2D::_numCorners = 2;
+
+const int pylith::topology::GeomDataLine2D::_numLocs = 2;
+
+const double pylith::topology::GeomDataLine2D::_vertices[] = {
+ 1.2, 2.4,
+ 4.5, -1.4
+};
+
+const double pylith::topology::GeomDataLine2D::_locations[] = {
+ 0.345,
+ 0.459
+};
+
+const double pylith::topology::GeomDataLine2D::_jacobian[] = {
+ 3.3, -3.8,
+ 3.3, -3.8
+};
+
+pylith::topology::GeomDataLine2D::GeomDataLine2D(void)
+{ // constructor
+ cellDim = _cellDim;
+ spaceDim = _spaceDim;
+ numCorners = _numCorners;
+ numLocs = _numLocs;
+ vertices = const_cast<double*>(_vertices);
+ locations = const_cast<double*>(_locations);
+ jacobian = const_cast<double*>(_jacobian);
+} // constructor
+
+pylith::topology::GeomDataLine2D::~GeomDataLine2D(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_geomdataline2d_hh)
+#define pylith_meshio_geomdataline2d_hh
+
+#include "CellGeomData.hh"
+
+namespace pylith {
+ namespace topology {
+ class GeomDataLine2D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeomDataLine2D : public CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ GeomDataLine2D(void);
+
+ /// Destructor
+ ~GeomDataLine2D(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _cellDim; ///< Number of dimensions associated with cell
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCorners; ///< Number of vertices in cell
+
+ static const int _numLocs; ///< Number of locations for computing Jacobian
+
+ static const double _vertices[]; ///< Coordinates of cell's vertices
+ static const double _locations[]; ///< Locations to compute Jacobian
+ static const double _jacobian[]; ///< Jacobian at locations
+
+};
+
+#endif // pylith_meshio_geomdataline2d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "GeomDataLine3D.hh"
+
+const int pylith::topology::GeomDataLine3D::_cellDim = 1;
+
+const int pylith::topology::GeomDataLine3D::_spaceDim = 3;
+
+const int pylith::topology::GeomDataLine3D::_numCorners = 2;
+
+const int pylith::topology::GeomDataLine3D::_numLocs = 2;
+
+const double pylith::topology::GeomDataLine3D::_vertices[] = {
+ 1.2, 2.3, 2.4,
+ 4.5, -1.5, 5.3
+};
+
+const double pylith::topology::GeomDataLine3D::_locations[] = {
+ 0.345,
+ 0.459
+};
+
+const double pylith::topology::GeomDataLine3D::_jacobian[] = {
+ 3.3, -3.8, 2.9,
+ 3.3, -3.8, 2.9
+};
+
+pylith::topology::GeomDataLine3D::GeomDataLine3D(void)
+{ // constructor
+ cellDim = _cellDim;
+ spaceDim = _spaceDim;
+ numCorners = _numCorners;
+ numLocs = _numLocs;
+ vertices = const_cast<double*>(_vertices);
+ locations = const_cast<double*>(_locations);
+ jacobian = const_cast<double*>(_jacobian);
+} // constructor
+
+pylith::topology::GeomDataLine3D::~GeomDataLine3D(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataLine3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_geomdataline3d_hh)
+#define pylith_meshio_geomdataline3d_hh
+
+#include "CellGeomData.hh"
+
+namespace pylith {
+ namespace topology {
+ class GeomDataLine3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeomDataLine3D : public CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ GeomDataLine3D(void);
+
+ /// Destructor
+ ~GeomDataLine3D(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _cellDim; ///< Number of dimensions associated with cell
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCorners; ///< Number of vertices in cell
+
+ static const int _numLocs; ///< Number of locations for computing Jacobian
+
+ static const double _vertices[]; ///< Coordinates of cell's vertices
+ static const double _locations[]; ///< Locations to compute Jacobian
+ static const double _jacobian[]; ///< Jacobian at locations
+
+};
+
+#endif // pylith_meshio_geomdataline3d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "GeomDataPoint1D.hh"
+
+const int pylith::topology::GeomDataPoint1D::_cellDim = 0;
+
+const int pylith::topology::GeomDataPoint1D::_spaceDim = 1;
+
+const int pylith::topology::GeomDataPoint1D::_numCorners = 1;
+
+const int pylith::topology::GeomDataPoint1D::_numLocs = 2;
+
+const double pylith::topology::GeomDataPoint1D::_vertices[] = {
+ 1.2,
+ 4.5
+};
+
+const double pylith::topology::GeomDataPoint1D::_locations[] = {
+ 0.0,
+ 0.0
+};
+
+const double pylith::topology::GeomDataPoint1D::_jacobian[] = {
+ 1.0,
+ 1.0
+};
+
+pylith::topology::GeomDataPoint1D::GeomDataPoint1D(void)
+{ // constructor
+ cellDim = _cellDim;
+ spaceDim = _spaceDim;
+ numCorners = _numCorners;
+ numLocs = _numLocs;
+ vertices = const_cast<double*>(_vertices);
+ locations = const_cast<double*>(_locations);
+ jacobian = const_cast<double*>(_jacobian);
+} // constructor
+
+pylith::topology::GeomDataPoint1D::~GeomDataPoint1D(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint1D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_geomdatapoint1d_hh)
+#define pylith_meshio_geomdatapoint1d_hh
+
+#include "CellGeomData.hh"
+
+namespace pylith {
+ namespace topology {
+ class GeomDataPoint1D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeomDataPoint1D : public CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ GeomDataPoint1D(void);
+
+ /// Destructor
+ ~GeomDataPoint1D(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _cellDim; ///< Number of dimensions associated with cell
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCorners; ///< Number of vertices in cell
+
+ static const int _numLocs; ///< Number of locations for computing Jacobian
+
+ static const double _vertices[]; ///< Coordinates of cell's vertices
+ static const double _locations[]; ///< Locations to compute Jacobian
+ static const double _jacobian[]; ///< Jacobian at locations
+
+};
+
+#endif // pylith_meshio_geomdatapoint1d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "GeomDataPoint2D.hh"
+
+const int pylith::topology::GeomDataPoint2D::_cellDim = 0;
+
+const int pylith::topology::GeomDataPoint2D::_spaceDim = 2;
+
+const int pylith::topology::GeomDataPoint2D::_numCorners = 1;
+
+const int pylith::topology::GeomDataPoint2D::_numLocs = 2;
+
+const double pylith::topology::GeomDataPoint2D::_vertices[] = {
+ 1.3, 5.4,
+ 4.1, 7.5
+};
+
+const double pylith::topology::GeomDataPoint2D::_locations[] = {
+ 0.0,
+ 0.0
+};
+
+const double pylith::topology::GeomDataPoint2D::_jacobian[] = {
+ 1.0,
+ 1.0
+};
+
+pylith::topology::GeomDataPoint2D::GeomDataPoint2D(void)
+{ // constructor
+ cellDim = _cellDim;
+ spaceDim = _spaceDim;
+ numCorners = _numCorners;
+ numLocs = _numLocs;
+ vertices = const_cast<double*>(_vertices);
+ locations = const_cast<double*>(_locations);
+ jacobian = const_cast<double*>(_jacobian);
+} // constructor
+
+pylith::topology::GeomDataPoint2D::~GeomDataPoint2D(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint2D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_geomdatapoint2d_hh)
+#define pylith_meshio_geomdatapoint2d_hh
+
+#include "CellGeomData.hh"
+
+namespace pylith {
+ namespace topology {
+ class GeomDataPoint2D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeomDataPoint2D : public CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ GeomDataPoint2D(void);
+
+ /// Destructor
+ ~GeomDataPoint2D(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _cellDim; ///< Number of dimensions associated with cell
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCorners; ///< Number of vertices in cell
+
+ static const int _numLocs; ///< Number of locations for computing Jacobian
+
+ static const double _vertices[]; ///< Coordinates of cell's vertices
+ static const double _locations[]; ///< Locations to compute Jacobian
+ static const double _jacobian[]; ///< Jacobian at locations
+
+};
+
+#endif // pylith_meshio_geomdatapoint2d_hh
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.cc 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.cc 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#include "GeomDataPoint3D.hh"
+
+const int pylith::topology::GeomDataPoint3D::_cellDim = 0;
+
+const int pylith::topology::GeomDataPoint3D::_spaceDim = 3;
+
+const int pylith::topology::GeomDataPoint3D::_numCorners = 1;
+
+const int pylith::topology::GeomDataPoint3D::_numLocs = 2;
+
+const double pylith::topology::GeomDataPoint3D::_vertices[] = {
+ 1.22, 4.35, 6.56,
+ 4.45, 5.62, 2.55
+};
+
+const double pylith::topology::GeomDataPoint3D::_locations[] = {
+ 0.0,
+ 0.0
+};
+
+const double pylith::topology::GeomDataPoint3D::_jacobian[] = {
+ 1.0,
+ 1.0
+};
+
+pylith::topology::GeomDataPoint3D::GeomDataPoint3D(void)
+{ // constructor
+ cellDim = _cellDim;
+ spaceDim = _spaceDim;
+ numCorners = _numCorners;
+ numLocs = _numLocs;
+ vertices = const_cast<double*>(_vertices);
+ locations = const_cast<double*>(_locations);
+ jacobian = const_cast<double*>(_jacobian);
+} // constructor
+
+pylith::topology::GeomDataPoint3D::~GeomDataPoint3D(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.hh 2007-05-12 22:50:15 UTC (rev 6870)
+++ short/3D/PyLith/trunk/unittests/libtests/topology/data/GeomDataPoint3D.hh 2007-05-13 04:32:31 UTC (rev 6871)
@@ -0,0 +1,53 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_meshio_geomdatapoint3d_hh)
+#define pylith_meshio_geomdatapoint3d_hh
+
+#include "CellGeomData.hh"
+
+namespace pylith {
+ namespace topology {
+ class GeomDataPoint3D;
+ } // topology
+} // pylith
+
+class pylith::topology::GeomDataPoint3D : public CellGeomData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ GeomDataPoint3D(void);
+
+ /// Destructor
+ ~GeomDataPoint3D(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _cellDim; ///< Number of dimensions associated with cell
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCorners; ///< Number of vertices in cell
+
+ static const int _numLocs; ///< Number of locations for computing Jacobian
+
+ static const double _vertices[]; ///< Coordinates of cell's vertices
+ static const double _locations[]; ///< Locations to compute Jacobian
+ static const double _jacobian[]; ///< Jacobian at locations
+
+};
+
+#endif // pylith_meshio_geomdatapoint3d_hh
+
+// End of file
More information about the cig-commits
mailing list