[cig-commits] r8362 - in short/3D/PyLith/trunk: . libsrc/feassemble unittests/libtests/bc/data unittests/libtests/feassemble unittests/libtests/feassemble/data unittests/libtests/materials

brad at geodynamics.org brad at geodynamics.org
Sun Dec 2 15:51:38 PST 2007


Author: brad
Date: 2007-12-02 15:51:35 -0800 (Sun, 02 Dec 2007)
New Revision: 8362

Modified:
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh
   short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.icc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din2D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2Din3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticPlaneStrain.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature1DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DLinear.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DLinear.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution2DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DQuadratic.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/elasticplanestrain.spatialdb
   short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc
Log:
Switched to non-isoparametric computation of cell Jacobians (use CellGeometry::jacobian()). Updated unit tests to use same reference cell geometry.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/TODO	2007-12-02 23:51:35 UTC (rev 8362)
@@ -24,17 +24,20 @@
      High level events
        MeshGenerator
        Problem
-  
+
   2. Optimization of restrict()/update()
       UpdateState
-        Change disp to fields
-      Need to fix optimized ElasticityExplicit (something wrong)
+        Change disp argument to fields?
 
      a. Fault
      b. Absorbing BC
      c. Neumann BC
 
   3. Nonisoparametric cells
+     Need routine to transform coordinates in reference cell to coordinates
+       in actual cell (given vertices of actual cell)
+     Clean up CellGeometry::jacobian
+       Switch from double_array to double* (used by faults)
 
   4. Finish Neumann BC.
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -112,6 +112,21 @@
 		const double_array& vertices,
 		const double_array& location) const = 0;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  virtual
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const = 0;
+
   /** Compute orientation of cell at location.
    *
    * The orientation is returned as an array of direction cosines

Modified: short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.icc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.icc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -41,7 +41,18 @@
     _orientFn(orientation, jacobian, jacobianDet, upDir);
 } // orientation
 
+// TEMPORARY
+// Compute Jacobian at location in cell.
+inline
+void
+pylith::feassemble::CellGeometry::jacobian(double* jacobian,
+					   double* det,
+					   const double* vertices,
+					   const double* location,
+					   const int dim) const {
+}
 
+
 #endif
 
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -132,17 +132,17 @@
   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)[0] = (x1 - x0 + f_xy*y + f_xz*z + f_xyz*y*z) / 2.0;
+  (*jacobian)[1] = (x3 - x0 + f_xy*x + f_yz*z + f_xyz*x*z) / 2.0;
+  (*jacobian)[2] = (x4 - x0 + f_yz*y + f_xz*x + f_xyz*x*y) / 2.0;
 
-  (*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)[3] = (y1 - y0 + g_xy*y + g_xz*z + g_xyz*y*z) / 2.0;
+  (*jacobian)[4] = (y3 - y0 + g_xy*x + g_yz*z + g_xyz*x*z) / 2.0;
+  (*jacobian)[5] = (y4 - y0 + g_yz*y + g_xz*x + g_xyz*x*y) / 2.0;
 
-  (*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)[6] = (z1 - z0 + h_xy*y + h_xz*z + h_xyz*y*z) / 2.0;
+  (*jacobian)[7] = (z3 - z0 + h_xy*x + h_yz*z + h_xyz*x*z) / 2.0;
+  (*jacobian)[8] = (z4 - z0 + h_yz*y + h_xz*x + h_xyz*x*y) / 2.0;
 
   *det = 
     (*jacobian)[0]*((*jacobian)[4]*(*jacobian)[8] -
@@ -151,8 +151,100 @@
 		    (*jacobian)[5]*(*jacobian)[6]) +
     (*jacobian)[2]*((*jacobian)[3]*(*jacobian)[7] -
 		    (*jacobian)[4]*(*jacobian)[6]);
-  PetscLogFlopsNoCheck(150);
+
+  PetscLogFlopsNoCheck(152);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryHex3D::jacobian(double* jacobian,
+					    double* det,
+					    const double* vertices,
+					    const double* location,
+					    const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(3 == dim);
+  assert(spaceDim() == dim);
 
+  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 = 0.5 * (location[0] + 1.0);
+  const double y = 0.5 * (location[1] + 1.0);
+  const double z = 0.5 * (location[2] + 1.0);
+  assert(-1.0 <= x && x <= 1.0);
+  assert(-1.0 <= y && y <= 1.0);
+  assert(-1.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) / 2.0;
+  jacobian[1] = (x3 - x0 + f_xy*x + f_yz*z + f_xyz*x*z) / 2.0;
+  jacobian[2] = (x4 - x0 + f_yz*y + f_xz*x + f_xyz*x*y) / 2.0;
+
+  jacobian[3] = (y1 - y0 + g_xy*y + g_xz*z + g_xyz*y*z) / 2.0;
+  jacobian[4] = (y3 - y0 + g_xy*x + g_yz*z + g_xyz*x*z) / 2.0;
+  jacobian[5] = (y4 - y0 + g_yz*y + g_xz*x + g_xyz*x*y) / 2.0;
+
+  jacobian[6] = (z1 - z0 + h_xy*y + h_xz*z + h_xyz*y*z) / 2.0;
+  jacobian[7] = (z3 - z0 + h_xy*x + h_yz*z + h_xyz*x*z) / 2.0;
+  jacobian[8] = (z4 - z0 + h_yz*y + h_xz*x + h_xyz*x*y) / 2.0;
+
+  *det = 
+    jacobian[0]*(jacobian[4]*jacobian[8] - jacobian[5]*jacobian[7]) -
+    jacobian[1]*(jacobian[3]*jacobian[8] - jacobian[5]*jacobian[6]) +
+    jacobian[2]*(jacobian[3]*jacobian[7] - jacobian[4]*jacobian[6]);
+
+  PetscLogFlopsNoCheck(152);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -77,6 +77,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -18,6 +18,8 @@
 
 #include "pylith/utils/array.hh" // USES double_array
 
+#include "petsc.h" // USES PetscLogFlopsNoCheck
+
 #include <assert.h> // USES assert()
 
 // ----------------------------------------------------------------------
@@ -58,9 +60,9 @@
 // Compute Jacobian at location in cell.
 void
 pylith::feassemble::GeometryLine1D::jacobian(double_array* jacobian,
-					   double* det,
-					   const double_array& vertices,
-					   const double_array& location) const
+					     double* det,
+					     const double_array& vertices,
+					     const double_array& location) const
 { // jacobian
   assert(0 != jacobian);
   assert(0 != det);
@@ -71,9 +73,33 @@
   const double x0 = vertices[0];
   const double x1 = vertices[1];
 
-  (*jacobian)[0] = x1 - x0;
+  (*jacobian)[0] = (x1 - x0)/2.0;
   *det = (*jacobian)[0];
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryLine1D::jacobian(double* jacobian,
+					     double* det,
+					     const double* vertices,
+					     const double* location,
+					     const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(1 == dim);
+  assert(spaceDim() == dim);
 
+  const double x0 = vertices[0];
+  const double x1 = vertices[1];
+
+  jacobian[0] = (x1 - x0)/2.0;
+  *det = jacobian[0];
+  PetscLogFlopsNoCheck(2);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -65,6 +65,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -16,10 +16,10 @@
 
 #include "GeometryPoint2D.hh" // USES GeometryPoint
 
+#include "pylith/utils/array.hh" // USES double_array
+
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
-#include "pylith/utils/array.hh" // USES double_array
-
 #include <assert.h> // USES assert()
 
 // ----------------------------------------------------------------------
@@ -76,12 +76,41 @@
   const double x1 = vertices[2];
   const double y1 = vertices[3];
 
-  (*jacobian)[0] = x1 - x0;
-  (*jacobian)[1] = y1 - y0;
+  (*jacobian)[0] = (x1 - x0)/2.0;
+  (*jacobian)[1] = (y1 - y0)/2.0;
   *det = sqrt(pow((*jacobian)[0], 2) +
 	      pow((*jacobian)[1], 2));
-  PetscLogFlopsNoCheck(6);
+  PetscLogFlopsNoCheck(8);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryLine2D::jacobian(double* jacobian,
+					     double* det,
+					     const double* vertices,
+					     const double* location,
+					     const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(2 == dim);
+  assert(spaceDim() == dim);
 
+  const double x0 = vertices[0];
+  const double y0 = vertices[1];
+
+  const double x1 = vertices[2];
+  const double y1 = vertices[3];
+
+  jacobian[0] = (x1 - x0)/2.0;
+  jacobian[1] = (y1 - y0)/2.0;
+  *det = sqrt(pow(jacobian[0], 2) +
+	      pow(jacobian[1], 2));
+  PetscLogFlopsNoCheck(8);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -65,6 +65,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -78,14 +78,47 @@
   const double y1 = vertices[4];
   const double z1 = vertices[5];
 
-  (*jacobian)[0] = x1 - x0;
-  (*jacobian)[1] = y1 - y0;
-  (*jacobian)[2] = z1 - z0;
+  (*jacobian)[0] = (x1 - x0)/2.0;
+  (*jacobian)[1] = (y1 - y0)/2.0;
+  (*jacobian)[2] = (z1 - z0)/2.0;
   *det = sqrt(pow((*jacobian)[0], 2) +
 	      pow((*jacobian)[1], 2) +
 	      pow((*jacobian)[2], 2));
-  PetscLogFlopsNoCheck(9);
+  PetscLogFlopsNoCheck(12);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryLine3D::jacobian(double* jacobian,
+					     double* det,
+					     const double* vertices,
+					     const double* location,
+					     const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(2 == dim);
+  assert(spaceDim() == dim);
 
+  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)/2.0;
+  jacobian[1] = (y1 - y0)/2.0;
+  jacobian[2] = (z1 - z0)/2.0;
+  *det = sqrt(pow(jacobian[0], 2) +
+	      pow(jacobian[1], 2) +
+	      pow(jacobian[2], 2));
+  PetscLogFlopsNoCheck(12);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -65,6 +65,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -66,5 +66,25 @@
   *det = 1.0;
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryPoint1D::jacobian(double* jacobian,
+					      double* det,
+					      const double* vertices,
+					      const double* location,
+					      const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(1 == dim);
+  assert(spaceDim() == dim);
 
+  jacobian[0] = 1.0;
+  *det = 1.0;
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -65,6 +65,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -66,5 +66,25 @@
   *det = 1.0;
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryPoint2D::jacobian(double* jacobian,
+					      double* det,
+					      const double* vertices,
+					      const double* location,
+					      const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(2 == dim);
+  assert(spaceDim() == dim);
 
+  jacobian[0] = 1.0;
+  *det = 1.0;
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -65,6 +65,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -66,5 +66,25 @@
   *det = 1.0;
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryPoint3D::jacobian(double* jacobian,
+					      double* det,
+					      const double* vertices,
+					      const double* location,
+					      const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(3 == dim);
+  assert(spaceDim() == dim);
 
+  jacobian[0] = 1.0;
+  *det = 1.0;
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -65,6 +65,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -93,16 +93,64 @@
   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)[0] = (x1 - x0 + f_xy*y) / 2.0;
+  (*jacobian)[1] = (x3 - x0 + f_xy*x) / 2.0;
+  (*jacobian)[2] = (y1 - y0 + g_xy*y) / 2.0;
+  (*jacobian)[3] = (y3 - y0 + g_xy*x) / 2.0;
 
   *det = 
     (*jacobian)[0]*(*jacobian)[3] - 
     (*jacobian)[1]*(*jacobian)[2];
-  PetscLogFlopsNoCheck(25);
+
+  PetscLogFlopsNoCheck(31);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryQuad2D::jacobian(double* jacobian,
+					     double* det,
+					     const double* vertices,
+					     const double* location,
+					     const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(2 == dim);
+  assert(spaceDim() == dim);
+    
+  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 = 0.5 * (location[0] + 1.0);
+  const double y = 0.5 * (location[1] + 1.0);
+  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) / 2.0;
+  jacobian[1] = (x3 - x0 + f_xy*x) / 2.0;
+  jacobian[2] = (y1 - y0 + g_xy*y) / 2.0;
+  jacobian[3] = (y3 - y0 + g_xy*x) / 2.0;
+
+  *det = 
+    jacobian[0]*jacobian[3] - 
+    jacobian[1]*jacobian[2];
+  PetscLogFlopsNoCheck(29);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -78,6 +78,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -98,14 +98,14 @@
   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)[0] = (x1 - x0 + f_xy*y) / 2.0;
+  (*jacobian)[1] = (x3 - x0 + f_xy*x) / 2.0;
 
-  (*jacobian)[2] = y1 - y0 + g_xy*y;
-  (*jacobian)[3] = y3 - y0 + g_xy*x;
+  (*jacobian)[2] = (y1 - y0 + g_xy*y) / 2.0;
+  (*jacobian)[3] = (y3 - y0 + g_xy*x) / 2.0;
 
-  (*jacobian)[4] = z1 - z0 + h_xy*y;
-  (*jacobian)[5] = z3 - z0 + h_xy*x;
+  (*jacobian)[4] = (z1 - z0 + h_xy*y) / 2.0;
+  (*jacobian)[5] = (z3 - z0 + h_xy*x) / 2.0;
 
   const double jj00 = 
     (*jacobian)[0]*(*jacobian)[0] +
@@ -121,8 +121,77 @@
     (*jacobian)[3]*(*jacobian)[3] +
     (*jacobian)[5]*(*jacobian)[5];
   *det = sqrt(jj00*jj11 - jj01*jj10);
+
   PetscLogFlopsNoCheck(50);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryQuad3D::jacobian(double* jacobian,
+					     double* det,
+					     const double* vertices,
+					     const double* location,
+					     const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(3 == dim);
+  assert(spaceDim() == dim);
+  
+  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 = 0.5 * (location[0] + 1.0);
+  const double y = 0.5 * (location[1] + 1.0);
+  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) / 2.0;
+  jacobian[1] = (x3 - x0 + f_xy*x) / 2.0;
+
+  jacobian[2] = (y1 - y0 + g_xy*y) / 2.0;
+  jacobian[3] = (y3 - y0 + g_xy*x) / 2.0;
+
+  jacobian[4] = (z1 - z0 + h_xy*y) / 2.0;
+  jacobian[5] = (z3 - z0 + h_xy*x) / 2.0;
+
+  const double jj00 = 
+    jacobian[0]*jacobian[0] +
+    jacobian[2]*jacobian[2] +
+    jacobian[4]*jacobian[4];
+  const double jj10 =
+    jacobian[0]*jacobian[1] +
+    jacobian[2]*jacobian[3] +
+    jacobian[4]*jacobian[5];
+  const double jj01 = jj10;
+  const double jj11 = 
+    jacobian[1]*jacobian[1] +
+    jacobian[3]*jacobian[3] +
+    jacobian[5]*jacobian[5];
+  *det = sqrt(jj00*jj11 - jj01*jj10);
+
+  PetscLogFlopsNoCheck(50);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -78,6 +78,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -88,15 +88,15 @@
   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)[0] = (x1 - x0) / 2.0;
+  (*jacobian)[1] = (x2 - x0) / 2.0;
+  (*jacobian)[2] = (x3 - x0) / 2.0;
+  (*jacobian)[3] = (y1 - y0) / 2.0;
+  (*jacobian)[4] = (y2 - y0) / 2.0;
+  (*jacobian)[5] = (y3 - y0) / 2.0;
+  (*jacobian)[6] = (z1 - z0) / 2.0;
+  (*jacobian)[7] = (z2 - z0) / 2.0;
+  (*jacobian)[8] = (z3 - z0) / 2.0;
 
   *det = 
     (*jacobian)[0]*((*jacobian)[4]*(*jacobian)[8] -
@@ -105,8 +105,59 @@
 		    (*jacobian)[5]*(*jacobian)[6]) +
     (*jacobian)[2]*((*jacobian)[3]*(*jacobian)[7] -
 		    (*jacobian)[4]*(*jacobian)[6]);
-  PetscLogFlopsNoCheck(23);
+
+  PetscLogFlopsNoCheck(32);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryTet3D::jacobian(double* jacobian,
+					    double* det,
+					    const double* vertices,
+					    const double* location,
+					    const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(3 == dim);
+  assert(spaceDim() == dim);
+  
+  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) / 2.0;
+  jacobian[1] = (x2 - x0) / 2.0;
+  jacobian[2] = (x3 - x0) / 2.0;
+  jacobian[3] = (y1 - y0) / 2.0;
+  jacobian[4] = (y2 - y0) / 2.0;
+  jacobian[5] = (y3 - y0) / 2.0;
+  jacobian[6] = (z1 - z0) / 2.0;
+  jacobian[7] = (z2 - z0) / 2.0;
+  jacobian[8] = (z3 - z0) / 2.0;
+
+  *det = 
+    jacobian[0]*(jacobian[4]*jacobian[8] - jacobian[5]*jacobian[7]) -
+    jacobian[1]*(jacobian[3]*jacobian[8] - jacobian[5]*jacobian[6]) +
+    jacobian[2]*(jacobian[3]*jacobian[7] - jacobian[4]*jacobian[6]);
+
+  PetscLogFlopsNoCheck(32);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -73,6 +73,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -79,16 +79,54 @@
   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)[0] = (x1 - x0) / 2.0;
+  (*jacobian)[1] = (x2 - x0) / 2.0;
+  (*jacobian)[2] = (y1 - y0) / 2.0;
+  (*jacobian)[3] = (y2 - y0) / 2.0;
 
   *det = 
     (*jacobian)[0]*(*jacobian)[3] - 
     (*jacobian)[1]*(*jacobian)[2];
-  PetscLogFlopsNoCheck(7);
+
+  PetscLogFlopsNoCheck(11);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryTri2D::jacobian(double* jacobian,
+					    double* det,
+					    const double* vertices,
+					    const double* location,
+					    const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(2 == dim);
+  assert(spaceDim() == dim);
+  
+  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) / 2.0;
+  jacobian[1] = (x2 - x0) / 2.0;
+  jacobian[2] = (y1 - y0) / 2.0;
+  jacobian[3] = (y2 - y0) / 2.0;
+
+  *det = 
+    jacobian[0]*jacobian[3] - 
+    jacobian[1]*jacobian[2];
+
+  PetscLogFlopsNoCheck(11);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -72,6 +72,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -82,14 +82,14 @@
   const double y2 = vertices[7];
   const double z2 = vertices[8];
 
-  (*jacobian)[0] = x1 - x0;
-  (*jacobian)[1] = x2 - x0;
+  (*jacobian)[0] = (x1 - x0) / 2.0;
+  (*jacobian)[1] = (x2 - x0) / 2.0;
 
-  (*jacobian)[2] = y1 - y0;
-  (*jacobian)[3] = y2 - y0;
+  (*jacobian)[2] = (y1 - y0) / 2.0;
+  (*jacobian)[3] = (y2 - y0) / 2.0;
 
-  (*jacobian)[4] = z1 - z0;
-  (*jacobian)[5] = z2 - z0;
+  (*jacobian)[4] = (z1 - z0) / 2.0;
+  (*jacobian)[5] = (z2 - z0) / 2.0;
 
   const double jj00 = 
     (*jacobian)[0]*(*jacobian)[0] +
@@ -108,5 +108,60 @@
   PetscLogFlopsNoCheck(25);
 } // jacobian
 
+// ----------------------------------------------------------------------
+// Compute Jacobian at location in cell.
+void
+pylith::feassemble::GeometryTri3D::jacobian(double* jacobian,
+					    double* det,
+					    const double* vertices,
+					    const double* location,
+					    const int dim) const
+{ // jacobian
+  assert(0 != jacobian);
+  assert(0 != det);
+  assert(0 != vertices);
+  assert(0 != location);
+  assert(3 == dim);
+  assert(spaceDim() == dim);
+  
+  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) / 2.0;
+  jacobian[1] = (x2 - x0) / 2.0;
+
+  jacobian[2] = (y1 - y0) / 2.0;
+  jacobian[3] = (y2 - y0) / 2.0;
+
+  jacobian[4] = (z1 - z0) / 2.0;
+  jacobian[5] = (z2 - z0) / 2.0;
+
+  const double jj00 = 
+    jacobian[0]*jacobian[0] +
+    jacobian[2]*jacobian[2] +
+    jacobian[4]*jacobian[4];
+  const double jj10 =
+    jacobian[0]*jacobian[1] +
+    jacobian[2]*jacobian[3] +
+    jacobian[4]*jacobian[5];
+  const double jj01 = jj10;
+  const double jj11 = 
+    jacobian[1]*jacobian[1] +
+    jacobian[3]*jacobian[3] +
+    jacobian[5]*jacobian[5];
+  *det = sqrt(jj00*jj11 - jj01*jj10);
+
+  PetscLogFlopsNoCheck(31);
+} // jacobian
+
+
 // End of file

Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh	2007-12-02 23:51:35 UTC (rev 8362)
@@ -72,6 +72,20 @@
 		const double_array& vertices,
 		const double_array& location) const;
 
+  /** Compute Jacobian at location in cell.
+   *
+   * @param jacobian Jacobian at location.
+   * @param det Determinant of Jacobian at location.
+   * @param vertices Coordinates of vertices of cell.
+   * @param location Location in reference cell at which to compute Jacobian.
+   * @param dim Dimension of coordinate system.
+   */
+  void jacobian(double* jacobian,
+		double* det,
+		const double* vertices,
+		const double* location,
+		const int dim) const;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -16,6 +16,8 @@
 
 #include "pylith/utils/array.hh" // USES double_array
 
+#include "petsc.h" // USES PetscLogFlopsNoCheck()
+
 #include <assert.h> // USES assert()
 
 // ----------------------------------------------------------------------
@@ -63,6 +65,8 @@
   _jacobianDet[0] = 1.0;
   _jacobianInv[0] = 1.0;
   _basisDeriv[0] = _basisDerivRef[0];
+
+  PetscLogFlopsNoCheck(0);
 } // computeGeometry
 
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "Quadrature1D.hh" // implementation of class methods
 
 #include "pylith/utils/array.hh" // USES double_array
+#include "CellGeometry.hh" // USES CellGeometry
 
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
@@ -66,6 +67,7 @@
       _quadPts[iQuadPt] += 
 	_basis[iQuadPt*_numBasis+iBasis]*vertCoords[iBasis];
 
+#if 0
     // Compute Jacobian at quadrature point
     // J = dx/dp = sum[i=0,n-1] (dNi/dp * xi)
     for (int iBasis=0; iBasis < _numBasis; ++iBasis)
@@ -77,10 +79,17 @@
     const double det = _jacobian[iQuadPt];
     _checkJacobianDet(det, cell);
     _jacobianDet[iQuadPt] = _jacobian[iQuadPt];
+#else
+    // Compute Jacobian and determinant of Jacobian at quadrature point
+    assert(0 != _geometry);
+    _geometry->jacobian(&_jacobian[iQuadPt], &_jacobianDet[iQuadPt],
+			vertCoords, &_quadPtsRef[iQuadPt], _spaceDim);
+    _checkJacobianDet(_jacobianDet[iQuadPt], cell);
+#endif
     
     // Compute inverse of Jacobian at quadrature point
     // Jinv = 1/j00
-    _jacobianInv[iQuadPt] = 1.0/_jacobianDet[iQuadPt];
+    _jacobianInv[iQuadPt] = 1.0 / _jacobianDet[iQuadPt];
 
     assert(_numQuadPts*_numBasis*_spaceDim == _basisDeriv.size());
     assert(_numQuadPts*_numBasis*_cellDim == _basisDerivRef.size());
@@ -94,6 +103,7 @@
 	  _basisDerivRef[iQuadPt*_numBasis+iBasis] *
 	  _jacobianInv[iQuadPt];
   } // for
+
   PetscLogFlopsNoCheck(_numQuadPts * (1 + _numBasis * 4));
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -14,6 +14,8 @@
 
 #include "Quadrature1Din2D.hh" // implementation of class methods
 
+#include "CellGeometry.hh" // USES CellGeometry
+
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
 #include <assert.h> // USES assert()
@@ -67,7 +69,8 @@
 	_quadPts[iQuadPt*_spaceDim+iDim] +=
 	  basis * vertCoords[iBasis*_spaceDim+iDim];
     } // for
-    
+
+#if 0    
     // Compute Jacobian at quadrature point
     // J = [dx/dp
     //      dy/dp]
@@ -89,6 +92,14 @@
     det = sqrt(det);
     _checkJacobianDet(det, cell);
     _jacobianDet[iQuadPt] = det;
+#else
+    // Compute Jacobian and determinant of Jacobian at quadrature point
+    assert(0 != _geometry);
+    _geometry->jacobian(&_jacobian[iQuadPt*_cellDim*_spaceDim],
+			&_jacobianDet[iQuadPt],
+			vertCoords, &_quadPtsRef[iQuadPt*_cellDim], _spaceDim);
+    _checkJacobianDet(_jacobianDet[iQuadPt], cell);
+#endif
 
     // Compute inverse of Jacobian at quadrature point
     // Jinv = 1.0/[J]
@@ -106,8 +117,9 @@
 	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
 	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
   } // for
-  PetscLogFlopsNoCheck(_numQuadPts * (1+_numBasis*_spaceDim*4+
-				      _spaceDim*3 +
+
+  PetscLogFlopsNoCheck(_numQuadPts * (1+_numBasis*_spaceDim*2+
+				      _spaceDim*1 +
 				      _numBasis*_spaceDim*_cellDim*2));
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -14,6 +14,8 @@
 
 #include "Quadrature1Din3D.hh" // implementation of class methods
 
+#include "CellGeometry.hh" // USES CellGeometry
+
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
 #include <assert.h> // USES assert()
@@ -69,6 +71,7 @@
 	  basis * vertCoords[iBasis*_spaceDim+iDim];
     } // for
     
+#if 0
     // Compute Jacobian at quadrature point
     // J = [dx/dp
     //      dy/dp
@@ -92,6 +95,14 @@
     det = sqrt(det);
     _checkJacobianDet(det, cell);
     _jacobianDet[iQuadPt] = det;
+#else
+    // Compute Jacobian and determinant of Jacobian at quadrature point
+    assert(0 != _geometry);
+    _geometry->jacobian(&_jacobian[iQuadPt*_cellDim*_spaceDim],
+			&_jacobianDet[iQuadPt],
+			vertCoords, &_quadPtsRef[iQuadPt*_cellDim], _spaceDim);
+    _checkJacobianDet(_jacobianDet[iQuadPt], cell);
+#endif
 
     // Compute inverse of Jacobian at quadrature point
     // Jinv = 1.0/[J]
@@ -109,8 +120,9 @@
 	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
 	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
   } // for
-  PetscLogFlopsNoCheck(_numQuadPts * (1+_numBasis*_spaceDim*4 +
-				      _spaceDim*3 +
+
+  PetscLogFlopsNoCheck(_numQuadPts * (1+_numBasis*_spaceDim*2 +
+				      _spaceDim*1 +
 				      _numBasis*_spaceDim*_cellDim*2));
 
 } // computeGeometry

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -14,6 +14,8 @@
 
 #include "Quadrature2D.hh" // implementation of class methods
 
+#include "CellGeometry.hh" // USES CellGeometry
+
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
 #include <assert.h> // USES assert()
@@ -67,7 +69,8 @@
 	_quadPts[iQuadPt*_spaceDim+iDim] += 
 	  basis * vertCoords[iBasis*_spaceDim+iDim];
     } // for
-    
+
+#if 0
     // Compute Jacobian at quadrature point
     // J = [dx/dp dx/dq]
     //     [dy/dp dy/dq]
@@ -96,7 +99,22 @@
       _jacobian[i01]*_jacobian[i10];
     _checkJacobianDet(det, cell);
     _jacobianDet[iQuadPt] = det;
+#else
+    // Compute Jacobian and determinant of Jacobian at quadrature point
+    assert(0 != _geometry);
+    _geometry->jacobian(&_jacobian[iQuadPt*_cellDim*_spaceDim],
+			&_jacobianDet[iQuadPt],
+			vertCoords, &_quadPtsRef[iQuadPt*_cellDim], _spaceDim);
+    _checkJacobianDet(_jacobianDet[iQuadPt], cell);
 
+    const int iJ = iQuadPt*_cellDim*_spaceDim;
+    const int i00 = iJ + 0*_spaceDim + 0;
+    const int i01 = iJ + 0*_spaceDim + 1;
+    const int i10 = iJ + 1*_spaceDim + 0;
+    const int i11 = iJ + 1*_spaceDim + 1;
+    const double det = _jacobianDet[iQuadPt];
+#endif
+
     // Compute inverse of Jacobian at quadrature point
     // Jinv = 1/det*[ j11 -j01]
     //              [-j10  j00]
@@ -115,9 +133,10 @@
 	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
 	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
   } // for
-  PetscLogFlopsNoCheck(_numQuadPts*(9 +
-				    _numBasis*_spaceDim*(2 +
-							 _cellDim*4)));
+
+  PetscLogFlopsNoCheck(_numQuadPts*(4 +
+				    _numBasis*_spaceDim*2 +
+				    _numBasis*_spaceDim*_cellDim*2));
 } // computeGeometry
 
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -14,10 +14,11 @@
 
 #include "Quadrature2Din3D.hh" // implementation of class methods
 
-#include <math.h> // USES fabs()
+#include "CellGeometry.hh" // USES CellGeometry
 
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
+#include <math.h> // USES fabs()
 #include <assert.h> // USES assert()
 #include <stdexcept> // USES internal_error
 
@@ -72,6 +73,7 @@
 	  basis * vertCoords[iBasis*_spaceDim+iDim];
     } // for
     
+#if 0
     // Compute Jacobian at quadrature point
     // J = [dx/dp dx/dq]
     //     [dy/dp dy/dq]
@@ -117,6 +119,22 @@
     const double det = sqrt(jj00*jj11 - jj01*jj10);
     _checkJacobianDet(det, cell);
     _jacobianDet[iQuadPt] = det;
+#else
+    // Compute Jacobian and determinant of Jacobian at quadrature point
+    assert(0 != _geometry);
+    _geometry->jacobian(&_jacobian[iQuadPt*_cellDim*_spaceDim],
+			&_jacobianDet[iQuadPt],
+			vertCoords, &_quadPtsRef[iQuadPt*_cellDim], _spaceDim);
+    _checkJacobianDet(_jacobianDet[iQuadPt], cell);
+
+    const int iJ = iQuadPt*_cellDim*_spaceDim;
+    const int i00 = iJ + 0*_cellDim + 0;
+    const int i01 = iJ + 0*_cellDim + 1;
+    const int i10 = iJ + 1*_cellDim + 0;
+    const int i11 = iJ + 1*_cellDim + 1;
+    const int i20 = iJ + 2*_cellDim + 0;
+    const int i21 = iJ + 2*_cellDim + 1;
+#endif
     
     // Compute inverse of Jacobian at quadrature point
     const double d01 = 
@@ -128,7 +146,6 @@
     const double d02 = 
       _jacobian[i00]*_jacobian[i21] - 
       _jacobian[i20]*_jacobian[i01];
-    PetscLogFlopsNoCheck(28 + _numBasis*_spaceDim*(2 + _cellDim*2));
     if (fabs(d01) > _minJacobian) {
       // Jinv00 = 1/d01 * J11
       // Jinv01 = 1/d01 * -J01
@@ -138,20 +155,17 @@
       _jacobianInv[iJ+1] = -_jacobian[i01] / d01; // Jinv01
       _jacobianInv[iJ+3] = -_jacobian[i10] / d01; // Jinv10
       _jacobianInv[iJ+4] =  _jacobian[i00] / d01; // Jinv11
-      PetscLogFlopsNoCheck(6);
       if (fabs(d12) > _minJacobian) {
 	// Jinv02 = 1/d12 -J11
 	// Jinv12 = 1/d12 J10
 	_jacobianInv[iJ+2] = -_jacobian[i11] / d12; // Jinv02
 	_jacobianInv[iJ+5] =  _jacobian[i10] / d12; // Jinv12
-	PetscLogFlopsNoCheck(3);
 	
       } else if (fabs(d02) > _minJacobian) {
 	// Jinv02 = 1/d02 -J01
 	// Jinv12 = 1/d02 J00
 	_jacobianInv[iJ+2] = -_jacobian[i01] / d02; // Jinv02
 	_jacobianInv[iJ+5] =  _jacobian[i00] / d02; // Jinv12
-	PetscLogFlopsNoCheck(3);
       } else {
 	_jacobianInv[iJ+2] = 0.0; // Jinv02
 	_jacobianInv[iJ+5] = 0.0; // Jinv12
@@ -165,13 +179,11 @@
       _jacobianInv[iJ+2] = -_jacobian[i01] / d02; // Jinv02
       _jacobianInv[iJ+3] = -_jacobian[i20] / d02; // Jinv10
       _jacobianInv[iJ+5] =  _jacobian[i00] / d02; // Jinv12
-      PetscLogFlopsNoCheck(6);
       if (fabs(d12) > _minJacobian) {
 	// Jinv01 = 1/d12 J21
 	// Jinv11 = 1/d12 -J20
 	_jacobianInv[iJ+1] = -_jacobian[i21] / d12; // Jinv01
 	_jacobianInv[iJ+4] =  _jacobian[i20] / d12; // Jinv11
-	PetscLogFlopsNoCheck(3);
       } else {
 	_jacobianInv[iJ+1] = 0.0; // Jinv01
 	_jacobianInv[iJ+4] = 0.0; // Jinv11
@@ -187,7 +199,6 @@
       _jacobianInv[iJ+2] = -_jacobian[i11] / d12; // Jinv02
       _jacobianInv[iJ+4] = -_jacobian[i20] / d12; // Jinv11
       _jacobianInv[iJ+5] =  _jacobian[i10] / d12; // Jinv12
-      PetscLogFlopsNoCheck(6);
     } else
       throw std::runtime_error("Could not invert Jacobian.");
 
@@ -201,7 +212,10 @@
 	    _basisDerivRef[iQuadPt*_numBasis*_cellDim + iBasis*_cellDim+jDim] *
 	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
   } // for
-  PetscLogFlopsNoCheck(_numQuadPts*_numBasis*_spaceDim*_cellDim*2);
+
+  PetscLogFlopsNoCheck(_numQuadPts*(15 +
+				    _numBasis*_spaceDim*2 +
+				    _numBasis*_spaceDim*_cellDim*2));
 } // computeGeometry
 
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -14,6 +14,8 @@
 
 #include "Quadrature3D.hh" // implementation of class methods
 
+#include "CellGeometry.hh" // USES CellGeometry
+
 #include "petsc.h" // USES PetscLogFlopsNoCheck
 
 #include <assert.h> // USES assert()
@@ -69,6 +71,7 @@
 	  basis * vertCoords[iBasis*_spaceDim+iDim];
     } // for
     
+#if 0
     // Compute Jacobian at quadrature point
     // J = [dx/dp dx/dq dx/dr]
     //     [dy/dp dy/dq dy/dr]
@@ -114,6 +117,26 @@
 		      _jacobian[i11]*_jacobian[i20]);
     _checkJacobianDet(det, cell);
     _jacobianDet[iQuadPt] = det;
+#else
+    // Compute Jacobian and determinant of Jacobian at quadrature point
+    assert(0 != _geometry);
+    _geometry->jacobian(&_jacobian[iQuadPt*_cellDim*_spaceDim],
+			&_jacobianDet[iQuadPt],
+			vertCoords, &_quadPtsRef[iQuadPt*_cellDim], _spaceDim);
+    _checkJacobianDet(_jacobianDet[iQuadPt], cell);
+
+    const int iJ = iQuadPt*_cellDim*_spaceDim;
+    const int i00 = iJ + 0*_spaceDim + 0;
+    const int i01 = iJ + 0*_spaceDim + 1;
+    const int i02 = iJ + 0*_spaceDim + 2;
+    const int i10 = iJ + 1*_spaceDim + 0;
+    const int i11 = iJ + 1*_spaceDim + 1;
+    const int i12 = iJ + 1*_spaceDim + 2;
+    const int i20 = iJ + 2*_spaceDim + 0;
+    const int i21 = iJ + 2*_spaceDim + 1;
+    const int i22 = iJ + 2*_spaceDim + 2;
+    const double det = _jacobianDet[iQuadPt];
+#endif
     
     // Compute inverse of Jacobian at quadrature point
     _jacobianInv[i00] = (_jacobian[i11]*_jacobian[i22] -
@@ -145,8 +168,9 @@
 	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
 	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
   } // for
-  PetscLogFlopsNoCheck(_numQuadPts*(47 + _numBasis*_spaceDim*(2 + _cellDim*4)));
-				    
+
+  PetscLogFlopsNoCheck(_numQuadPts*(2+36 + 
+				    _numBasis*_spaceDim*_cellDim*4));
 } // computeGeometry
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -21,7 +21,7 @@
   0.3333333333333333, 0.3333333333333333
 };
 const double pylith::bc::AbsorbingDampersDataTet4::_quadWts[] = {
-  0.5,
+  2.0,
 };
 const double pylith::bc::AbsorbingDampersDataTet4::_basis[] = {
   0.3333333333333333,

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataTet4.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataTet4.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -39,7 +39,7 @@
   0.3333333333333333, 0.3333333333333333
 };
 const double pylith::bc::NeumannDataTet4::_quadWts[] = {
-  0.5,
+  2.0,
 };
 const double pylith::bc::NeumannDataTet4::_basis[] = {
   0.3333333333333333,

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityExplicitData1DLinear.hh"
 
 #include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 #include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
 
 // ----------------------------------------------------------------------
@@ -29,6 +30,9 @@
 { // setUp
   _data = new ElasticityExplicitData1DLinear();
   _quadrature = new Quadrature1D();
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(0 != _quadrature);
+  _quadrature->refGeometry(&geometry);
   _material = new materials::ElasticStrain1D;
 
   CPPUNIT_ASSERT(0 != _data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityExplicitData1DQuadratic.hh"
 
 #include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 #include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
 
 // ----------------------------------------------------------------------
@@ -29,6 +30,9 @@
 { // setUp
   _data = new ElasticityExplicitData1DQuadratic();
   _quadrature = new Quadrature1D();
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(0 != _quadrature);
+  _quadrature->refGeometry(&geometry);
   _material = new materials::ElasticStrain1D;
 
   CPPUNIT_ASSERT(0 != _data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityExplicitData2DLinear.hh"
 
 #include "pylith/feassemble/Quadrature2D.hh" // USES Quadrature2D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
 #include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
 
 // ----------------------------------------------------------------------
@@ -29,8 +30,13 @@
 { // setUp
   _data = new ElasticityExplicitData2DLinear();
   _quadrature = new Quadrature2D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticPlaneStrain;
-
+  CPPUNIT_ASSERT(0 != _material);
+  
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
 		       std::string(_data->matType));

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityExplicitData2DQuadratic.hh"
 
 #include "pylith/feassemble/Quadrature2D.hh" // USES Quadrature2D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
 #include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
 
 // ----------------------------------------------------------------------
@@ -29,7 +30,12 @@
 { // setUp
   _data = new ElasticityExplicitData2DQuadratic();
   _quadrature = new Quadrature2D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(0 != _material);
 
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityExplicitData3DLinear.hh"
 
 #include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 
 // ----------------------------------------------------------------------
@@ -29,8 +30,13 @@
 { // setUp
   _data = new ElasticityExplicitData3DLinear();
   _quadrature = new Quadrature3D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticIsotropic3D;
-
+  CPPUNIT_ASSERT(0 != _material);
+  
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
 		       std::string(_data->matType));

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityExplicitData3DQuadratic.hh"
 
 #include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 
 // ----------------------------------------------------------------------
@@ -29,8 +30,13 @@
 { // setUp
   _data = new ElasticityExplicitData3DQuadratic();
   _quadrature = new Quadrature3D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticIsotropic3D;
-
+  CPPUNIT_ASSERT(0 != _material);
+  
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
 		       std::string(_data->matType));

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityImplicitData1DLinear.hh"
 
 #include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 #include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
 
 // ----------------------------------------------------------------------
@@ -29,6 +30,9 @@
 { // setUp
   _data = new ElasticityImplicitData1DLinear();
   _quadrature = new Quadrature1D();
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(0 != _quadrature);
+  _quadrature->refGeometry(&geometry);
   _material = new materials::ElasticStrain1D;
 
   CPPUNIT_ASSERT(0 != _data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityImplicitData1DQuadratic.hh"
 
 #include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 #include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
 
 // ----------------------------------------------------------------------
@@ -29,6 +30,9 @@
 { // setUp
   _data = new ElasticityImplicitData1DQuadratic();
   _quadrature = new Quadrature1D();
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(0 != _quadrature);
+  _quadrature->refGeometry(&geometry);
   _material = new materials::ElasticStrain1D;
 
   CPPUNIT_ASSERT(0 != _data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityImplicitData2DLinear.hh"
 
 #include "pylith/feassemble/Quadrature2D.hh" // USES Quadrature2D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
 #include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
 
 // ----------------------------------------------------------------------
@@ -29,7 +30,12 @@
 { // setUp
   _data = new ElasticityImplicitData2DLinear();
   _quadrature = new Quadrature2D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(0 != _material);
 
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityImplicitData2DQuadratic.hh"
 
 #include "pylith/feassemble/Quadrature2D.hh" // USES Quadrature2D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
 #include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
 
 // ----------------------------------------------------------------------
@@ -29,7 +30,12 @@
 { // setUp
   _data = new ElasticityImplicitData2DQuadratic();
   _quadrature = new Quadrature2D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(0 != _material);
 
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityImplicitData3DLinear.hh"
 
 #include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 
 // ----------------------------------------------------------------------
@@ -29,8 +30,13 @@
 { // setUp
   _data = new ElasticityImplicitData3DLinear();
   _quadrature = new Quadrature3D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticIsotropic3D;
-
+  CPPUNIT_ASSERT(0 != _material);
+  
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
 		       std::string(_data->matType));

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -17,6 +17,7 @@
 #include "data/ElasticityImplicitData3DQuadratic.hh"
 
 #include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 
 // ----------------------------------------------------------------------
@@ -29,8 +30,13 @@
 { // setUp
   _data = new ElasticityImplicitData3DQuadratic();
   _quadrature = new Quadrature3D();
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
   _material = new materials::ElasticIsotropic3D;
-
+  CPPUNIT_ASSERT(0 != _material);
+  
   CPPUNIT_ASSERT(0 != _data);
   CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
 		       std::string(_data->matType));

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "TestQuadrature1D.hh" // Implementation of class methods
 
 #include "pylith/feassemble/Quadrature1D.hh"
+#include "pylith/feassemble/GeometryLine1D.hh"
 
 #include "data/QuadratureData1DLinear.hh"
 #include "data/QuadratureData1DQuadratic.hh"
@@ -36,6 +37,8 @@
 pylith::feassemble::TestQuadrature1D::testLinear(void)
 { // testLinear
   Quadrature1D q;
+  GeometryLine1D geometry;
+  q.refGeometry(&geometry);
   QuadratureData1DLinear data;
 
   _testComputeGeometry(&q, data);
@@ -47,6 +50,8 @@
 pylith::feassemble::TestQuadrature1D::testQuadratic(void)
 { // testQuadratic
   Quadrature1D q;
+  GeometryLine1D geometry;
+  q.refGeometry(&geometry);
   QuadratureData1DQuadratic data;
 
   _testComputeGeometry(&q, data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "TestQuadrature1Din2D.hh" // Implementation of class methods
 
 #include "pylith/feassemble/Quadrature1Din2D.hh"
+#include "pylith/feassemble/GeometryLine2D.hh"
 
 #include "data/QuadratureData1Din2DLinear.hh"
 #include "data/QuadratureData1Din2DQuadratic.hh"
@@ -36,6 +37,8 @@
 pylith::feassemble::TestQuadrature1Din2D::testLinear(void)
 { // testLinear
   Quadrature1Din2D q;
+  GeometryLine2D geometry;
+  q.refGeometry(&geometry);
   QuadratureData1Din2DLinear data;
 
   _testComputeGeometry(&q, data);
@@ -47,6 +50,8 @@
 pylith::feassemble::TestQuadrature1Din2D::testQuadratic(void)
 { // testQuadratic
   Quadrature1Din2D q;
+  GeometryLine2D geometry;
+  q.refGeometry(&geometry);
   QuadratureData1Din2DQuadratic data;
 
   _testComputeGeometry(&q, data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature1Din3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "TestQuadrature1Din3D.hh" // Implementation of class methods
 
 #include "pylith/feassemble/Quadrature1Din3D.hh"
+#include "pylith/feassemble/GeomertyLine3D.hh"
 
 #include "data/QuadratureData1Din3DLinear.hh"
 #include "data/QuadratureData1Din3DQuadratic.hh"
@@ -36,6 +37,8 @@
 pylith::feassemble::TestQuadrature1Din3D::testLinear(void)
 { // testLinear
   Quadrature1Din3D q;
+  GeometryLine3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData1Din3DLinear data;
 
   _testComputeGeometry(&q, data);
@@ -47,6 +50,8 @@
 pylith::feassemble::TestQuadrature1Din3D::testQuadratic(void)
 { // testQuadratic
   Quadrature1Din3D q;
+  GeometryLine3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData1Din3DQuadratic data;
 
   _testComputeGeometry(&q, data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "TestQuadrature2D.hh" // Implementation of class methods
 
 #include "pylith/feassemble/Quadrature2D.hh"
+#include "pylith/feassemble/GeometryTri2D.hh"
 
 #include "data/QuadratureData2DLinear.hh"
 #include "data/QuadratureData2DQuadratic.hh"
@@ -36,6 +37,8 @@
 pylith::feassemble::TestQuadrature2D::testLinear(void)
 { // testLinear
   Quadrature2D q;
+  GeometryTri2D geometry;
+  q.refGeometry(&geometry);
   QuadratureData2DLinear data;
 
   _testComputeGeometry(&q, data);
@@ -47,6 +50,8 @@
 pylith::feassemble::TestQuadrature2D::testQuadratic(void)
 { // testQuadratic
   Quadrature2D q;
+  GeometryTri2D geometry;
+  q.refGeometry(&geometry);
   QuadratureData2DQuadratic data;
 
   _testComputeGeometry(&q, data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2Din3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature2Din3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "TestQuadrature2Din3D.hh" // Implementation of class methods
 
 #include "pylith/feassemble/Quadrature2Din3D.hh"
+#include "pylith/feassemble/GeometryTri3D.hh"
 
 #include "data/QuadratureData2Din3DLinearXYZ.hh"
 #include "data/QuadratureData2Din3DLinearXY.hh"
@@ -39,6 +40,8 @@
 pylith::feassemble::TestQuadrature2Din3D::testLinearXYZ(void)
 { // testLinearXYZ
   Quadrature2Din3D q;
+  GeometryTri3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData2Din3DLinearXYZ data;
 
   _testComputeGeometry(&q, data);
@@ -51,6 +54,8 @@
 { // testLinearXY
   Quadrature2Din3D q;
   QuadratureData2Din3DLinearXY data;
+  GeometryTri3D geometry;
+  q.refGeometry(&geometry);
 
   _testComputeGeometry(&q, data);
 } // testLinearXY
@@ -61,6 +66,8 @@
 pylith::feassemble::TestQuadrature2Din3D::testLinearYZ(void)
 { // testLinearYZ
   Quadrature2Din3D q;
+  GeometryTri3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData2Din3DLinearYZ data;
 
   _testComputeGeometry(&q, data);
@@ -72,6 +79,8 @@
 pylith::feassemble::TestQuadrature2Din3D::testLinearXZ(void)
 { // testLinearXZ
   Quadrature2Din3D q;
+  GeometryTri3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData2Din3DLinearXZ data;
 
   _testComputeGeometry(&q, data);
@@ -83,6 +92,8 @@
 pylith::feassemble::TestQuadrature2Din3D::testQuadratic(void)
 { // testQuadratic
   Quadrature2Din3D q;
+  GeometryTri3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData2Din3DQuadratic data;
 
   _testComputeGeometry(&q, data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -15,6 +15,7 @@
 #include "TestQuadrature3D.hh" // Implementation of class methods
 
 #include "pylith/feassemble/Quadrature3D.hh"
+#include "pylith/feassemble/GeometryTet3D.hh"
 
 #include "data/QuadratureData3DLinear.hh"
 #include "data/QuadratureData3DQuadratic.hh"
@@ -36,6 +37,8 @@
 pylith::feassemble::TestQuadrature3D::testLinear(void)
 { // testLinear
   Quadrature3D q;
+  GeometryTet3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData3DLinear data;
 
   _testComputeGeometry(&q, data);
@@ -47,6 +50,8 @@
 pylith::feassemble::TestQuadrature3D::testQuadratic(void)
 { // testQuadratic
   Quadrature3D q;
+  GeometryTet3D geometry;
+  q.refGeometry(&geometry);
   QuadratureData3DQuadratic data;
 
   _testComputeGeometry(&q, data);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticPlaneStrain.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticPlaneStrain.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticPlaneStrain.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -40,8 +40,10 @@
     self.id = 0
     self.label = "elastic strain 2-D"
     self.density = 2500.0
-    self.lameMu = 3.0e+10
-    self.lameLambda = self.lameMu
+    vs = 3500.0
+    vp = 6000.0
+    self.lameMu = self.density*vs*vs
+    self.lameLambda = self.density*vp*vp - 2.0*self.lameMu
     return
   
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -39,8 +39,8 @@
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_vertices[] = {
  -2.50000000e-01,
+  2.00000000e+00,
   8.75000000e-01,
-  2.00000000e+00,
 };
 
 const int pylith::feassemble::ElasticityExplicitData1DQuadratic::_cells[] = {
@@ -64,20 +64,20 @@
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_basis[] = {
   4.55341801e-01,
+ -1.22008468e-01,
   6.66666667e-01,
  -1.22008468e-01,
- -1.22008468e-01,
+  4.55341801e-01,
   6.66666667e-01,
-  4.55341801e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_basisDerivRef[] = {
  -1.07735027e+00,
+ -7.73502692e-02,
   1.15470054e+00,
- -7.73502692e-02,
   7.73502692e-02,
+  1.07735027e+00,
  -1.15470054e+00,
-  1.07735027e+00,
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_fieldTpdt[] = {
@@ -99,21 +99,21 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsResidual[] = {
- -1.11997188e+11,
-  2.56020625e+11,
- -1.43992500e+11,
+  5.60178125e+10,
+  1.36007500e+11,
+ -1.91949375e+11,
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsJacobian[] = {
   6.25000000e+06,
+ -3.12500000e+06,
   6.25000000e+06,
  -3.12500000e+06,
   6.25000000e+06,
-  2.50000000e+07,
   6.25000000e+06,
- -3.12500000e+06,
   6.25000000e+06,
   6.25000000e+06,
+  2.50000000e+07,
 };
 
 pylith::feassemble::ElasticityExplicitData1DQuadratic::ElasticityExplicitData1DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -62,13 +62,13 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_fieldTpdt[] = {
@@ -90,30 +90,30 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsResidual[] = {
- -6.72493510e+10,  1.24660275e+11,
- -9.56753283e+09, -1.09885179e+11,
-  7.68324672e+10, -1.47851793e+10,
+ -1.66790376e+10,  3.09147184e+10,
+ -2.30485101e+09, -2.72112551e+10,
+  1.89834302e+10, -3.70266130e+09,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsJacobian[] = {
+  3.81944444e+05,  0.00000000e+00,
+ -7.63888889e+05,  0.00000000e+00,
+ -7.63888889e+05,  0.00000000e+00,
+  0.00000000e+00,  3.81944444e+05,
+  0.00000000e+00, -7.63888889e+05,
+  0.00000000e+00, -7.63888889e+05,
+ -7.63888889e+05,  0.00000000e+00,
   1.52777778e+06,  0.00000000e+00,
   1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
+  0.00000000e+00, -7.63888889e+05,
   0.00000000e+00,  1.52777778e+06,
   0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
+ -7.63888889e+05,  0.00000000e+00,
   1.52777778e+06,  0.00000000e+00,
   1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
+  0.00000000e+00, -7.63888889e+05,
   0.00000000e+00,  1.52777778e+06,
   0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
 };
 
 pylith::feassemble::ElasticityExplicitData2DLinear::ElasticityExplicitData2DLinear(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -41,9 +41,9 @@
  -1.00000000e+00, -1.00000000e+00,
   1.00000000e+00,  2.00000000e-01,
  -1.50000000e+00,  5.00000000e-01,
-  0.00000000e+00, -6.00000000e-01,
-  2.50000000e-01,  3.50000000e-01,
+ -2.50000000e-01,  3.50000000e-01,
  -1.25000000e+00, -2.50000000e-01,
+  0.00000000e+00, -4.00000000e-01,
 };
 
 const int pylith::feassemble::ElasticityExplicitData2DQuadratic::_cells[] = {
@@ -60,46 +60,46 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_quadPts[] = {
-  6.66666667e-01,  1.66666667e-01,
-  1.66666667e-01,  6.66666667e-01,
-  1.66666667e-01,  1.66666667e-01,
+  0.00000000e+00, -7.50000000e-01,
+ -7.50000000e-01,  0.00000000e+00,
+ -7.50000000e-01, -7.50000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_quadWts[] = {
-  1.66666667e-01,  1.66666667e-01,  1.66666667e-01,
+  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_basis[] = {
- -1.11111111e-01,  2.22222222e-01,
- -1.11111111e-01,  4.44444444e-01,
-  4.44444444e-01,  1.11111111e-01,
- -1.11111111e-01, -1.11111111e-01,
-  2.22222222e-01,  1.11111111e-01,
-  4.44444444e-01,  4.44444444e-01,
-  2.22222222e-01, -1.11111111e-01,
- -1.11111111e-01,  4.44444444e-01,
-  1.11111111e-01,  4.44444444e-01,
+ -9.37500000e-02,  0.00000000e+00,
+ -9.37500000e-02,  2.50000000e-01,
+  1.87500000e-01,  7.50000000e-01,
+ -9.37500000e-02, -9.37500000e-02,
+  0.00000000e+00,  2.50000000e-01,
+  7.50000000e-01,  1.87500000e-01,
+  3.75000000e-01, -9.37500000e-02,
+ -9.37500000e-02,  6.25000000e-02,
+  3.75000000e-01,  3.75000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_basisDerivRef[] = {
-  3.33333333e-01,  3.33333333e-01,
-  1.66666667e+00,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
- -2.00000000e+00, -2.66666667e+00,
-  6.66666667e-01,  2.66666667e+00,
- -6.66666667e-01,  0.00000000e+00,
-  3.33333333e-01,  3.33333333e-01,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  1.66666667e+00,
-  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00,  6.66666667e-01,
- -2.66666667e+00, -2.00000000e+00,
- -1.66666667e+00, -1.66666667e+00,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
-  2.00000000e+00, -6.66666667e-01,
-  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  2.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  1.00000000e+00,
+ -2.50000000e-01,  5.00000000e-01,
+ -2.50000000e-01, -1.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
+  1.00000000e+00,  2.50000000e-01,
+ -1.00000000e+00, -2.50000000e-01,
+  5.00000000e-01, -2.50000000e-01,
+ -1.00000000e+00, -1.00000000e+00,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  1.25000000e+00,
+  1.25000000e+00, -2.50000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_fieldTpdt[] = {
@@ -123,94 +123,94 @@
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_fieldTmdt[] = {
  -2.00000000e-01, -3.00000000e-01,
   3.00000000e-01,  4.00000000e-01,
-  0.00000000e+00,  1.00000000e-01,
+  0.00000000e+00, -1.00000000e-01,
  -3.00000000e-01, -2.00000000e-01,
   1.00000000e-01,  4.00000000e-01,
  -2.00000000e-01, -6.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsResidual[] = {
-  2.04288333e+09,  9.48429385e+09,
- -1.86251338e+10,  3.66245172e+09,
- -2.49481575e+09, -3.26305061e+10,
-  1.39575797e+10,  6.18963488e+10,
- -1.90456087e+10, -8.28246824e+10,
-  2.41683699e+10,  4.04126141e+10,
+ -5.90190847e+09,  4.71767000e+10,
+ -1.39395410e+10, -6.36899121e+09,
+  4.56827962e+08,  1.65078960e+10,
+  2.42224578e+10, -8.30513314e+09,
+ -2.84017435e+10, -6.85808242e+10,
+  2.35658760e+10,  1.95703525e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsJacobian[] = {
-  1.27743484e+06,  0.00000000e+00,
- -4.66392318e+05,  0.00000000e+00,
- -8.11042524e+05,  0.00000000e+00,
-  6.31001372e+05,  0.00000000e+00,
- -1.45747599e+06,  0.00000000e+00,
-  2.86351166e+05,  0.00000000e+00,
-  0.00000000e+00,  1.27743484e+06,
-  0.00000000e+00, -4.66392318e+05,
-  0.00000000e+00, -8.11042524e+05,
-  0.00000000e+00,  6.31001372e+05,
-  0.00000000e+00, -1.45747599e+06,
-  0.00000000e+00,  2.86351166e+05,
- -4.66392318e+05,  0.00000000e+00,
-  1.19513032e+06,  0.00000000e+00,
- -7.28737997e+05,  0.00000000e+00,
-  3.01783265e+05,  0.00000000e+00,
-  3.94375857e+04,  0.00000000e+00,
- -1.62208505e+06,  0.00000000e+00,
-  0.00000000e+00, -4.66392318e+05,
-  0.00000000e+00,  1.19513032e+06,
-  0.00000000e+00, -7.28737997e+05,
-  0.00000000e+00,  3.01783265e+05,
-  0.00000000e+00,  3.94375857e+04,
-  0.00000000e+00, -1.62208505e+06,
- -8.11042524e+05,  0.00000000e+00,
- -7.28737997e+05,  0.00000000e+00,
-  1.53978052e+06,  0.00000000e+00,
- -9.32784636e+05,  0.00000000e+00,
-  1.41803841e+06,  0.00000000e+00,
-  1.33573388e+06,  0.00000000e+00,
-  0.00000000e+00, -8.11042524e+05,
-  0.00000000e+00, -7.28737997e+05,
-  0.00000000e+00,  1.53978052e+06,
-  0.00000000e+00, -9.32784636e+05,
-  0.00000000e+00,  1.41803841e+06,
-  0.00000000e+00,  1.33573388e+06,
-  6.31001372e+05,  0.00000000e+00,
-  3.01783265e+05,  0.00000000e+00,
- -9.32784636e+05,  0.00000000e+00,
-  6.34430727e+06,  0.00000000e+00,
-  4.78052126e+06,  0.00000000e+00,
-  5.10973937e+06,  0.00000000e+00,
-  0.00000000e+00,  6.31001372e+05,
-  0.00000000e+00,  3.01783265e+05,
-  0.00000000e+00, -9.32784636e+05,
-  0.00000000e+00,  6.34430727e+06,
-  0.00000000e+00,  4.78052126e+06,
-  0.00000000e+00,  5.10973937e+06,
- -1.45747599e+06,  0.00000000e+00,
-  3.94375857e+04,  0.00000000e+00,
-  1.41803841e+06,  0.00000000e+00,
-  4.78052126e+06,  0.00000000e+00,
-  7.65603567e+06,  0.00000000e+00,
-  6.15912209e+06,  0.00000000e+00,
-  0.00000000e+00, -1.45747599e+06,
-  0.00000000e+00,  3.94375857e+04,
-  0.00000000e+00,  1.41803841e+06,
-  0.00000000e+00,  4.78052126e+06,
-  0.00000000e+00,  7.65603567e+06,
-  0.00000000e+00,  6.15912209e+06,
-  2.86351166e+05,  0.00000000e+00,
- -1.62208505e+06,  0.00000000e+00,
-  1.33573388e+06,  0.00000000e+00,
-  5.10973937e+06,  0.00000000e+00,
-  6.15912209e+06,  0.00000000e+00,
-  8.06755830e+06,  0.00000000e+00,
-  0.00000000e+00,  2.86351166e+05,
-  0.00000000e+00, -1.62208505e+06,
-  0.00000000e+00,  1.33573388e+06,
-  0.00000000e+00,  5.10973937e+06,
-  0.00000000e+00,  6.15912209e+06,
-  0.00000000e+00,  8.06755830e+06,
+  2.37304687e+06,  0.00000000e+00,
+ -3.95507812e+05,  0.00000000e+00,
+ -3.95507812e+05,  0.00000000e+00,
+ -3.51562500e+05,  0.00000000e+00,
+  7.91015625e+05,  0.00000000e+00,
+  7.91015625e+05,  0.00000000e+00,
+  0.00000000e+00,  2.37304687e+06,
+  0.00000000e+00, -3.95507812e+05,
+  0.00000000e+00, -3.95507812e+05,
+  0.00000000e+00, -3.51562500e+05,
+  0.00000000e+00,  7.91015625e+05,
+  0.00000000e+00,  7.91015625e+05,
+ -3.95507812e+05,  0.00000000e+00,
+  2.63671875e+05,  0.00000000e+00,
+  1.31835937e+05,  0.00000000e+00,
+ -4.39453125e+05,  0.00000000e+00,
+ -1.58203125e+06,  0.00000000e+00,
+ -7.91015625e+05,  0.00000000e+00,
+  0.00000000e+00, -3.95507812e+05,
+  0.00000000e+00,  2.63671875e+05,
+  0.00000000e+00,  1.31835937e+05,
+  0.00000000e+00, -4.39453125e+05,
+  0.00000000e+00, -1.58203125e+06,
+  0.00000000e+00, -7.91015625e+05,
+ -3.95507812e+05,  0.00000000e+00,
+  1.31835937e+05,  0.00000000e+00,
+  2.63671875e+05,  0.00000000e+00,
+ -4.39453125e+05,  0.00000000e+00,
+ -7.91015625e+05,  0.00000000e+00,
+ -1.58203125e+06,  0.00000000e+00,
+  0.00000000e+00, -3.95507812e+05,
+  0.00000000e+00,  1.31835937e+05,
+  0.00000000e+00,  2.63671875e+05,
+  0.00000000e+00, -4.39453125e+05,
+  0.00000000e+00, -7.91015625e+05,
+  0.00000000e+00, -1.58203125e+06,
+ -3.51562500e+05,  0.00000000e+00,
+ -4.39453125e+05,  0.00000000e+00,
+ -4.39453125e+05,  0.00000000e+00,
+  1.93359375e+06,  0.00000000e+00,
+  3.86718750e+06,  0.00000000e+00,
+  3.86718750e+06,  0.00000000e+00,
+  0.00000000e+00, -3.51562500e+05,
+  0.00000000e+00, -4.39453125e+05,
+  0.00000000e+00, -4.39453125e+05,
+  0.00000000e+00,  1.93359375e+06,
+  0.00000000e+00,  3.86718750e+06,
+  0.00000000e+00,  3.86718750e+06,
+  7.91015625e+05,  0.00000000e+00,
+ -1.58203125e+06,  0.00000000e+00,
+ -7.91015625e+05,  0.00000000e+00,
+  3.86718750e+06,  0.00000000e+00,
+  1.10742188e+07,  0.00000000e+00,
+  6.32812500e+06,  0.00000000e+00,
+  0.00000000e+00,  7.91015625e+05,
+  0.00000000e+00, -1.58203125e+06,
+  0.00000000e+00, -7.91015625e+05,
+  0.00000000e+00,  3.86718750e+06,
+  0.00000000e+00,  1.10742188e+07,
+  0.00000000e+00,  6.32812500e+06,
+  7.91015625e+05,  0.00000000e+00,
+ -7.91015625e+05,  0.00000000e+00,
+ -1.58203125e+06,  0.00000000e+00,
+  3.86718750e+06,  0.00000000e+00,
+  6.32812500e+06,  0.00000000e+00,
+  1.10742188e+07,  0.00000000e+00,
+  0.00000000e+00,  7.91015625e+05,
+  0.00000000e+00, -7.91015625e+05,
+  0.00000000e+00, -1.58203125e+06,
+  0.00000000e+00,  3.86718750e+06,
+  0.00000000e+00,  6.32812500e+06,
+  0.00000000e+00,  1.10742188e+07,
 };
 
 pylith::feassemble::ElasticityExplicitData2DQuadratic::ElasticityExplicitData2DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -56,22 +56,22 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_quadPts[] = {
-  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_quadWts[] = {
-  1.66666667e-01,
+  1.33333333e+00,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_basis[] = {
-  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
   2.50000000e-01,};
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_fieldTpdt[] = {
@@ -96,61 +96,61 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_valsResidual[] = {
- -6.07557553e+09,  3.62544121e+10,  3.19547740e+09,
- -4.00872299e+09,  6.66860725e+10,  2.19186187e+10,
-  6.67405272e+09, -1.05592242e+11, -3.15008051e+10,
-  3.41327205e+09,  2.65478382e+09,  6.38200156e+09,
+ -6.07456678e+09,  3.62530671e+10,  3.19631803e+09,
+ -4.01124487e+09,  6.66859044e+10,  2.19201318e+10,
+  6.67153085e+09, -1.05592410e+11, -3.14992920e+10,
+  3.41075018e+09,  2.65461570e+09,  6.38351469e+09,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_valsJacobian[] = {
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
+  0.00000000e+00, -8.40625000e+05,  0.00000000e+00,
+  0.00000000e+00, -8.40625000e+05,  0.00000000e+00,
+  0.00000000e+00, -8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
+  0.00000000e+00,  0.00000000e+00, -8.40625000e+05,
+  0.00000000e+00,  0.00000000e+00, -8.40625000e+05,
+  0.00000000e+00,  0.00000000e+00, -8.40625000e+05,
+ -8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
+ -8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
+ -8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
   8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
   0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
   0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
 };
 
 pylith::feassemble::ElasticityExplicitData3DLinear::ElasticityExplicitData3DLinear(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -42,12 +42,12 @@
   2.00000000e+00, -2.00000000e+00, -5.00000000e-01,
   1.00000000e+00,  1.00000000e+00,  0.00000000e+00,
   2.00000000e-01,  5.00000000e-01,  2.00000000e+00,
-  7.00000000e-01, -2.10000000e+00, -8.00000000e-01,
-  3.00000000e-01, -5.00000000e-01, -5.00000000e-01,
- -2.00000000e-01, -8.00000000e-01,  5.00000000e-01,
-  1.50000000e+00, -6.00000000e-01, -2.00000000e-01,
-  6.00000000e-01,  8.00000000e-01,  9.00000000e-01,
-  1.10000000e+00, -8.00000000e-01,  7.00000000e-01,
+  1.50000000e+00, -5.00000000e-01, -2.50000000e-01,
+  2.50000000e-01, -5.00000000e-01, -5.00000000e-01,
+  7.50000000e-01, -2.00000000e+00, -7.50000000e-01,
+ -1.50000000e-01, -7.50000000e-01,  5.00000000e-01,
+  1.10000000e+00, -7.50000000e-01,  7.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,  1.00000000e+00,
 };
 
 const int pylith::feassemble::ElasticityExplicitData3DQuadratic::_cells[] = {
@@ -59,8 +59,8 @@
   1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00, -1.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
   0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00, -1.00000000e+00,  0.00000000e+00,
   0.00000000e+00, -1.00000000e+00,  0.00000000e+00,
@@ -68,73 +68,73 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_quadPts[] = {
-  8.33333333e-02,  8.33333333e-02,  8.33333333e-02,
-  7.50000000e-01,  8.33333333e-02,  8.33333333e-02,
-  8.33333333e-02,  7.50000000e-01,  8.33333333e-02,
-  8.33333333e-02,  8.33333333e-02,  7.50000000e-01,
+ -8.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+  5.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01, -8.00000000e-01,  5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_quadWts[] = {
-  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,
+  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_basis[] = {
-  3.75000000e-01, -6.94444444e-02, -6.94444444e-02,
- -6.94444444e-02,  2.50000000e-01,  2.50000000e-01,
-  2.50000000e-01,  2.77777778e-02,  2.77777778e-02,
-  2.77777778e-02, -6.94444444e-02,  3.75000000e-01,
- -6.94444444e-02, -6.94444444e-02,  2.50000000e-01,
-  2.77777778e-02,  2.77777778e-02,  2.50000000e-01,
-  2.77777778e-02,  2.50000000e-01, -6.94444444e-02,
- -6.94444444e-02,  3.75000000e-01, -6.94444444e-02,
-  2.77777778e-02,  2.50000000e-01,  2.77777778e-02,
-  2.50000000e-01,  2.50000000e-01,  2.77777778e-02,
- -6.94444444e-02, -6.94444444e-02, -6.94444444e-02,
-  3.75000000e-01,  2.77777778e-02,  2.77777778e-02,
-  2.50000000e-01,  2.77777778e-02,  2.50000000e-01,
-  2.50000000e-01,};
+  2.80000000e-01, -8.00000000e-02, -8.00000000e-02,
+ -8.00000000e-02,  4.00000000e-02,  2.80000000e-01,
+  2.80000000e-01,  2.80000000e-01,  4.00000000e-02,
+  4.00000000e-02, -4.50000000e-02,  3.75000000e-01,
+ -8.00000000e-02, -8.00000000e-02,  3.00000000e-01,
+  2.00000000e-02,  1.50000000e-01,  2.00000000e-02,
+  3.00000000e-01,  4.00000000e-02, -4.50000000e-02,
+ -8.00000000e-02,  3.75000000e-01, -8.00000000e-02,
+  3.00000000e-01,  1.50000000e-01,  2.00000000e-02,
+  2.00000000e-02,  4.00000000e-02,  3.00000000e-01,
+ -4.50000000e-02, -8.00000000e-02, -8.00000000e-02,
+  3.75000000e-01,  4.00000000e-02,  2.00000000e-02,
+  2.00000000e-02,  1.50000000e-01,  3.00000000e-01,
+  3.00000000e-01,};
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_basisDerivRef[] = {
- -2.00000000e+00, -2.00000000e+00, -2.00000000e+00,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00, -3.33333333e-01, -3.33333333e-01,
- -3.33333333e-01,  2.66666667e+00, -3.33333333e-01,
- -3.33333333e-01, -3.33333333e-01,  2.66666667e+00,
-  3.33333333e-01,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
-  2.00000000e+00,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
- -2.66666667e+00, -3.00000000e+00, -3.00000000e+00,
- -3.33333333e-01,  1.11022302e-16, -3.33333333e-01,
- -3.33333333e-01, -3.33333333e-01,  1.11022302e-16,
-  3.33333333e-01,  3.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,  0.00000000e+00,  3.00000000e+00,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  2.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
-  1.11022302e-16, -3.33333333e-01, -3.33333333e-01,
- -3.00000000e+00, -2.66666667e+00, -3.00000000e+00,
- -3.33333333e-01, -3.33333333e-01, -1.11022302e-16,
-  3.00000000e+00,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.00000000e+00,
-  3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
- -1.11022302e-16, -3.33333333e-01, -3.33333333e-01,
- -3.33333333e-01, -1.11022302e-16, -3.33333333e-01,
- -3.00000000e+00, -3.00000000e+00, -2.66666667e+00,
-  3.33333333e-01,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.00000000e+00,  3.33333333e-01,
-  3.00000000e+00,  0.00000000e+00,  3.33333333e-01,
+ -9.00000000e-01, -9.00000000e-01, -9.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01,  1.20000000e+00, -2.00000000e-01,
+  1.20000000e+00, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01,  1.20000000e+00,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  1.50000000e+00,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.40000000e+00, -1.50000000e+00, -1.50000000e+00,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  1.50000000e+00,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  1.50000000e+00,  2.00000000e-01,  0.00000000e+00,
+ -1.50000000e+00, -1.40000000e+00, -1.50000000e+00,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  1.50000000e+00,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -1.50000000e+00, -1.50000000e+00, -1.40000000e+00,
+  1.50000000e+00,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  1.50000000e+00,  2.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_fieldTpdt[] = {
@@ -164,332 +164,332 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_fieldTmdt[] = {
-  2.00000000e-01, -3.00000000e-01, -4.00000000e-01,
- -6.00000000e-01,  2.00000000e-01,  3.00000000e-01,
-  5.00000000e-01,  2.00000000e-01,  5.00000000e-01,
- -3.00000000e-01, -6.00000000e-01, -3.00000000e-01,
+  2.00000000e-01, -3.00000000e-01, -1.00000000e-01,
+ -4.00000000e-01,  2.00000000e-01,  3.00000000e-01,
+ -5.00000000e-01,  2.00000000e-01,  2.00000000e-01,
+ -3.00000000e-01, -8.00000000e-01, -3.00000000e-01,
  -5.00000000e-01, -9.00000000e-01,  4.00000000e-01,
  -3.00000000e-01, -6.00000000e-01, -8.00000000e-01,
   9.00000000e-01,  5.00000000e-01, -2.00000000e-01,
- -7.00000000e-01, -3.00000000e-01, -3.00000000e-01,
+ -7.00000000e-01, -2.00000000e-01, -9.00000000e-01,
  -5.00000000e-01, -8.00000000e-01,  4.00000000e-01,
- -4.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+ -4.00000000e-01,  5.00000000e-01, -7.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsResidual[] = {
-  1.21815001e+11, -3.29529855e+10,  2.43735803e+11,
- -2.90438333e+10, -7.34446206e+10,  2.34534559e+10,
- -2.49209347e+11, -4.63827131e+11,  2.54640449e+11,
-  3.54857040e+10, -5.62185336e+10,  3.13364516e+11,
- -1.24960815e+11, -1.83167194e+11, -1.74381553e+11,
-  2.33419532e+11,  5.42360274e+11, -3.17021730e+11,
- -9.29983954e+11, -4.08328253e+11, -2.12621459e+11,
-  1.17946612e+11,  4.72741754e+11, -2.44313311e+11,
-  2.27852241e+11,  6.71942421e+11, -5.11001827e+11,
-  5.96605680e+11, -4.69106429e+11,  6.24126033e+11,
+  2.17455103e+10, -9.08324612e+09,  2.06925719e+10,
+  6.22334143e+10, -2.47874409e+10,  7.42815158e+09,
+ -4.60062771e+10, -5.34075482e+10, -3.15147885e+10,
+ -1.00608531e+10,  4.19820053e+10, -3.87394106e+10,
+ -8.43421071e+09,  6.33100433e+10, -3.41569760e+09,
+  6.62252212e+10,  1.09238467e+11, -3.72823741e+10,
+ -9.59455989e+10, -5.29509634e+10, -2.51207822e+10,
+ -1.25344031e+10, -6.06788721e+10,  1.03667465e+10,
+ -3.24507112e+10,  5.14071214e+10,  7.32766003e+09,
+  5.52057820e+10, -6.50277434e+10,  9.02597104e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsJacobian[] = {
-  8.58871421e+06,  0.00000000e+00,  0.00000000e+00,
- -2.12223687e+06,  0.00000000e+00,  0.00000000e+00,
- -2.14181277e+06,  0.00000000e+00,  0.00000000e+00,
- -2.72868977e+06,  0.00000000e+00,  0.00000000e+00,
-  4.16422397e+06,  0.00000000e+00,  0.00000000e+00,
-  4.15443601e+06,  0.00000000e+00,  0.00000000e+00,
-  3.86099751e+06,  0.00000000e+00,  0.00000000e+00,
- -1.20103952e+06,  0.00000000e+00,  0.00000000e+00,
- -1.50426598e+06,  0.00000000e+00,  0.00000000e+00,
- -1.49447802e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.58871421e+06,  0.00000000e+00,
-  0.00000000e+00, -2.12223687e+06,  0.00000000e+00,
-  0.00000000e+00, -2.14181277e+06,  0.00000000e+00,
-  0.00000000e+00, -2.72868977e+06,  0.00000000e+00,
-  0.00000000e+00,  4.16422397e+06,  0.00000000e+00,
-  0.00000000e+00,  4.15443601e+06,  0.00000000e+00,
-  0.00000000e+00,  3.86099751e+06,  0.00000000e+00,
-  0.00000000e+00, -1.20103952e+06,  0.00000000e+00,
-  0.00000000e+00, -1.50426598e+06,  0.00000000e+00,
-  0.00000000e+00, -1.49447802e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.58871421e+06,
-  0.00000000e+00,  0.00000000e+00, -2.12223687e+06,
-  0.00000000e+00,  0.00000000e+00, -2.14181277e+06,
-  0.00000000e+00,  0.00000000e+00, -2.72868977e+06,
-  0.00000000e+00,  0.00000000e+00,  4.16422397e+06,
-  0.00000000e+00,  0.00000000e+00,  4.15443601e+06,
-  0.00000000e+00,  0.00000000e+00,  3.86099751e+06,
-  0.00000000e+00,  0.00000000e+00, -1.20103952e+06,
-  0.00000000e+00,  0.00000000e+00, -1.50426598e+06,
-  0.00000000e+00,  0.00000000e+00, -1.49447802e+06,
- -2.12223687e+06,  0.00000000e+00,  0.00000000e+00,
-  7.46054777e+06,  0.00000000e+00,  0.00000000e+00,
- -1.88541131e+06,  0.00000000e+00,  0.00000000e+00,
- -2.47228831e+06,  0.00000000e+00,  0.00000000e+00,
-  3.24117870e+06,  0.00000000e+00,  0.00000000e+00,
- -1.43180084e+06,  0.00000000e+00,  0.00000000e+00,
- -1.72523934e+06,  0.00000000e+00,  0.00000000e+00,
-  3.35959148e+06,  0.00000000e+00,  0.00000000e+00,
- -1.60682656e+06,  0.00000000e+00,  0.00000000e+00,
-  3.06615298e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -2.12223687e+06,  0.00000000e+00,
-  0.00000000e+00,  7.46054777e+06,  0.00000000e+00,
-  0.00000000e+00, -1.88541131e+06,  0.00000000e+00,
-  0.00000000e+00, -2.47228831e+06,  0.00000000e+00,
-  0.00000000e+00,  3.24117870e+06,  0.00000000e+00,
-  0.00000000e+00, -1.43180084e+06,  0.00000000e+00,
-  0.00000000e+00, -1.72523934e+06,  0.00000000e+00,
-  0.00000000e+00,  3.35959148e+06,  0.00000000e+00,
-  0.00000000e+00, -1.60682656e+06,  0.00000000e+00,
-  0.00000000e+00,  3.06615298e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -2.12223687e+06,
-  0.00000000e+00,  0.00000000e+00,  7.46054777e+06,
-  0.00000000e+00,  0.00000000e+00, -1.88541131e+06,
-  0.00000000e+00,  0.00000000e+00, -2.47228831e+06,
-  0.00000000e+00,  0.00000000e+00,  3.24117870e+06,
-  0.00000000e+00,  0.00000000e+00, -1.43180084e+06,
-  0.00000000e+00,  0.00000000e+00, -1.72523934e+06,
-  0.00000000e+00,  0.00000000e+00,  3.35959148e+06,
-  0.00000000e+00,  0.00000000e+00, -1.60682656e+06,
-  0.00000000e+00,  0.00000000e+00,  3.06615298e+06,
- -2.14181277e+06,  0.00000000e+00,  0.00000000e+00,
- -1.88541131e+06,  0.00000000e+00,  0.00000000e+00,
-  7.54668174e+06,  0.00000000e+00,  0.00000000e+00,
- -2.49186421e+06,  0.00000000e+00,  0.00000000e+00,
- -1.41418253e+06,  0.00000000e+00,  0.00000000e+00,
-  3.30186400e+06,  0.00000000e+00,  0.00000000e+00,
- -1.71740898e+06,  0.00000000e+00,  0.00000000e+00,
-  3.43006473e+06,  0.00000000e+00,  0.00000000e+00,
-  3.12683828e+06,  0.00000000e+00,  0.00000000e+00,
- -1.58920825e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -2.14181277e+06,  0.00000000e+00,
-  0.00000000e+00, -1.88541131e+06,  0.00000000e+00,
-  0.00000000e+00,  7.54668174e+06,  0.00000000e+00,
-  0.00000000e+00, -2.49186421e+06,  0.00000000e+00,
-  0.00000000e+00, -1.41418253e+06,  0.00000000e+00,
-  0.00000000e+00,  3.30186400e+06,  0.00000000e+00,
-  0.00000000e+00, -1.71740898e+06,  0.00000000e+00,
-  0.00000000e+00,  3.43006473e+06,  0.00000000e+00,
-  0.00000000e+00,  3.12683828e+06,  0.00000000e+00,
-  0.00000000e+00, -1.58920825e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -2.14181277e+06,
-  0.00000000e+00,  0.00000000e+00, -1.88541131e+06,
-  0.00000000e+00,  0.00000000e+00,  7.54668174e+06,
-  0.00000000e+00,  0.00000000e+00, -2.49186421e+06,
-  0.00000000e+00,  0.00000000e+00, -1.41418253e+06,
-  0.00000000e+00,  0.00000000e+00,  3.30186400e+06,
-  0.00000000e+00,  0.00000000e+00, -1.71740898e+06,
-  0.00000000e+00,  0.00000000e+00,  3.43006473e+06,
-  0.00000000e+00,  0.00000000e+00,  3.12683828e+06,
-  0.00000000e+00,  0.00000000e+00, -1.58920825e+06,
- -2.72868977e+06,  0.00000000e+00,  0.00000000e+00,
- -2.47228831e+06,  0.00000000e+00,  0.00000000e+00,
- -2.49186421e+06,  0.00000000e+00,  0.00000000e+00,
-  1.01289405e+07,  0.00000000e+00,  0.00000000e+00,
- -1.17943173e+06,  0.00000000e+00,  0.00000000e+00,
- -1.18921968e+06,  0.00000000e+00,  0.00000000e+00,
-  5.12118270e+06,  0.00000000e+00,  0.00000000e+00,
- -1.06101895e+06,  0.00000000e+00,  0.00000000e+00,
-  5.23959548e+06,  0.00000000e+00,  0.00000000e+00,
-  5.24938343e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -2.72868977e+06,  0.00000000e+00,
-  0.00000000e+00, -2.47228831e+06,  0.00000000e+00,
-  0.00000000e+00, -2.49186421e+06,  0.00000000e+00,
-  0.00000000e+00,  1.01289405e+07,  0.00000000e+00,
-  0.00000000e+00, -1.17943173e+06,  0.00000000e+00,
-  0.00000000e+00, -1.18921968e+06,  0.00000000e+00,
-  0.00000000e+00,  5.12118270e+06,  0.00000000e+00,
-  0.00000000e+00, -1.06101895e+06,  0.00000000e+00,
-  0.00000000e+00,  5.23959548e+06,  0.00000000e+00,
-  0.00000000e+00,  5.24938343e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -2.72868977e+06,
-  0.00000000e+00,  0.00000000e+00, -2.47228831e+06,
-  0.00000000e+00,  0.00000000e+00, -2.49186421e+06,
-  0.00000000e+00,  0.00000000e+00,  1.01289405e+07,
-  0.00000000e+00,  0.00000000e+00, -1.17943173e+06,
-  0.00000000e+00,  0.00000000e+00, -1.18921968e+06,
-  0.00000000e+00,  0.00000000e+00,  5.12118270e+06,
-  0.00000000e+00,  0.00000000e+00, -1.06101895e+06,
-  0.00000000e+00,  0.00000000e+00,  5.23959548e+06,
-  0.00000000e+00,  0.00000000e+00,  5.24938343e+06,
-  4.16422397e+06,  0.00000000e+00,  0.00000000e+00,
-  3.24117870e+06,  0.00000000e+00,  0.00000000e+00,
- -1.41418253e+06,  0.00000000e+00,  0.00000000e+00,
- -1.17943173e+06,  0.00000000e+00,  0.00000000e+00,
-  6.50957790e+06,  0.00000000e+00,  0.00000000e+00,
-  4.18189729e+06,  0.00000000e+00,  0.00000000e+00,
-  4.29927269e+06,  0.00000000e+00,  0.00000000e+00,
-  3.72037466e+06,  0.00000000e+00,  0.00000000e+00,
-  1.51006944e+06,  0.00000000e+00,  0.00000000e+00,
-  3.83775006e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  4.16422397e+06,  0.00000000e+00,
-  0.00000000e+00,  3.24117870e+06,  0.00000000e+00,
-  0.00000000e+00, -1.41418253e+06,  0.00000000e+00,
-  0.00000000e+00, -1.17943173e+06,  0.00000000e+00,
-  0.00000000e+00,  6.50957790e+06,  0.00000000e+00,
-  0.00000000e+00,  4.18189729e+06,  0.00000000e+00,
-  0.00000000e+00,  4.29927269e+06,  0.00000000e+00,
-  0.00000000e+00,  3.72037466e+06,  0.00000000e+00,
-  0.00000000e+00,  1.51006944e+06,  0.00000000e+00,
-  0.00000000e+00,  3.83775006e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  4.16422397e+06,
-  0.00000000e+00,  0.00000000e+00,  3.24117870e+06,
-  0.00000000e+00,  0.00000000e+00, -1.41418253e+06,
-  0.00000000e+00,  0.00000000e+00, -1.17943173e+06,
-  0.00000000e+00,  0.00000000e+00,  6.50957790e+06,
-  0.00000000e+00,  0.00000000e+00,  4.18189729e+06,
-  0.00000000e+00,  0.00000000e+00,  4.29927269e+06,
-  0.00000000e+00,  0.00000000e+00,  3.72037466e+06,
-  0.00000000e+00,  0.00000000e+00,  1.51006944e+06,
-  0.00000000e+00,  0.00000000e+00,  3.83775006e+06,
-  4.15443601e+06,  0.00000000e+00,  0.00000000e+00,
- -1.43180084e+06,  0.00000000e+00,  0.00000000e+00,
-  3.30186400e+06,  0.00000000e+00,  0.00000000e+00,
- -1.18921968e+06,  0.00000000e+00,  0.00000000e+00,
-  4.18189729e+06,  0.00000000e+00,  0.00000000e+00,
-  6.54872971e+06,  0.00000000e+00,  0.00000000e+00,
-  4.30318787e+06,  0.00000000e+00,  0.00000000e+00,
-  3.75561128e+06,  0.00000000e+00,  0.00000000e+00,
-  3.87690186e+06,  0.00000000e+00,  0.00000000e+00,
-  1.51006944e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  4.15443601e+06,  0.00000000e+00,
-  0.00000000e+00, -1.43180084e+06,  0.00000000e+00,
-  0.00000000e+00,  3.30186400e+06,  0.00000000e+00,
-  0.00000000e+00, -1.18921968e+06,  0.00000000e+00,
-  0.00000000e+00,  4.18189729e+06,  0.00000000e+00,
-  0.00000000e+00,  6.54872971e+06,  0.00000000e+00,
-  0.00000000e+00,  4.30318787e+06,  0.00000000e+00,
-  0.00000000e+00,  3.75561128e+06,  0.00000000e+00,
-  0.00000000e+00,  3.87690186e+06,  0.00000000e+00,
-  0.00000000e+00,  1.51006944e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  4.15443601e+06,
-  0.00000000e+00,  0.00000000e+00, -1.43180084e+06,
-  0.00000000e+00,  0.00000000e+00,  3.30186400e+06,
-  0.00000000e+00,  0.00000000e+00, -1.18921968e+06,
-  0.00000000e+00,  0.00000000e+00,  4.18189729e+06,
-  0.00000000e+00,  0.00000000e+00,  6.54872971e+06,
-  0.00000000e+00,  0.00000000e+00,  4.30318787e+06,
-  0.00000000e+00,  0.00000000e+00,  3.75561128e+06,
-  0.00000000e+00,  0.00000000e+00,  3.87690186e+06,
-  0.00000000e+00,  0.00000000e+00,  1.51006944e+06,
-  3.86099751e+06,  0.00000000e+00,  0.00000000e+00,
- -1.72523934e+06,  0.00000000e+00,  0.00000000e+00,
- -1.71740898e+06,  0.00000000e+00,  0.00000000e+00,
-  5.12118270e+06,  0.00000000e+00,  0.00000000e+00,
-  4.29927269e+06,  0.00000000e+00,  0.00000000e+00,
-  4.30318787e+06,  0.00000000e+00,  0.00000000e+00,
-  7.72248371e+06,  0.00000000e+00,  0.00000000e+00,
-  1.51006944e+06,  0.00000000e+00,  0.00000000e+00,
-  4.93328046e+06,  0.00000000e+00,  0.00000000e+00,
-  4.92936528e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  3.86099751e+06,  0.00000000e+00,
-  0.00000000e+00, -1.72523934e+06,  0.00000000e+00,
-  0.00000000e+00, -1.71740898e+06,  0.00000000e+00,
-  0.00000000e+00,  5.12118270e+06,  0.00000000e+00,
-  0.00000000e+00,  4.29927269e+06,  0.00000000e+00,
-  0.00000000e+00,  4.30318787e+06,  0.00000000e+00,
-  0.00000000e+00,  7.72248371e+06,  0.00000000e+00,
-  0.00000000e+00,  1.51006944e+06,  0.00000000e+00,
-  0.00000000e+00,  4.93328046e+06,  0.00000000e+00,
-  0.00000000e+00,  4.92936528e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  3.86099751e+06,
-  0.00000000e+00,  0.00000000e+00, -1.72523934e+06,
-  0.00000000e+00,  0.00000000e+00, -1.71740898e+06,
-  0.00000000e+00,  0.00000000e+00,  5.12118270e+06,
-  0.00000000e+00,  0.00000000e+00,  4.29927269e+06,
-  0.00000000e+00,  0.00000000e+00,  4.30318787e+06,
-  0.00000000e+00,  0.00000000e+00,  7.72248371e+06,
-  0.00000000e+00,  0.00000000e+00,  1.51006944e+06,
-  0.00000000e+00,  0.00000000e+00,  4.93328046e+06,
-  0.00000000e+00,  0.00000000e+00,  4.92936528e+06,
- -1.20103952e+06,  0.00000000e+00,  0.00000000e+00,
-  3.35959148e+06,  0.00000000e+00,  0.00000000e+00,
-  3.43006473e+06,  0.00000000e+00,  0.00000000e+00,
- -1.06101895e+06,  0.00000000e+00,  0.00000000e+00,
-  3.72037466e+06,  0.00000000e+00,  0.00000000e+00,
-  3.75561128e+06,  0.00000000e+00,  0.00000000e+00,
-  1.51006944e+06,  0.00000000e+00,  0.00000000e+00,
-  6.03592678e+06,  0.00000000e+00,  0.00000000e+00,
-  3.82562157e+06,  0.00000000e+00,  0.00000000e+00,
-  3.79038495e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -1.20103952e+06,  0.00000000e+00,
-  0.00000000e+00,  3.35959148e+06,  0.00000000e+00,
-  0.00000000e+00,  3.43006473e+06,  0.00000000e+00,
-  0.00000000e+00, -1.06101895e+06,  0.00000000e+00,
-  0.00000000e+00,  3.72037466e+06,  0.00000000e+00,
-  0.00000000e+00,  3.75561128e+06,  0.00000000e+00,
-  0.00000000e+00,  1.51006944e+06,  0.00000000e+00,
-  0.00000000e+00,  6.03592678e+06,  0.00000000e+00,
-  0.00000000e+00,  3.82562157e+06,  0.00000000e+00,
-  0.00000000e+00,  3.79038495e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -1.20103952e+06,
-  0.00000000e+00,  0.00000000e+00,  3.35959148e+06,
-  0.00000000e+00,  0.00000000e+00,  3.43006473e+06,
-  0.00000000e+00,  0.00000000e+00, -1.06101895e+06,
-  0.00000000e+00,  0.00000000e+00,  3.72037466e+06,
-  0.00000000e+00,  0.00000000e+00,  3.75561128e+06,
-  0.00000000e+00,  0.00000000e+00,  1.51006944e+06,
-  0.00000000e+00,  0.00000000e+00,  6.03592678e+06,
-  0.00000000e+00,  0.00000000e+00,  3.82562157e+06,
-  0.00000000e+00,  0.00000000e+00,  3.79038495e+06,
- -1.50426598e+06,  0.00000000e+00,  0.00000000e+00,
- -1.60682656e+06,  0.00000000e+00,  0.00000000e+00,
-  3.12683828e+06,  0.00000000e+00,  0.00000000e+00,
-  5.23959548e+06,  0.00000000e+00,  0.00000000e+00,
-  1.51006944e+06,  0.00000000e+00,  0.00000000e+00,
-  3.87690186e+06,  0.00000000e+00,  0.00000000e+00,
-  4.93328046e+06,  0.00000000e+00,  0.00000000e+00,
-  3.82562157e+06,  0.00000000e+00,  0.00000000e+00,
-  7.24883259e+06,  0.00000000e+00,  0.00000000e+00,
-  4.88200017e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -1.50426598e+06,  0.00000000e+00,
-  0.00000000e+00, -1.60682656e+06,  0.00000000e+00,
-  0.00000000e+00,  3.12683828e+06,  0.00000000e+00,
-  0.00000000e+00,  5.23959548e+06,  0.00000000e+00,
-  0.00000000e+00,  1.51006944e+06,  0.00000000e+00,
-  0.00000000e+00,  3.87690186e+06,  0.00000000e+00,
-  0.00000000e+00,  4.93328046e+06,  0.00000000e+00,
-  0.00000000e+00,  3.82562157e+06,  0.00000000e+00,
-  0.00000000e+00,  7.24883259e+06,  0.00000000e+00,
-  0.00000000e+00,  4.88200017e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -1.50426598e+06,
-  0.00000000e+00,  0.00000000e+00, -1.60682656e+06,
-  0.00000000e+00,  0.00000000e+00,  3.12683828e+06,
-  0.00000000e+00,  0.00000000e+00,  5.23959548e+06,
-  0.00000000e+00,  0.00000000e+00,  1.51006944e+06,
-  0.00000000e+00,  0.00000000e+00,  3.87690186e+06,
-  0.00000000e+00,  0.00000000e+00,  4.93328046e+06,
-  0.00000000e+00,  0.00000000e+00,  3.82562157e+06,
-  0.00000000e+00,  0.00000000e+00,  7.24883259e+06,
-  0.00000000e+00,  0.00000000e+00,  4.88200017e+06,
- -1.49447802e+06,  0.00000000e+00,  0.00000000e+00,
-  3.06615298e+06,  0.00000000e+00,  0.00000000e+00,
- -1.58920825e+06,  0.00000000e+00,  0.00000000e+00,
-  5.24938343e+06,  0.00000000e+00,  0.00000000e+00,
-  3.83775006e+06,  0.00000000e+00,  0.00000000e+00,
-  1.51006944e+06,  0.00000000e+00,  0.00000000e+00,
-  4.92936528e+06,  0.00000000e+00,  0.00000000e+00,
-  3.79038495e+06,  0.00000000e+00,  0.00000000e+00,
-  4.88200017e+06,  0.00000000e+00,  0.00000000e+00,
-  7.20968078e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -1.49447802e+06,  0.00000000e+00,
-  0.00000000e+00,  3.06615298e+06,  0.00000000e+00,
-  0.00000000e+00, -1.58920825e+06,  0.00000000e+00,
-  0.00000000e+00,  5.24938343e+06,  0.00000000e+00,
-  0.00000000e+00,  3.83775006e+06,  0.00000000e+00,
-  0.00000000e+00,  1.51006944e+06,  0.00000000e+00,
-  0.00000000e+00,  4.92936528e+06,  0.00000000e+00,
-  0.00000000e+00,  3.79038495e+06,  0.00000000e+00,
-  0.00000000e+00,  4.88200017e+06,  0.00000000e+00,
-  0.00000000e+00,  7.20968078e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -1.49447802e+06,
-  0.00000000e+00,  0.00000000e+00,  3.06615298e+06,
-  0.00000000e+00,  0.00000000e+00, -1.58920825e+06,
-  0.00000000e+00,  0.00000000e+00,  5.24938343e+06,
-  0.00000000e+00,  0.00000000e+00,  3.83775006e+06,
-  0.00000000e+00,  0.00000000e+00,  1.51006944e+06,
-  0.00000000e+00,  0.00000000e+00,  4.92936528e+06,
-  0.00000000e+00,  0.00000000e+00,  3.79038495e+06,
-  0.00000000e+00,  0.00000000e+00,  4.88200017e+06,
-  0.00000000e+00,  0.00000000e+00,  7.20968078e+06,
+  1.50251107e+06,  0.00000000e+00,  0.00000000e+00,
+ -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
+ -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
+  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
+  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
+  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
+ -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
+ -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.50251107e+06,  0.00000000e+00,
+  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
+  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
+  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
+  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
+  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
+  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
+  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
+  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
+  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.50251107e+06,
+  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
+  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
+  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
+  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
+  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
+  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
+  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
+  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
+  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
+ -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
+  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
+ -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+ -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
+  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
+  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
+  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
+  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
+  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
+  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
+ -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
+  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
+ -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+ -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
+  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
+  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
+  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
+  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
+  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
+  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+ -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
+ -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
+  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
+ -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
+  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
+  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
+  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
+  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
+  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
+  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
+  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
+  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+ -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+ -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
+  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
+  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
+  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
+  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
+  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
+  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
+  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
+  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
+  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
+  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
+  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
+  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
+  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
+  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
+  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
+  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
+  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
+  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
+  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
+  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
+  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
+  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
+  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
+  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
+  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
+  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
+  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
+  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
+  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+ -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
+  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
+  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
+  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
+  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
+  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
+  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
+  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
+  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
+  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
+  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
+  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
+  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
+  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
+  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
+  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+ -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+ -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
+  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
+  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
+  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
+  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
+  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
+  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
+ -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
+ -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
+  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
+  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
+  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
+  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
+  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
+  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
+  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
+  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
+  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
+  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
+  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
+  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
+  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
+  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
 };
 
 pylith::feassemble::ElasticityExplicitData3DQuadratic::ElasticityExplicitData3DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -39,8 +39,8 @@
 
 const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_vertices[] = {
  -2.50000000e-01,
+  2.00000000e+00,
   8.75000000e-01,
-  2.00000000e+00,
 };
 
 const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_cells[] = {
@@ -64,20 +64,20 @@
 
 const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_basis[] = {
   4.55341801e-01,
+ -1.22008468e-01,
   6.66666667e-01,
  -1.22008468e-01,
- -1.22008468e-01,
+  4.55341801e-01,
   6.66666667e-01,
-  4.55341801e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_basisDerivRef[] = {
  -1.07735027e+00,
+ -7.73502692e-02,
   1.15470054e+00,
- -7.73502692e-02,
   7.73502692e-02,
+  1.07735027e+00,
  -1.15470054e+00,
-  1.07735027e+00,
 };
 
 const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_fieldTpdt[] = {
@@ -99,21 +99,21 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_valsResidual[] = {
- -1.34666667e+11,
-  3.09333333e+11,
- -1.74666667e+11,
+  6.93333333e+10,
+  1.65333333e+11,
+ -2.34666667e+11,
 };
 
 const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_valsJacobian[] = {
   9.33333333e+10,
+  1.33333333e+10,
  -1.06666667e+11,
   1.33333333e+10,
+  9.33333333e+10,
  -1.06666667e+11,
-  2.13333333e+11,
  -1.06666667e+11,
-  1.33333333e+10,
  -1.06666667e+11,
-  9.33333333e+10,
+  2.13333333e+11,
 };
 
 pylith::feassemble::ElasticityImplicitData1DQuadratic::ElasticityImplicitData1DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -62,13 +62,13 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DLinear::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::ElasticityImplicitData2DLinear::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DLinear::_fieldTpdt[] = {
@@ -90,30 +90,30 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DLinear::_valsResidual[] = {
- -3.94636364e+10,  1.61318182e+11,
- -2.24181818e+10, -1.54909091e+11,
-  6.18818182e+10, -6.40909091e+09,
+ -9.53153409e+09,  4.01670455e+10,
+ -5.56704545e+09, -3.86085227e+10,
+  1.50985795e+10, -1.55852273e+09,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DLinear::_valsJacobian[] = {
-  4.30909091e+10, -2.48181818e+10,
- -1.55454545e+10,  7.90909091e+09,
- -2.75454545e+10,  1.69090909e+10,
- -2.48181818e+10,  7.58181818e+10,
-  7.90909091e+09, -6.19090909e+10,
-  1.69090909e+10, -1.39090909e+10,
- -1.55454545e+10,  7.90909091e+09,
-  2.12727273e+10,  6.54545455e+09,
- -5.72727273e+09, -1.44545455e+10,
-  7.90909091e+09, -6.19090909e+10,
-  6.54545455e+09,  5.94545455e+10,
- -1.44545455e+10,  2.45454545e+09,
- -2.75454545e+10,  1.69090909e+10,
- -5.72727273e+09, -1.44545455e+10,
-  3.32727273e+10, -2.45454545e+09,
-  1.69090909e+10, -1.39090909e+10,
- -1.44545455e+10,  2.45454545e+09,
- -2.45454545e+09,  1.14545455e+10,
+  1.08927557e+10, -6.13991477e+09,
+ -3.99715909e+09,  1.83948864e+09,
+ -6.89559659e+09,  4.30042614e+09,
+ -6.13991477e+09,  1.89893466e+10,
+  2.07386364e+09, -1.54673295e+10,
+  4.06605114e+09, -3.52201705e+09,
+ -3.99715909e+09,  2.07386364e+09,
+  5.42045455e+09,  1.61931818e+09,
+ -1.42329545e+09, -3.69318182e+09,
+  1.83948864e+09, -1.54673295e+10,
+  1.61931818e+09,  1.48664773e+10,
+ -3.45880682e+09,  6.00852273e+08,
+ -6.89559659e+09,  4.06605114e+09,
+ -1.42329545e+09, -3.45880682e+09,
+  8.31889205e+09, -6.07244318e+08,
+  4.30042614e+09, -3.52201705e+09,
+ -3.69318182e+09,  6.00852273e+08,
+ -6.07244318e+08,  2.92116477e+09,
 };
 
 pylith::feassemble::ElasticityImplicitData2DLinear::ElasticityImplicitData2DLinear(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -41,9 +41,9 @@
  -1.00000000e+00, -1.00000000e+00,
   1.00000000e+00,  2.00000000e-01,
  -1.50000000e+00,  5.00000000e-01,
-  0.00000000e+00, -6.00000000e-01,
-  2.50000000e-01,  3.50000000e-01,
+ -2.50000000e-01,  3.50000000e-01,
  -1.25000000e+00, -2.50000000e-01,
+  0.00000000e+00, -4.00000000e-01,
 };
 
 const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_cells[] = {
@@ -60,46 +60,46 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_quadPts[] = {
-  6.66666667e-01,  1.66666667e-01,
-  1.66666667e-01,  6.66666667e-01,
-  1.66666667e-01,  1.66666667e-01,
+  0.00000000e+00, -7.50000000e-01,
+ -7.50000000e-01,  0.00000000e+00,
+ -7.50000000e-01, -7.50000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_quadWts[] = {
-  1.66666667e-01,  1.66666667e-01,  1.66666667e-01,
+  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_basis[] = {
- -1.11111111e-01,  2.22222222e-01,
- -1.11111111e-01,  4.44444444e-01,
-  4.44444444e-01,  1.11111111e-01,
- -1.11111111e-01, -1.11111111e-01,
-  2.22222222e-01,  1.11111111e-01,
-  4.44444444e-01,  4.44444444e-01,
-  2.22222222e-01, -1.11111111e-01,
- -1.11111111e-01,  4.44444444e-01,
-  1.11111111e-01,  4.44444444e-01,
+ -9.37500000e-02,  0.00000000e+00,
+ -9.37500000e-02,  2.50000000e-01,
+  1.87500000e-01,  7.50000000e-01,
+ -9.37500000e-02, -9.37500000e-02,
+  0.00000000e+00,  2.50000000e-01,
+  7.50000000e-01,  1.87500000e-01,
+  3.75000000e-01, -9.37500000e-02,
+ -9.37500000e-02,  6.25000000e-02,
+  3.75000000e-01,  3.75000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_basisDerivRef[] = {
-  3.33333333e-01,  3.33333333e-01,
-  1.66666667e+00,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
- -2.00000000e+00, -2.66666667e+00,
-  6.66666667e-01,  2.66666667e+00,
- -6.66666667e-01,  0.00000000e+00,
-  3.33333333e-01,  3.33333333e-01,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  1.66666667e+00,
-  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00,  6.66666667e-01,
- -2.66666667e+00, -2.00000000e+00,
- -1.66666667e+00, -1.66666667e+00,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
-  2.00000000e+00, -6.66666667e-01,
-  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  2.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  1.00000000e+00,
+ -2.50000000e-01,  5.00000000e-01,
+ -2.50000000e-01, -1.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
+  1.00000000e+00,  2.50000000e-01,
+ -1.00000000e+00, -2.50000000e-01,
+  5.00000000e-01, -2.50000000e-01,
+ -1.00000000e+00, -1.00000000e+00,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  1.25000000e+00,
+  1.25000000e+00, -2.50000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_fieldTpdt[] = {
@@ -123,94 +123,94 @@
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_fieldTmdt[] = {
  -2.00000000e-01, -3.00000000e-01,
   3.00000000e-01,  4.00000000e-01,
-  0.00000000e+00,  1.00000000e-01,
+  0.00000000e+00, -1.00000000e-01,
  -3.00000000e-01, -2.00000000e-01,
   1.00000000e-01,  4.00000000e-01,
  -2.00000000e-01, -6.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_valsResidual[] = {
- -7.03759529e+08, -4.10320114e+10,
- -3.70610450e+10,  2.11260736e+10,
- -1.31513835e+10, -1.25323831e+11,
-  4.33964587e+10,  1.47829671e+11,
- -5.10800854e+10, -2.16829139e+11,
-  5.85998147e+10,  2.14229238e+11,
+ -5.09484809e+10,  1.18145443e+11,
+ -3.15539280e+10, -1.82132161e+10,
+ -9.14592014e+09,  5.34705729e+10,
+  8.27192491e+10, -7.35780599e+10,
+ -1.26531033e+10, -2.09373503e+11,
+  2.15821832e+10,  1.29548763e+11,
 };
 
 const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_valsJacobian[] = {
-  3.10620755e+10,  1.51816443e+10,
-  4.03724615e+09,  4.59327234e+09,
-  7.44201344e+09, -1.16900072e+09,
- -1.88162512e+10, -1.81941422e+10,
- -5.31233692e+09, -2.78656421e+09,
- -1.84127470e+10,  2.37479043e+09,
-  1.51816443e+10,  7.32318930e+10,
-  4.59327234e+09, -7.39325357e+08,
- -1.16900072e+09,  2.72257870e+10,
- -1.81941422e+10, -4.08528660e+09,
- -2.78656421e+09, -6.82095745e+09,
-  2.37479043e+09, -8.88121106e+10,
-  4.03724615e+09,  4.59327234e+09,
-  5.52513202e+10, -1.36681382e+10,
-  1.16542644e+10, -7.01226095e+09,
-  3.42514288e+09, -2.14282837e+10,
- -6.14617630e+10,  3.14248548e+10,
- -1.29062107e+10,  6.09055570e+09,
-  4.59327234e+09, -7.39325357e+08,
- -1.36681382e+10,  2.59749439e+10,
- -7.01226095e+09,  7.52420433e+09,
- -2.14282837e+10,  2.63944418e+10,
-  3.14248548e+10, -5.19138623e+10,
-  6.09055570e+09, -7.24040229e+09,
-  7.44201344e+09, -1.16900072e+09,
-  1.16542644e+10, -7.01226095e+09,
-  4.11450311e+10, -2.14269305e+10,
- -4.46688705e+09, -7.49680571e+07,
- -2.01418211e+10,  2.05378765e+10,
- -3.56326007e+10,  9.14528366e+09,
- -1.16900072e+09,  2.72257870e+10,
- -7.01226095e+09,  7.52420433e+09,
- -2.14269305e+10,  9.10320049e+10,
- -7.49680571e+07, -1.35889491e+10,
-  2.05378765e+10,  6.67218742e+09,
-  9.14528366e+09, -1.18865235e+11,
- -1.88162512e+10, -1.81941422e+10,
-  3.42514288e+09, -2.14282837e+10,
- -4.46688705e+09, -7.49680571e+07,
-  9.34772297e+10, -1.75952640e+10,
- -3.26438450e+10,  2.31583412e+10,
- -4.09753893e+10,  3.41343167e+10,
- -1.81941422e+10, -4.08528660e+09,
- -2.14282837e+10,  2.63944418e+10,
- -7.49680571e+07, -1.35889491e+10,
- -1.75952640e+10,  1.28993398e+11,
-  2.31583412e+10, -1.32670104e+11,
-  3.41343167e+10, -5.04349923e+09,
- -5.31233692e+09, -2.78656421e+09,
- -6.14617630e+10,  3.14248548e+10,
- -2.01418211e+10,  2.05378765e+10,
- -3.26438450e+10,  2.31583412e+10,
-  1.28924268e+11, -2.92151596e+10,
- -9.36450187e+09, -4.31193486e+10,
- -2.78656421e+09, -6.82095745e+09,
-  3.14248548e+10, -5.19138623e+10,
-  2.05378765e+10,  6.67218742e+09,
-  2.31583412e+10, -1.32670104e+11,
- -2.92151596e+10,  1.94678071e+11,
- -4.31193486e+10, -9.94533453e+09,
- -1.84127470e+10,  2.37479043e+09,
- -1.29062107e+10,  6.09055570e+09,
- -3.56326007e+10,  9.14528366e+09,
- -4.09753893e+10,  3.41343167e+10,
- -9.36450187e+09, -4.31193486e+10,
-  1.17291450e+11, -8.62559790e+09,
-  2.37479043e+09, -8.88121106e+10,
-  6.09055570e+09, -7.24040229e+09,
-  9.14528366e+09, -1.18865235e+11,
-  3.41343167e+10, -5.04349923e+09,
- -4.31193486e+10, -9.94533453e+09,
- -8.62559790e+09,  2.29906581e+11,
+  4.15638021e+10,  9.27734375e+09,
+  2.73546007e+09,  4.13736979e+09,
+  4.19184028e+09, -2.59114583e+09,
+ -2.07819010e+10, -4.63867188e+09,
+ -2.11365017e+10,  3.05501302e+10,
+ -6.57269965e+09, -3.67350260e+10,
+  9.27734375e+09,  1.17761719e+11,
+  3.90299479e+09,  4.38476562e+09,
+ -2.35677083e+09,  1.52421875e+10,
+ -4.63867188e+09, -5.88808594e+10,
+  2.82063802e+10, -9.35410156e+10,
+ -3.43912760e+10,  1.50332031e+10,
+  2.73546007e+09,  3.90299479e+09,
+  1.45941840e+10,  3.09244792e+09,
+  4.56163194e+09, -2.35677083e+09,
+ -1.64203559e+10,  3.16731771e+09,
+  7.29709201e+09,  1.54622396e+09,
+ -1.27680122e+10, -9.35221354e+09,
+  4.13736979e+09,  4.38476562e+09,
+  3.09244792e+09,  6.34765625e+09,
+ -2.59114583e+09, -1.21093750e+09,
+  3.63606771e+09, -7.51953125e+08,
+  1.54622396e+09,  3.17382812e+09,
+ -9.82096354e+09, -1.19433594e+10,
+  4.19184028e+09, -2.35677083e+09,
+  4.56163194e+09, -2.59114583e+09,
+  1.75069444e+10, -9.89583333e+09,
+ -1.78767361e+10,  1.01302083e+10,
+ -1.71371528e+10,  9.66145833e+09,
+  8.75347222e+09, -4.94791667e+09,
+ -2.59114583e+09,  1.52421875e+10,
+ -2.35677083e+09, -1.21093750e+09,
+ -9.89583333e+09,  2.80625000e+10,
+  9.66145833e+09, -1.16093750e+10,
+  1.01302083e+10, -4.45156250e+10,
+ -4.94791667e+09,  1.40312500e+10,
+ -2.07819010e+10, -4.63867188e+09,
+ -1.64203559e+10,  3.63606771e+09,
+ -1.78767361e+10,  9.66145833e+09,
+  6.89335937e+10, -5.56640625e+09,
+  3.54600694e+08, -3.44856771e+10,
+ -1.42092014e+10,  3.13932292e+10,
+ -4.63867188e+09, -5.88808594e+10,
+  3.16731771e+09, -7.51953125e+08,
+  1.01302083e+10, -1.16093750e+10,
+ -5.56640625e+09,  1.10496094e+11,
+ -3.35481771e+10,  3.46601562e+10,
+  3.04557292e+10, -7.39140625e+10,
+ -2.11365017e+10,  2.82063802e+10,
+  7.29709201e+09,  1.54622396e+09,
+ -1.71371528e+10,  1.01302083e+10,
+  3.54600694e+08, -3.35481771e+10,
+  1.40440538e+11, -4.51497396e+10,
+ -1.09818576e+11,  3.88151042e+10,
+  3.05501302e+10, -9.35410156e+10,
+  1.54622396e+09,  3.17382812e+09,
+  9.66145833e+09, -4.45156250e+10,
+ -3.44856771e+10,  3.46601562e+10,
+ -4.51497396e+10,  1.56933594e+11,
+  3.78776042e+10, -5.67109375e+10,
+ -6.57269965e+09, -3.43912760e+10,
+ -1.27680122e+10, -9.82096354e+09,
+  8.75347222e+09, -4.94791667e+09,
+ -1.42092014e+10,  3.04557292e+10,
+ -1.09818576e+11,  3.78776042e+10,
+  1.34615017e+11, -1.91731771e+10,
+ -3.67350260e+10,  1.50332031e+10,
+ -9.35221354e+09, -1.19433594e+10,
+ -4.94791667e+09,  1.40312500e+10,
+  3.13932292e+10, -7.39140625e+10,
+  3.88151042e+10, -5.67109375e+10,
+ -1.91731771e+10,  1.13503906e+11,
 };
 
 pylith::feassemble::ElasticityImplicitData2DQuadratic::ElasticityImplicitData2DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -56,22 +56,22 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DLinear::_quadPts[] = {
-  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DLinear::_quadWts[] = {
-  1.66666667e-01,
+  1.33333333e+00,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DLinear::_basis[] = {
-  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
   2.50000000e-01,};
 
 const double pylith::feassemble::ElasticityImplicitData3DLinear::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DLinear::_fieldTpdt[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -42,12 +42,12 @@
   2.00000000e+00, -2.00000000e+00, -5.00000000e-01,
   1.00000000e+00,  1.00000000e+00,  0.00000000e+00,
   2.00000000e-01,  5.00000000e-01,  2.00000000e+00,
-  7.00000000e-01, -2.10000000e+00, -8.00000000e-01,
-  3.00000000e-01, -5.00000000e-01, -5.00000000e-01,
- -2.00000000e-01, -8.00000000e-01,  5.00000000e-01,
-  1.50000000e+00, -6.00000000e-01, -2.00000000e-01,
-  6.00000000e-01,  8.00000000e-01,  9.00000000e-01,
-  1.10000000e+00, -8.00000000e-01,  7.00000000e-01,
+  1.50000000e+00, -5.00000000e-01, -2.50000000e-01,
+  2.50000000e-01, -5.00000000e-01, -5.00000000e-01,
+  7.50000000e-01, -2.00000000e+00, -7.50000000e-01,
+ -1.50000000e-01, -7.50000000e-01,  5.00000000e-01,
+  1.10000000e+00, -7.50000000e-01,  7.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,  1.00000000e+00,
 };
 
 const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_cells[] = {
@@ -59,8 +59,8 @@
   1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00, -1.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
   0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00, -1.00000000e+00,  0.00000000e+00,
   0.00000000e+00, -1.00000000e+00,  0.00000000e+00,
@@ -68,73 +68,73 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_quadPts[] = {
-  8.33333333e-02,  8.33333333e-02,  8.33333333e-02,
-  7.50000000e-01,  8.33333333e-02,  8.33333333e-02,
-  8.33333333e-02,  7.50000000e-01,  8.33333333e-02,
-  8.33333333e-02,  8.33333333e-02,  7.50000000e-01,
+ -8.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+  5.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01, -8.00000000e-01,  5.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_quadWts[] = {
-  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,
+  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_basis[] = {
-  3.75000000e-01, -6.94444444e-02, -6.94444444e-02,
- -6.94444444e-02,  2.50000000e-01,  2.50000000e-01,
-  2.50000000e-01,  2.77777778e-02,  2.77777778e-02,
-  2.77777778e-02, -6.94444444e-02,  3.75000000e-01,
- -6.94444444e-02, -6.94444444e-02,  2.50000000e-01,
-  2.77777778e-02,  2.77777778e-02,  2.50000000e-01,
-  2.77777778e-02,  2.50000000e-01, -6.94444444e-02,
- -6.94444444e-02,  3.75000000e-01, -6.94444444e-02,
-  2.77777778e-02,  2.50000000e-01,  2.77777778e-02,
-  2.50000000e-01,  2.50000000e-01,  2.77777778e-02,
- -6.94444444e-02, -6.94444444e-02, -6.94444444e-02,
-  3.75000000e-01,  2.77777778e-02,  2.77777778e-02,
-  2.50000000e-01,  2.77777778e-02,  2.50000000e-01,
-  2.50000000e-01,};
+  2.80000000e-01, -8.00000000e-02, -8.00000000e-02,
+ -8.00000000e-02,  4.00000000e-02,  2.80000000e-01,
+  2.80000000e-01,  2.80000000e-01,  4.00000000e-02,
+  4.00000000e-02, -4.50000000e-02,  3.75000000e-01,
+ -8.00000000e-02, -8.00000000e-02,  3.00000000e-01,
+  2.00000000e-02,  1.50000000e-01,  2.00000000e-02,
+  3.00000000e-01,  4.00000000e-02, -4.50000000e-02,
+ -8.00000000e-02,  3.75000000e-01, -8.00000000e-02,
+  3.00000000e-01,  1.50000000e-01,  2.00000000e-02,
+  2.00000000e-02,  4.00000000e-02,  3.00000000e-01,
+ -4.50000000e-02, -8.00000000e-02, -8.00000000e-02,
+  3.75000000e-01,  4.00000000e-02,  2.00000000e-02,
+  2.00000000e-02,  1.50000000e-01,  3.00000000e-01,
+  3.00000000e-01,};
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_basisDerivRef[] = {
- -2.00000000e+00, -2.00000000e+00, -2.00000000e+00,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00, -3.33333333e-01, -3.33333333e-01,
- -3.33333333e-01,  2.66666667e+00, -3.33333333e-01,
- -3.33333333e-01, -3.33333333e-01,  2.66666667e+00,
-  3.33333333e-01,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
-  2.00000000e+00,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
- -2.66666667e+00, -3.00000000e+00, -3.00000000e+00,
- -3.33333333e-01,  1.11022302e-16, -3.33333333e-01,
- -3.33333333e-01, -3.33333333e-01,  1.11022302e-16,
-  3.33333333e-01,  3.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,  0.00000000e+00,  3.00000000e+00,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  2.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
-  1.11022302e-16, -3.33333333e-01, -3.33333333e-01,
- -3.00000000e+00, -2.66666667e+00, -3.00000000e+00,
- -3.33333333e-01, -3.33333333e-01, -1.11022302e-16,
-  3.00000000e+00,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.00000000e+00,
-  3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
- -1.11022302e-16, -3.33333333e-01, -3.33333333e-01,
- -3.33333333e-01, -1.11022302e-16, -3.33333333e-01,
- -3.00000000e+00, -3.00000000e+00, -2.66666667e+00,
-  3.33333333e-01,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.00000000e+00,  3.33333333e-01,
-  3.00000000e+00,  0.00000000e+00,  3.33333333e-01,
+ -9.00000000e-01, -9.00000000e-01, -9.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01,  1.20000000e+00, -2.00000000e-01,
+  1.20000000e+00, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01,  1.20000000e+00,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  1.50000000e+00,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.40000000e+00, -1.50000000e+00, -1.50000000e+00,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  1.50000000e+00,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  1.50000000e+00,  2.00000000e-01,  0.00000000e+00,
+ -1.50000000e+00, -1.40000000e+00, -1.50000000e+00,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  1.50000000e+00,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -1.50000000e+00, -1.50000000e+00, -1.40000000e+00,
+  1.50000000e+00,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  1.50000000e+00,  2.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_fieldTpdt[] = {
@@ -164,332 +164,332 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_fieldTmdt[] = {
-  2.00000000e-01, -3.00000000e-01, -4.00000000e-01,
- -6.00000000e-01,  2.00000000e-01,  3.00000000e-01,
-  5.00000000e-01,  2.00000000e-01,  5.00000000e-01,
- -3.00000000e-01, -6.00000000e-01, -3.00000000e-01,
+  2.00000000e-01, -3.00000000e-01, -1.00000000e-01,
+ -4.00000000e-01,  2.00000000e-01,  3.00000000e-01,
+ -5.00000000e-01,  2.00000000e-01,  2.00000000e-01,
+ -3.00000000e-01, -8.00000000e-01, -3.00000000e-01,
  -5.00000000e-01, -9.00000000e-01,  4.00000000e-01,
  -3.00000000e-01, -6.00000000e-01, -8.00000000e-01,
   9.00000000e-01,  5.00000000e-01, -2.00000000e-01,
- -7.00000000e-01, -3.00000000e-01, -3.00000000e-01,
+ -7.00000000e-01, -2.00000000e-01, -9.00000000e-01,
  -5.00000000e-01, -8.00000000e-01,  4.00000000e-01,
- -4.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+ -4.00000000e-01,  5.00000000e-01, -7.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_valsResidual[] = {
- -4.23293588e+10, -2.77322955e+10,  1.60678757e+11,
- -9.57785654e+09, -1.16546360e+11,  2.08212509e+10,
- -2.32850642e+11, -5.45737494e+11,  3.99403558e+11,
-  4.66589928e+10, -1.10817849e+11,  3.59789383e+11,
-  3.81294856e+10, -2.30875676e+11, -1.04828412e+11,
-  3.46864294e+11,  5.91207973e+11, -2.10576075e+11,
- -7.59895172e+11, -4.18997477e+11, -6.23908371e+10,
-  1.13569956e+11,  6.51755933e+11, -3.83093543e+11,
-  2.17299147e+11,  7.79749940e+11, -7.81469581e+11,
-  2.82131154e+11, -5.72006695e+11,  6.01665499e+11,
+ -3.60344070e+07, -8.60416179e+09, -2.65627643e+10,
+  6.93994122e+10, -2.20144385e+10,  8.70827233e+08,
+ -1.03575146e+10, -5.86779063e+09, -8.18536662e+10,
+  4.26958272e+09,  7.53982796e+10, -1.04651354e+11,
+  6.65380864e+10,  4.81920110e+10, -4.06940264e+09,
+  4.86877753e+10,  9.01600666e+10,  3.33801288e+10,
+ -8.27791991e+10, -6.36931757e+10,  2.69010556e+10,
+  7.53862306e+10, -2.99178646e+10,  8.15954568e+10,
+ -1.62484959e+11,  9.80267108e+10, -1.29725665e+11,
+ -8.62337994e+09, -1.81679637e+11,  2.04115384e+11,
 };
 
 const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_valsJacobian[] = {
-  1.73593357e+11,  1.31221858e+10,  5.92480125e+10,
-  4.41282224e+10, -8.97243830e+09,  1.40275224e+10,
-  1.34679027e+10,  1.74156506e+10, -1.17311004e+10,
-  2.50981776e+09, -3.89615730e+09,  2.03669074e+10,
- -1.97580971e+11,  2.46666952e+10, -5.92427692e+10,
- -6.39826914e+10, -6.30670755e+10,  2.37451946e+10,
- -5.75008309e+10,  4.73972161e+09, -6.76312960e+10,
-  4.15615137e+10,  1.28607278e+10, -3.42260328e+09,
- -4.09074006e+09,  1.31945069e+10, -5.53121731e+08,
-  4.78944202e+10, -1.00638169e+10,  2.51932539e+10,
-  1.31221858e+10,  7.18520028e+10,  7.27155983e+09,
- -8.97243830e+09,  1.37022228e+10, -5.67657348e+09,
-  1.74156506e+10,  3.37218949e+09,  7.81448242e+09,
- -3.89615730e+09,  7.04979720e+09,  1.31986219e+09,
-  2.46666952e+10, -6.88018779e+10,  1.63759884e+10,
- -6.30670755e+10, -1.97824896e+10, -3.28649392e+10,
-  4.73972161e+09, -4.55140745e+10, -9.92622589e+08,
-  1.28607278e+10,  1.58627981e+10,  1.39109953e+09,
-  1.31945069e+10,  1.10938371e+10,  5.75133822e+09,
- -1.00638169e+10,  1.11655945e+10, -3.90195315e+08,
-  5.92480125e+10,  7.27155983e+09,  1.03914450e+11,
-  1.40275224e+10, -5.67657348e+09,  2.24800951e+10,
- -1.17311004e+10,  7.81448242e+09, -1.95631650e+10,
-  2.03669074e+10,  1.31986219e+09,  2.98048728e+10,
- -5.92427692e+10,  1.63759884e+10, -9.96264559e+10,
-  2.37451946e+10, -3.28649392e+10,  3.93731217e+10,
- -6.76312960e+10, -9.92622589e+08, -1.23190287e+11,
- -3.42260328e+09,  1.39109953e+09,  6.48660713e+08,
- -5.53121731e+08,  5.75133822e+09,  7.71963836e+09,
-  2.51932539e+10, -3.90195315e+08,  3.84390694e+10,
-  4.41282224e+10, -8.97243830e+09,  1.40275224e+10,
-  1.54867792e+11, -5.79776370e+10,  2.87069197e+10,
-  2.95819506e+09, -1.28154816e+10,  1.47119838e+10,
-  1.21720190e+09,  2.69617162e+09, -2.00942458e+10,
- -1.67957268e+11,  3.87444252e+10, -4.30018854e+10,
-  4.73211108e+10, -1.83435705e+10,  2.59834953e+10,
-  6.22243332e+10, -4.76963520e+09, -4.72602760e+09,
- -8.43708418e+10,  6.54829989e+10, -5.87153835e+10,
-  1.05412088e+10, -1.60852224e+10, -6.45089868e+08,
- -7.09299539e+10,  1.20403892e+10,  4.37527110e+10,
- -8.97243830e+09,  1.37022228e+10, -5.67657348e+09,
- -5.79776370e+10,  1.06553726e+11, -1.92267274e+10,
- -1.28154816e+10,  3.29179853e+10, -1.69448024e+10,
-  2.69617162e+09, -1.09961911e+10,  1.40929084e+10,
-  3.87444252e+10, -6.46611992e+10,  1.80003919e+10,
- -1.83435705e+10,  4.31637836e+10, -1.76027438e+10,
- -4.76963520e+09,  5.16244894e+09,  9.47741456e+09,
-  6.54829989e+10, -1.54809527e+11,  6.03073752e+10,
- -1.60852224e+10,  2.20227238e+10, -1.05264992e+09,
-  1.20403892e+10,  6.94402728e+09, -4.13745930e+10,
-  1.40275224e+10, -5.67657348e+09,  2.24800951e+10,
-  2.87069197e+10, -1.92267274e+10,  7.73569901e+10,
-  1.47119838e+10, -1.69448024e+10,  2.49986324e+10,
- -2.00942458e+10,  1.40929084e+10, -1.48784174e+10,
- -4.30018854e+10,  1.80003919e+10, -7.96202073e+10,
-  2.59834953e+10, -1.76027438e+10,  4.14841411e+10,
- -4.72602760e+09,  9.47741456e+09,  5.72099869e+09,
- -5.87153835e+10,  6.03073752e+10, -1.08351528e+11,
- -6.45089868e+08, -1.05264992e+09,  3.20090476e+08,
-  4.37527110e+10, -4.13745930e+10,  3.04892048e+10,
-  1.34679027e+10,  1.74156506e+10, -1.17311004e+10,
-  2.95819506e+09, -1.28154816e+10,  1.47119838e+10,
-  1.23438637e+11,  3.46519484e+10, -3.63582535e+10,
-  2.79586306e+10,  5.32861592e+09, -1.10258169e+10,
-  5.63042682e+09,  1.21350317e+09, -6.02985326e+08,
- -7.63547390e+10, -5.63463594e+10,  4.32763908e+10,
-  2.31172881e+10,  2.27643288e+10, -2.16400017e+10,
- -2.79271875e+10,  2.72049791e+10, -3.64629550e+10,
- -1.32369258e+11, -2.60041909e+10,  4.80507945e+10,
-  4.00801042e+10, -1.34129942e+10,  1.17819438e+10,
-  1.74156506e+10,  3.37218949e+09,  7.81448242e+09,
- -1.28154816e+10,  3.29179853e+10, -1.69448024e+10,
-  3.46519484e+10,  2.10679032e+11, -1.03280701e+11,
-  5.32861592e+09,  2.90912967e+10, -2.19192151e+10,
-  1.21350317e+09,  4.17179320e+10, -1.00288537e+10,
- -5.63463594e+10, -9.41470160e+10,  1.77452371e+10,
-  2.27643288e+10,  3.80097265e+10, -1.97446690e+10,
-  2.72049791e+10, -1.64835738e+11,  8.70817270e+10,
- -2.60041909e+10, -1.77738439e+11,  1.05235964e+11,
- -1.34129942e+10,  8.09330309e+10, -4.59591691e+10,
- -1.17311004e+10,  7.81448242e+09, -1.95631650e+10,
-  1.47119838e+10, -1.69448024e+10,  2.49986324e+10,
- -3.63582535e+10, -1.03280701e+11,  2.16964664e+11,
- -1.10258169e+10, -2.19192151e+10,  6.56449763e+10,
- -6.02985326e+08, -1.00288537e+10,  3.92385068e+09,
-  4.32763908e+10,  1.77452371e+10, -5.96357004e+09,
- -2.16400017e+10, -1.97446690e+10,  3.77361229e+10,
- -3.64629550e+10,  8.70817270e+10, -1.41181432e+11,
-  4.80507945e+10,  1.05235964e+11, -2.76877324e+11,
-  1.17819438e+10, -4.59591691e+10,  9.43172444e+10,
-  2.50981776e+09, -3.89615730e+09,  2.03669074e+10,
-  1.21720190e+09,  2.69617162e+09, -2.00942458e+10,
-  2.79586306e+10,  5.32861592e+09, -1.10258169e+10,
-  8.03801203e+10,  4.28312915e+09, -2.35710177e+10,
- -2.63620606e+09, -4.23405310e+09, -2.93320831e+09,
-  1.80513827e+10,  2.78153902e+08,  4.95927270e+09,
- -2.69586121e+10,  8.60802181e+09, -5.02613001e+10,
-  4.22351859e+10,  7.82107092e+09, -2.50091494e+10,
- -1.02342437e+11, -1.24141249e+10,  3.15730404e+10,
- -4.04150843e+10, -8.47082802e+09,  7.59955177e+10,
- -3.89615730e+09,  7.04979720e+09,  1.31986219e+09,
-  2.69617162e+09, -1.09961911e+10,  1.40929084e+10,
-  5.32861592e+09,  2.90912967e+10, -2.19192151e+10,
-  4.28312915e+09,  8.08573662e+10, -2.49859128e+10,
- -4.23405310e+09, -1.13494224e+10,  1.45561697e+10,
-  2.78153902e+08,  3.65196843e+10, -2.32167847e+10,
-  8.60802181e+09, -3.99831278e+10, -1.82942578e+08,
-  7.82107092e+09,  3.97041316e+10, -2.00323766e+10,
- -1.24141249e+10, -1.15124311e+11,  8.04538311e+10,
- -8.47082802e+09, -1.57692240e+10, -2.00855397e+10,
-  2.03669074e+10,  1.31986219e+09,  2.98048728e+10,
- -2.00942458e+10,  1.40929084e+10, -1.48784174e+10,
- -1.10258169e+10, -2.19192151e+10,  6.56449763e+10,
- -2.35710177e+10, -2.49859128e+10,  2.19824483e+11,
- -2.93320831e+09,  1.45561697e+10,  1.88117001e+09,
-  4.95927270e+09, -2.32167847e+10,  8.38973112e+10,
- -5.02613001e+10, -1.82942578e+08, -1.40625956e+11,
- -2.50091494e+10, -2.00323766e+10,  6.03522660e+10,
-  3.15730404e+10,  8.04538311e+10, -2.60578922e+11,
-  7.59955177e+10, -2.00855397e+10, -4.53217837e+10,
- -1.97580971e+11,  2.46666952e+10, -5.92427692e+10,
- -1.67957268e+11,  3.87444252e+10, -4.30018854e+10,
-  5.63042682e+09,  1.21350317e+09, -6.02985326e+08,
- -2.63620606e+09, -4.23405310e+09, -2.93320831e+09,
-  3.85696291e+11, -6.83381205e+10,  8.86790196e+10,
- -2.67543764e+10,  6.79930939e+10, -5.16095318e+10,
- -9.58513672e+09,  1.38759693e+10,  7.35601830e+10,
- -6.19215806e+09, -8.46878019e+10,  5.24221879e+10,
- -9.76062412e+09,  2.10558684e+09,  1.55381637e+09,
-  2.91400233e+10,  8.66070187e+09, -5.88248267e+10,
-  2.46666952e+10, -6.88018779e+10,  1.63759884e+10,
-  3.87444252e+10, -6.46611992e+10,  1.80003919e+10,
-  1.21350317e+09,  4.17179320e+10, -1.00288537e+10,
- -4.23405310e+09, -1.13494224e+10,  1.45561697e+10,
- -6.83381205e+10,  2.60180928e+11, -1.30705186e+10,
-  6.79930939e+10, -1.76805094e+11,  8.21155993e+10,
-  1.38759693e+10,  6.33678206e+10, -6.44938640e+10,
- -8.46878019e+10, -4.14570852e+10, -1.09266562e+10,
-  2.10558684e+09, -3.98284804e+10, -6.18361482e+09,
-  8.66070187e+09,  3.76364782e+10, -2.63446422e+10,
- -5.92427692e+10,  1.63759884e+10, -9.96264559e+10,
- -4.30018854e+10,  1.80003919e+10, -7.96202073e+10,
- -6.02985326e+08, -1.00288537e+10,  3.92385068e+09,
- -2.93320831e+09,  1.45561697e+10,  1.88117001e+09,
-  8.86790196e+10, -1.30705186e+10,  2.11705117e+11,
- -5.16095318e+10,  8.21155993e+10, -8.74213471e+10,
-  7.35601830e+10, -6.44938640e+10,  6.99356117e+10,
-  5.24221879e+10, -1.09266562e+10,  7.56292185e+10,
-  1.55381637e+09, -6.18361482e+09, -1.20128555e+10,
- -5.88248267e+10, -2.63446422e+10, -8.43941023e+10,
- -6.39826914e+10, -6.30670755e+10,  2.37451946e+10,
-  4.73211108e+10, -1.83435705e+10,  2.59834953e+10,
- -7.63547390e+10, -5.63463594e+10,  4.32763908e+10,
-  1.80513827e+10,  2.78153902e+08,  4.95927270e+09,
- -2.67543764e+10,  6.79930939e+10, -5.16095318e+10,
-  4.13046988e+11,  3.89664193e+10,  7.46945751e+10,
- -6.36916424e+10, -3.24928572e+10,  5.96736247e+10,
- -1.86334149e+11,  3.11000319e+10, -7.52995207e+10,
-  3.47603416e+10,  6.05218426e+09, -6.19443687e+10,
- -9.60622254e+10,  2.58599791e+10, -4.34791320e+10,
- -6.30670755e+10, -1.97824896e+10, -3.28649392e+10,
- -1.83435705e+10,  4.31637836e+10, -1.76027438e+10,
- -5.63463594e+10, -9.41470160e+10,  1.77452371e+10,
-  2.78153902e+08,  3.65196843e+10, -2.32167847e+10,
-  6.79930939e+10, -1.76805094e+11,  8.21155993e+10,
-  3.89664193e+10,  4.49980968e+11, -1.55634984e+11,
- -3.24928572e+10, -1.47723652e+11,  1.19291549e+11,
-  3.11000319e+10, -7.00384183e+09, -1.61733676e+10,
-  6.05218426e+09,  2.23790298e+10, -2.80491949e+10,
-  2.58599791e+10, -1.06581372e+11,  5.43896286e+10,
-  2.37451946e+10, -3.28649392e+10,  3.93731217e+10,
-  2.59834953e+10, -1.76027438e+10,  4.14841411e+10,
-  4.32763908e+10,  1.77452371e+10, -5.96357004e+09,
-  4.95927270e+09, -2.32167847e+10,  8.38973112e+10,
- -5.16095318e+10,  8.21155993e+10, -8.74213471e+10,
-  7.46945751e+10, -1.55634984e+11,  4.97969373e+11,
-  5.96736247e+10,  1.19291549e+11, -2.71854799e+11,
- -7.52995207e+10, -1.61733676e+10, -2.21556189e+10,
- -6.19443687e+10, -2.80491949e+10, -1.10527585e+11,
- -4.34791320e+10,  5.43896286e+10, -1.64801027e+11,
- -5.75008309e+10,  4.73972161e+09, -6.76312960e+10,
-  6.22243332e+10, -4.76963520e+09, -4.72602760e+09,
-  2.31172881e+10,  2.27643288e+10, -2.16400017e+10,
- -2.69586121e+10,  8.60802181e+09, -5.02613001e+10,
- -9.58513672e+09,  1.38759693e+10,  7.35601830e+10,
- -6.36916424e+10, -3.24928572e+10,  5.96736247e+10,
-  4.47739208e+11,  6.69723122e+10, -4.08898440e+09,
- -1.06262150e+11, -2.34552462e+10,  3.46048012e+10,
- -1.49150887e+10, -9.40708368e+10,  5.51675595e+10,
- -2.54167369e+11,  3.78282216e+10, -7.46585584e+10,
-  4.73972161e+09, -4.55140745e+10, -9.92622589e+08,
- -4.76963520e+09,  5.16244894e+09,  9.47741456e+09,
-  2.27643288e+10,  3.80097265e+10, -1.97446690e+10,
-  8.60802181e+09, -3.99831278e+10, -1.82942578e+08,
-  1.38759693e+10,  6.33678206e+10, -6.44938640e+10,
- -3.24928572e+10, -1.47723652e+11,  1.19291549e+11,
-  6.69723122e+10,  2.57490592e+11, -3.65894247e+10,
- -2.34552462e+10, -5.81619320e+10,  1.58763652e+10,
- -9.40708368e+10, -4.94585896e+10, -6.92382137e+09,
-  3.78282216e+10, -2.31892124e+10, -1.57179843e+10,
- -6.76312960e+10, -9.92622589e+08, -1.23190287e+11,
- -4.72602760e+09,  9.47741456e+09,  5.72099869e+09,
- -2.16400017e+10, -1.97446690e+10,  3.77361229e+10,
- -5.02613001e+10, -1.82942578e+08, -1.40625956e+11,
-  7.35601830e+10, -6.44938640e+10,  6.99356117e+10,
-  5.96736247e+10,  1.19291549e+11, -2.71854799e+11,
- -4.08898440e+09, -3.65894247e+10,  4.50096056e+11,
-  3.46048012e+10,  1.58763652e+10, -6.56498964e+10,
-  5.51675595e+10, -6.92382137e+09,  6.79135146e+10,
- -7.46585584e+10, -1.57179843e+10, -3.00813662e+10,
-  4.15615137e+10,  1.28607278e+10, -3.42260328e+09,
- -8.43708418e+10,  6.54829989e+10, -5.87153835e+10,
- -2.79271875e+10,  2.72049791e+10, -3.64629550e+10,
-  4.22351859e+10,  7.82107092e+09, -2.50091494e+10,
- -6.19215806e+09, -8.46878019e+10,  5.24221879e+10,
- -1.86334149e+11,  3.11000319e+10, -7.52995207e+10,
- -1.06262150e+11, -2.34552462e+10,  3.46048012e+10,
-  4.71475009e+11, -1.33483456e+10, -1.80713146e+10,
- -2.93522947e+10,  1.45135217e+10,  7.37078702e+10,
- -1.14832927e+11, -3.74919366e+10,  5.62460671e+10,
-  1.28607278e+10,  1.58627981e+10,  1.39109953e+09,
-  6.54829989e+10, -1.54809527e+11,  6.03073752e+10,
-  2.72049791e+10, -1.64835738e+11,  8.70817270e+10,
-  7.82107092e+09,  3.97041316e+10, -2.00323766e+10,
- -8.46878019e+10, -4.14570852e+10, -1.09266562e+10,
-  3.11000319e+10, -7.00384183e+09, -1.61733676e+10,
- -2.34552462e+10, -5.81619320e+10,  1.58763652e+10,
- -1.33483456e+10,  5.43964443e+11, -2.18084302e+11,
-  1.45135217e+10,  5.26460008e+10, -5.83835892e+10,
- -3.74919366e+10, -2.25909250e+11,  1.58943725e+11,
- -3.42260328e+09,  1.39109953e+09,  6.48660713e+08,
- -5.87153835e+10,  6.03073752e+10, -1.08351528e+11,
- -3.64629550e+10,  8.70817270e+10, -1.41181432e+11,
- -2.50091494e+10, -2.00323766e+10,  6.03522660e+10,
-  5.24221879e+10, -1.09266562e+10,  7.56292185e+10,
- -7.52995207e+10, -1.61733676e+10, -2.21556189e+10,
-  3.46048012e+10,  1.58763652e+10, -6.56498964e+10,
- -1.80713146e+10, -2.18084302e+11,  5.09589329e+11,
-  7.37078702e+10, -5.83835892e+10,  6.56005522e+10,
-  5.62460671e+10,  1.58943725e+11, -3.74481552e+11,
- -4.09074006e+09,  1.31945069e+10, -5.53121731e+08,
-  1.05412088e+10, -1.60852224e+10, -6.45089868e+08,
- -1.32369258e+11, -2.60041909e+10,  4.80507945e+10,
- -1.02342437e+11, -1.24141249e+10,  3.15730404e+10,
- -9.76062412e+09,  2.10558684e+09,  1.55381637e+09,
-  3.47603416e+10,  6.05218426e+09, -6.19443687e+10,
- -1.49150887e+10, -9.40708368e+10,  5.51675595e+10,
- -2.93522947e+10,  1.45135217e+10,  7.37078702e+10,
-  2.80044129e+11,  2.86641359e+10, -7.69453367e+10,
- -3.25152372e+10,  8.40444394e+10, -6.99651640e+10,
-  1.31945069e+10,  1.10938371e+10,  5.75133822e+09,
- -1.60852224e+10,  2.20227238e+10, -1.05264992e+09,
- -2.60041909e+10, -1.77738439e+11,  1.05235964e+11,
- -1.24141249e+10, -1.15124311e+11,  8.04538311e+10,
-  2.10558684e+09, -3.98284804e+10, -6.18361482e+09,
-  6.05218426e+09,  2.23790298e+10, -2.80491949e+10,
- -9.40708368e+10, -4.94585896e+10, -6.92382137e+09,
-  1.45135217e+10,  5.26460008e+10, -5.83835892e+10,
-  2.86641359e+10,  4.36944208e+11, -1.65042473e+11,
-  8.40444394e+10, -1.62935980e+11,  7.41942100e+10,
- -5.53121731e+08,  5.75133822e+09,  7.71963836e+09,
- -6.45089868e+08, -1.05264992e+09,  3.20090476e+08,
-  4.80507945e+10,  1.05235964e+11, -2.76877324e+11,
-  3.15730404e+10,  8.04538311e+10, -2.60578922e+11,
-  1.55381637e+09, -6.18361482e+09, -1.20128555e+10,
- -6.19443687e+10, -2.80491949e+10, -1.10527585e+11,
-  5.51675595e+10, -6.92382137e+09,  6.79135146e+10,
-  7.37078702e+10, -5.83835892e+10,  6.56005522e+10,
- -7.69453367e+10, -1.65042473e+11,  5.85917235e+11,
- -6.99651640e+10,  7.41942100e+10, -6.74743444e+10,
-  4.78944202e+10, -1.00638169e+10,  2.51932539e+10,
- -7.09299539e+10,  1.20403892e+10,  4.37527110e+10,
-  4.00801042e+10, -1.34129942e+10,  1.17819438e+10,
- -4.04150843e+10, -8.47082802e+09,  7.59955177e+10,
-  2.91400233e+10,  8.66070187e+09, -5.88248267e+10,
- -9.60622254e+10,  2.58599791e+10, -4.34791320e+10,
- -2.54167369e+11,  3.78282216e+10, -7.46585584e+10,
- -1.14832927e+11, -3.74919366e+10,  5.62460671e+10,
- -3.25152372e+10,  8.40444394e+10, -6.99651640e+10,
-  4.91808250e+11, -9.89941555e+10,  3.39581876e+10,
- -1.00638169e+10,  1.11655945e+10, -3.90195315e+08,
-  1.20403892e+10,  6.94402728e+09, -4.13745930e+10,
- -1.34129942e+10,  8.09330309e+10, -4.59591691e+10,
- -8.47082802e+09, -1.57692240e+10, -2.00855397e+10,
-  8.66070187e+09,  3.76364782e+10, -2.63446422e+10,
-  2.58599791e+10, -1.06581372e+11,  5.43896286e+10,
-  3.78282216e+10, -2.31892124e+10, -1.57179843e+10,
- -3.74919366e+10, -2.25909250e+11,  1.58943725e+11,
-  8.40444394e+10, -1.62935980e+11,  7.41942100e+10,
- -9.89941555e+10,  3.97705908e+11, -1.37655440e+11,
-  2.51932539e+10, -3.90195315e+08,  3.84390694e+10,
-  4.37527110e+10, -4.13745930e+10,  3.04892048e+10,
-  1.17819438e+10, -4.59591691e+10,  9.43172444e+10,
-  7.59955177e+10, -2.00855397e+10, -4.53217837e+10,
- -5.88248267e+10, -2.63446422e+10, -8.43941023e+10,
- -4.34791320e+10,  5.43896286e+10, -1.64801027e+11,
- -7.46585584e+10, -1.57179843e+10, -3.00813662e+10,
-  5.62460671e+10,  1.58943725e+11, -3.74481552e+11,
- -6.99651640e+10,  7.41942100e+10, -6.74743444e+10,
-  3.39581876e+10, -1.37655440e+11,  6.03308657e+11,
+  4.84108858e+10,  7.55490483e+09,  1.36932650e+10,
+  1.51828404e+10, -1.68096633e+09,  3.67199854e+09,
+  2.10939239e+09,  5.87866032e+09, -4.46211567e+09,
+ -1.15527086e+09, -1.67939239e+09,  5.35453880e+09,
+  2.33244070e+10,  5.66200586e+09, -1.06573939e+09,
+ -2.73584773e+10, -1.89820644e+10,  5.67313324e+09,
+ -6.20183163e+10,  1.05973646e+09, -1.58917277e+10,
+ -1.87033236e+10,  1.05556369e+09, -2.03524158e+10,
+  1.89209078e+10, -4.53257687e+09,  1.21753294e+10,
+  1.28695461e+09,  5.66412884e+09,  1.20373353e+09,
+  7.55490483e+09,  2.08335944e+10,  3.50547584e+09,
+ -1.68096633e+09,  3.42111274e+09, -1.05516837e+09,
+  5.87866032e+09,  3.02290630e+09,  1.35169839e+09,
+ -1.67939239e+09,  5.00512445e+08,  8.71961933e+08,
+  5.66200586e+09,  8.69193265e+09,  3.99970717e+08,
+ -1.89820644e+10, -1.73812592e+10, -5.15967789e+09,
+  1.05973646e+09, -1.84369693e+10,  1.22131772e+09,
+  1.05556369e+09, -1.06939824e+10, -3.88781845e+09,
+ -4.53257687e+09,  5.28963397e+09, -2.47115666e+08,
+  5.66412884e+09,  4.75251830e+09,  2.99935578e+09,
+  1.36932650e+10,  3.50547584e+09,  2.52532138e+10,
+  3.67199854e+09, -1.05516837e+09,  6.15724744e+09,
+ -4.46211567e+09,  1.35169839e+09, -4.42245242e+09,
+  5.35453880e+09,  8.71961933e+08,  6.68294290e+09,
+ -1.06573939e+09,  3.99970717e+08,  2.33995608e+09,
+  5.67313324e+09, -5.15967789e+09,  3.70483163e+08,
+ -1.58917277e+10,  1.22131772e+09, -2.76780234e+10,
+ -2.03524158e+10, -3.88781845e+09, -2.90717277e+10,
+  1.21753294e+10, -2.47115666e+08,  1.73193265e+10,
+  1.20373353e+09,  2.99935578e+09,  3.04903367e+09,
+  1.51828404e+10, -1.68096633e+09,  3.67199854e+09,
+  5.35194363e+10, -1.83713031e+10,  7.97701318e+09,
+  1.61204978e+09, -5.13162518e+09,  4.74267936e+09,
+  1.25754026e+09,  6.97950220e+08, -5.69121523e+09,
+ -2.06587189e+10,  2.14802343e+10, -1.72295754e+10,
+  1.45228258e+10, -6.08931186e+09,  7.45062225e+09,
+ -6.26214788e+10,  1.06571010e+10, -1.36590044e+10,
+  1.42020791e+10, -8.14934114e+08, -1.98956808e+09,
+ -1.95445461e+10,  3.15871157e+09,  1.55626647e+10,
+  2.52797218e+09, -3.90585652e+09, -8.35614934e+08,
+ -1.68096633e+09,  3.42111274e+09, -1.05516837e+09,
+ -1.83713031e+10,  3.28349854e+10, -4.66348463e+09,
+ -5.13162518e+09,  1.02936896e+10, -4.37187408e+09,
+  6.97950220e+08, -2.77642753e+09,  3.86024890e+09,
+  2.14802343e+10, -4.19176940e+10,  1.50988287e+10,
+ -6.08931186e+09,  1.22570864e+10, -4.86344070e+09,
+  1.06571010e+10, -2.03266618e+10,  4.63449488e+09,
+ -8.14934114e+08,  4.31742313e+08,  2.58467057e+09,
+  3.15871157e+09, -8.40183016e+08, -1.07735578e+10,
+ -3.90585652e+09,  6.62234993e+09, -4.50717423e+08,
+  3.67199854e+09, -1.05516837e+09,  6.15724744e+09,
+  7.97701318e+09, -4.66348463e+09,  2.41197731e+10,
+  4.74267936e+09, -4.37187408e+09,  6.14718887e+09,
+ -5.69121523e+09,  3.86024890e+09, -4.18462665e+09,
+ -1.72295754e+10,  1.50988287e+10, -2.63467570e+10,
+  7.45062225e+09, -4.86344070e+09,  1.08598389e+10,
+ -1.36590044e+10,  4.63449488e+09, -2.61182577e+10,
+ -1.98956808e+09,  2.58467057e+09,  1.51200586e+09,
+  1.55626647e+10, -1.07735578e+10,  6.12466325e+09,
+ -8.35614934e+08, -4.50717423e+08,  1.72892387e+09,
+  2.10939239e+09,  5.87866032e+09, -4.46211567e+09,
+  1.61204978e+09, -5.13162518e+09,  4.74267936e+09,
+  3.52820132e+10,  6.64751098e+09, -5.81076135e+09,
+  7.99568082e+09,  1.58806735e+09, -2.30600293e+09,
+ -1.53454539e+10,  1.41912884e+10, -1.32126647e+10,
+ -1.70321669e+10, -2.00351391e+10,  1.54363104e+10,
+  3.27357980e+09,  4.15483163e+08,  4.51500732e+08,
+  9.04924597e+09,  6.49520498e+09, -5.92587848e+09,
+  8.46395315e+09, -3.12170571e+09,  2.14659590e+09,
+ -3.54082943e+10, -6.92774524e+09,  8.94033675e+09,
+  5.87866032e+09,  3.02290630e+09,  1.35169839e+09,
+ -5.13162518e+09,  1.02936896e+10, -4.37187408e+09,
+  6.64751098e+09,  7.21436237e+10, -3.32375549e+10,
+  1.58806735e+09,  1.06122255e+10, -7.94033675e+09,
+  1.41912884e+10, -5.33698170e+10,  2.34235578e+10,
+ -2.00351391e+10, -3.08659004e+10,  5.79569546e+09,
+  4.15483163e+08,  1.19144436e+10, -2.79241581e+09,
+  6.49520498e+09,  1.22026428e+10, -6.02102489e+09,
+ -3.12170571e+09,  1.84171157e+10, -1.08464714e+10,
+ -6.92774524e+09, -5.43709297e+10,  3.46387262e+10,
+ -4.46211567e+09,  1.35169839e+09, -4.42245242e+09,
+  4.74267936e+09, -4.37187408e+09,  6.14718887e+09,
+ -5.81076135e+09, -3.32375549e+10,  6.31736676e+10,
+ -2.30600293e+09, -7.94033675e+09,  1.90644949e+10,
+ -1.32126647e+10,  2.34235578e+10, -3.77246633e+10,
+  1.54363104e+10,  5.79569546e+09, -5.32645681e+09,
+  4.51500732e+08, -2.79241581e+09,  1.75637628e+09,
+ -5.92587848e+09, -6.02102489e+09,  1.34434627e+10,
+  2.14659590e+09, -1.08464714e+10,  2.22102928e+10,
+  8.94033675e+09,  3.46387262e+10, -7.83219107e+10,
+ -1.15527086e+09, -1.67939239e+09,  5.35453880e+09,
+  1.25754026e+09,  6.97950220e+08, -5.69121523e+09,
+  7.99568082e+09,  1.58806735e+09, -2.30600293e+09,
+  2.45678990e+10,  1.95241581e+09, -8.36749634e+09,
+  8.15164714e+09,  2.01387262e+09, -7.04516837e+09,
+  6.24011713e+09, -8.23572474e+06,  2.52101025e+09,
+  1.43704246e+08, -8.13579795e+08, -5.41800878e+08,
+ -3.80461201e+09,  4.57115666e+09, -1.39335286e+10,
+ -1.11098463e+10, -2.76237189e+09,  2.03244510e+10,
+ -3.22868594e+10, -5.55988287e+09,  9.68521230e+09,
+ -1.67939239e+09,  5.00512445e+08,  8.71961933e+08,
+  6.97950220e+08, -2.77642753e+09,  3.86024890e+09,
+  1.58806735e+09,  1.06122255e+10, -7.94033675e+09,
+  1.95241581e+09,  2.51722182e+10, -9.76207906e+09,
+  2.01387262e+09,  6.90296486e+09, -3.59436310e+09,
+ -8.23572474e+06,  1.00322108e+10, -6.43382138e+09,
+ -8.13579795e+08, -2.08133236e+09,  4.24289898e+09,
+  4.57115666e+09, -9.06830161e+09,  2.44216691e+08,
+ -2.76237189e+09,  1.39227672e+09, -9.28814056e+09,
+ -5.55988287e+09, -4.06863470e+10,  2.77994143e+10,
+  5.35453880e+09,  8.71961933e+08,  6.68294290e+09,
+ -5.69121523e+09,  3.86024890e+09, -4.18462665e+09,
+ -2.30600293e+09, -7.94033675e+09,  1.90644949e+10,
+ -8.36749634e+09, -9.76207906e+09,  6.47318814e+10,
+ -7.04516837e+09, -3.59436310e+09,  1.31084553e+10,
+  2.52101025e+09, -6.43382138e+09,  2.29992679e+10,
+ -5.41800878e+08,  4.24289898e+09,  1.96434846e+09,
+ -1.39335286e+10,  2.44216691e+08, -3.98836750e+10,
+  2.03244510e+10, -9.28814056e+09, -5.70721083e+09,
+  9.68521230e+09,  2.77994143e+10, -7.87758785e+10,
+  2.33244070e+10,  5.66200586e+09, -1.06573939e+09,
+ -2.06587189e+10,  2.14802343e+10, -1.72295754e+10,
+ -1.53454539e+10,  1.41912884e+10, -1.32126647e+10,
+  8.15164714e+09,  2.01387262e+09, -7.04516837e+09,
+  1.60496120e+11, -5.26156662e+09, -1.13147145e+10,
+ -7.57647877e+10,  8.17101025e+09, -2.06400439e+10,
+ -1.76338141e+10, -3.07990117e+10,  1.64314788e+10,
+ -3.77006515e+10, -9.19637628e+09,  1.01987555e+10,
+ -2.11084114e+10, -1.16195095e+10,  1.88193265e+10,
+ -3.76033675e+09,  5.35805271e+09,  2.50583455e+10,
+  5.66200586e+09,  8.69193265e+09,  3.99970717e+08,
+  2.14802343e+10, -4.19176940e+10,  1.50988287e+10,
+  1.41912884e+10, -5.33698170e+10,  2.34235578e+10,
+  2.01387262e+09,  6.90296486e+09, -3.59436310e+09,
+ -5.26156662e+09,  1.62573016e+11, -5.65721669e+10,
+  8.17101025e+09, -8.45661786e+09, -3.73005124e+09,
+ -3.07990117e+10, -2.14388653e+10, -2.61494143e+09,
+ -9.19637628e+09, -1.89591728e+10,  4.09688141e+09,
+ -1.16195095e+10, -5.44731406e+10,  4.31375476e+10,
+  5.35805271e+09,  2.04473939e+10, -1.96452635e+10,
+ -1.06573939e+09,  3.99970717e+08,  2.33995608e+09,
+ -1.72295754e+10,  1.50988287e+10, -2.63467570e+10,
+ -1.32126647e+10,  2.34235578e+10, -3.77246633e+10,
+ -7.04516837e+09, -3.59436310e+09,  1.31084553e+10,
+ -1.13147145e+10, -5.65721669e+10,  1.42996750e+11,
+ -2.06400439e+10, -3.73005124e+09, -1.04425769e+10,
+  1.64314788e+10, -2.61494143e+09,  1.66850878e+10,
+  1.01987555e+10,  4.09688141e+09, -1.93946779e+10,
+  1.88193265e+10,  4.31375476e+10, -9.78411786e+10,
+  2.50583455e+10, -1.96452635e+10,  1.66196047e+10,
+ -2.73584773e+10, -1.89820644e+10,  5.67313324e+09,
+  1.45228258e+10, -6.08931186e+09,  7.45062225e+09,
+ -1.70321669e+10, -2.00351391e+10,  1.54363104e+10,
+  6.24011713e+09, -8.23572474e+06,  2.52101025e+09,
+ -7.57647877e+10,  8.17101025e+09, -2.06400439e+10,
+  1.39614114e+11,  1.14450952e+10,  2.58067350e+10,
+ -1.01994143e+09,  2.37083821e+10, -1.43894949e+10,
+ -1.34082577e+10, -8.13188141e+09,  1.71687775e+10,
+ -3.29346413e+10,  9.27946559e+09, -1.70012811e+10,
+  7.14121523e+09,  6.42679356e+08, -2.20257687e+10,
+ -1.89820644e+10, -1.73812592e+10, -5.15967789e+09,
+ -6.08931186e+09,  1.22570864e+10, -4.86344070e+09,
+ -2.00351391e+10, -3.08659004e+10,  5.79569546e+09,
+ -8.23572474e+06,  1.00322108e+10, -6.43382138e+09,
+  8.17101025e+09, -8.45661786e+09, -3.73005124e+09,
+  1.14450952e+10,  1.44711406e+11, -4.85954758e+10,
+  2.37083821e+10, -4.48338946e+10,  2.22380893e+10,
+ -8.13188141e+09, -4.31508638e+10,  3.70394070e+10,
+  9.27946559e+09, -2.95963543e+10,  1.40676720e+10,
+  6.42679356e+08,  7.28418741e+09, -1.03583968e+10,
+  5.67313324e+09, -5.15967789e+09,  3.70483163e+08,
+  7.45062225e+09, -4.86344070e+09,  1.08598389e+10,
+  1.54363104e+10,  5.79569546e+09, -5.32645681e+09,
+  2.52101025e+09, -6.43382138e+09,  2.29992679e+10,
+ -2.06400439e+10, -3.73005124e+09, -1.04425769e+10,
+  2.58067350e+10, -4.85954758e+10,  1.55051786e+11,
+ -1.43894949e+10,  2.22380893e+10, -1.77103660e+10,
+  1.71687775e+10,  3.70394070e+10, -7.94883895e+10,
+ -1.70012811e+10,  1.40676720e+10, -4.85184919e+10,
+ -2.20257687e+10, -1.03583968e+10, -2.77950952e+10,
+ -6.20183163e+10,  1.05973646e+09, -1.58917277e+10,
+ -6.26214788e+10,  1.06571010e+10, -1.36590044e+10,
+  3.27357980e+09,  4.15483163e+08,  4.51500732e+08,
+  1.43704246e+08, -8.13579795e+08, -5.41800878e+08,
+ -1.76338141e+10, -3.07990117e+10,  1.64314788e+10,
+ -1.01994143e+09,  2.37083821e+10, -1.43894949e+10,
+  1.39611698e+11, -1.12319180e+10,  2.96296486e+10,
+  4.22811127e+09,  4.34842606e+09,  2.43174597e+10,
+  7.56508053e+08,  4.33459004e+09, -2.59982430e+10,
+ -4.72005124e+09, -1.67920937e+09, -3.49816984e+08,
+  1.05973646e+09, -1.84369693e+10,  1.22131772e+09,
+  1.06571010e+10, -2.03266618e+10,  4.63449488e+09,
+  4.15483163e+08,  1.19144436e+10, -2.79241581e+09,
+ -8.13579795e+08, -2.08133236e+09,  4.24289898e+09,
+ -3.07990117e+10, -2.14388653e+10, -2.61494143e+09,
+  2.37083821e+10, -4.48338946e+10,  2.22380893e+10,
+ -1.12319180e+10,  8.22470571e+10,  1.43959004e+09,
+  4.34842606e+09,  1.98506003e+10, -1.62421303e+10,
+  4.33459004e+09,  7.08971449e+09, -9.18295022e+09,
+ -1.67920937e+09, -1.39840922e+10, -2.94395315e+09,
+ -1.58917277e+10,  1.22131772e+09, -2.76780234e+10,
+ -1.36590044e+10,  4.63449488e+09, -2.61182577e+10,
+  4.51500732e+08, -2.79241581e+09,  1.75637628e+09,
+ -5.41800878e+08,  4.24289898e+09,  1.96434846e+09,
+  1.64314788e+10, -2.61494143e+09,  1.66850878e+10,
+ -1.43894949e+10,  2.22380893e+10, -1.77103660e+10,
+  2.96296486e+10,  1.43959004e+09,  7.07293851e+10,
+  2.43174597e+10, -1.62421303e+10,  1.91043045e+10,
+ -2.59982430e+10, -9.18295022e+09, -3.29619253e+10,
+ -3.49816984e+08, -2.94395315e+09, -5.77092972e+09,
+ -1.87033236e+10,  1.05556369e+09, -2.03524158e+10,
+  1.42020791e+10, -8.14934114e+08, -1.98956808e+09,
+  9.04924597e+09,  6.49520498e+09, -5.92587848e+09,
+ -3.80461201e+09,  4.57115666e+09, -1.39335286e+10,
+ -3.77006515e+10, -9.19637628e+09,  1.01987555e+10,
+ -1.34082577e+10, -8.13188141e+09,  1.71687775e+10,
+  4.22811127e+09,  4.34842606e+09,  2.43174597e+10,
+  1.29962562e+11,  2.06104685e+10,  3.40849195e+08,
+ -7.41704173e+10,  1.18621523e+10, -2.54342240e+10,
+ -9.65473646e+09, -3.07997804e+10,  1.56097731e+10,
+  1.05556369e+09, -1.06939824e+10, -3.88781845e+09,
+ -8.14934114e+08,  4.31742313e+08,  2.58467057e+09,
+  6.49520498e+09,  1.22026428e+10, -6.02102489e+09,
+  4.57115666e+09, -9.06830161e+09,  2.44216691e+08,
+ -9.19637628e+09, -1.89591728e+10,  4.09688141e+09,
+ -8.13188141e+09, -4.31508638e+10,  3.70394070e+10,
+  4.34842606e+09,  1.98506003e+10, -1.62421303e+10,
+  2.06104685e+10,  7.66246120e+10, -1.07623426e+10,
+  1.18621523e+10, -7.22475110e+09, -3.49576135e+09,
+ -3.07997804e+10, -2.00125256e+10, -3.55609810e+09,
+ -2.03524158e+10, -3.88781845e+09, -2.90717277e+10,
+ -1.98956808e+09,  2.58467057e+09,  1.51200586e+09,
+ -5.92587848e+09, -6.02102489e+09,  1.34434627e+10,
+ -1.39335286e+10,  2.44216691e+08, -3.98836750e+10,
+  1.01987555e+10,  4.09688141e+09, -1.93946779e+10,
+  1.71687775e+10,  3.70394070e+10, -7.94883895e+10,
+  2.43174597e+10, -1.62421303e+10,  1.91043045e+10,
+  3.40849195e+08, -1.07623426e+10,  1.33216486e+11,
+ -2.54342240e+10, -3.49576135e+09, -1.58661420e+10,
+  1.56097731e+10, -3.55609810e+09,  1.64283529e+10,
+  1.89209078e+10, -4.53257687e+09,  1.21753294e+10,
+ -1.95445461e+10,  3.15871157e+09,  1.55626647e+10,
+  8.46395315e+09, -3.12170571e+09,  2.14659590e+09,
+ -1.11098463e+10, -2.76237189e+09,  2.03244510e+10,
+ -2.11084114e+10, -1.16195095e+10,  1.88193265e+10,
+ -3.29346413e+10,  9.27946559e+09, -1.70012811e+10,
+  7.56508053e+08,  4.33459004e+09, -2.59982430e+10,
+ -7.41704173e+10,  1.18621523e+10, -2.54342240e+10,
+  1.41650000e+11, -3.29000000e+10,  1.77000000e+10,
+ -1.09235066e+10,  2.63012445e+10, -1.82946193e+10,
+ -4.53257687e+09,  5.28963397e+09, -2.47115666e+08,
+  3.15871157e+09, -8.40183016e+08, -1.07735578e+10,
+ -3.12170571e+09,  1.84171157e+10, -1.08464714e+10,
+ -2.76237189e+09,  1.39227672e+09, -9.28814056e+09,
+ -1.16195095e+10, -5.44731406e+10,  4.31375476e+10,
+  9.27946559e+09, -2.95963543e+10,  1.40676720e+10,
+  4.33459004e+09,  7.08971449e+09, -9.18295022e+09,
+  1.18621523e+10, -7.22475110e+09, -3.49576135e+09,
+ -3.29000000e+10,  1.17240000e+11, -3.94200000e+10,
+  2.63012445e+10, -5.72943119e+10,  2.60487775e+10,
+  1.21753294e+10, -2.47115666e+08,  1.73193265e+10,
+  1.55626647e+10, -1.07735578e+10,  6.12466325e+09,
+  2.14659590e+09, -1.08464714e+10,  2.22102928e+10,
+  2.03244510e+10, -9.28814056e+09, -5.70721083e+09,
+  1.88193265e+10,  4.31375476e+10, -9.78411786e+10,
+ -1.70012811e+10,  1.40676720e+10, -4.85184919e+10,
+ -2.59982430e+10, -9.18295022e+09, -3.29619253e+10,
+ -2.54342240e+10, -3.49576135e+09, -1.58661420e+10,
+  1.77000000e+10, -3.94200000e+10,  1.79360000e+11,
+ -1.82946193e+10,  2.60487775e+10, -2.41193338e+10,
+  1.28695461e+09,  5.66412884e+09,  1.20373353e+09,
+  2.52797218e+09, -3.90585652e+09, -8.35614934e+08,
+ -3.54082943e+10, -6.92774524e+09,  8.94033675e+09,
+ -3.22868594e+10, -5.55988287e+09,  9.68521230e+09,
+ -3.76033675e+09,  5.35805271e+09,  2.50583455e+10,
+  7.14121523e+09,  6.42679356e+08, -2.20257687e+10,
+ -4.72005124e+09, -1.67920937e+09, -3.49816984e+08,
+ -9.65473646e+09, -3.07997804e+10,  1.56097731e+10,
+ -1.09235066e+10,  2.63012445e+10, -1.82946193e+10,
+  8.57976428e+10,  1.09063690e+10, -1.89915813e+10,
+  5.66412884e+09,  4.75251830e+09,  2.99935578e+09,
+ -3.90585652e+09,  6.62234993e+09, -4.50717423e+08,
+ -6.92774524e+09, -5.43709297e+10,  3.46387262e+10,
+ -5.55988287e+09, -4.06863470e+10,  2.77994143e+10,
+  5.35805271e+09,  2.04473939e+10, -1.96452635e+10,
+  6.42679356e+08,  7.28418741e+09, -1.03583968e+10,
+ -1.67920937e+09, -1.39840922e+10, -2.94395315e+09,
+ -3.07997804e+10, -2.00125256e+10, -3.55609810e+09,
+  2.63012445e+10, -5.72943119e+10,  2.60487775e+10,
+  1.09063690e+10,  1.47241757e+11, -5.45318448e+10,
+  1.20373353e+09,  2.99935578e+09,  3.04903367e+09,
+ -8.35614934e+08, -4.50717423e+08,  1.72892387e+09,
+  8.94033675e+09,  3.46387262e+10, -7.83219107e+10,
+  9.68521230e+09,  2.77994143e+10, -7.87758785e+10,
+  2.50583455e+10, -1.96452635e+10,  1.66196047e+10,
+ -2.20257687e+10, -1.03583968e+10, -2.77950952e+10,
+ -3.49816984e+08, -2.94395315e+09, -5.77092972e+09,
+  1.56097731e+10, -3.55609810e+09,  1.64283529e+10,
+ -1.82946193e+10,  2.60487775e+10, -2.41193338e+10,
+ -1.89915813e+10, -5.45318448e+10,  1.76957233e+11,
 };
 
 pylith::feassemble::ElasticityImplicitData3DQuadratic::ElasticityImplicitData3DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -43,28 +43,30 @@
  -0.6, 0.6, 0.4
 };
 
+// Reference cell has volume of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataHex3D::_jacobian[] = {
-  2.5, -0.3, -0.4, -0.1, 1.8, 0.6, -0.1, 0.3, 2.6,
-  2.5, 0.2, 0.9, -0.1, 2.2, -0.2, -0.1, -0.3, 1.5,
-  3.0, -0.3, -0.2, 0.3, 1.8, -0.1, -0.7, 0.3, 2.7,
-  3.0, 0.2, 0.9, 0.3, 2.2, -0.5, -0.7, -0.3, 3.1,
-  3.8, -0.1, -0.4, -0.9, 1.1, 0.6, -1.2, 0.4, 2.6,
-  3.8, 0.2, 0.9, -0.9, 1.9, -0.2, -1.2, 1.3, 1.5,
-  4.1, -0.1, -0.2, -0.1, 1.1, -0.1, -0.3, 0.4, 2.7,
-  4.1, 0.2, 0.9, -0.1, 1.9, -0.5, -0.3, 1.3, 3.1,
-  3.698, -0.088, -0.012, -0.116, 1.446, -0.056, -0.51, 0.46, 2.7
+  2.5/2.0, -0.3/2.0, -0.4/2.0, -0.1/2.0, 1.8/2.0, 0.6/2.0, -0.1/2.0, 0.3/2.0, 2.6/2.0,
+  2.5/2.0, 0.2/2.0, 0.9/2.0, -0.1/2.0, 2.2/2.0, -0.2/2.0, -0.1/2.0, -0.3/2.0, 1.5/2.0,
+  3.0/2.0, -0.3/2.0, -0.2/2.0, 0.3/2.0, 1.8/2.0, -0.1/2.0, -0.7/2.0, 0.3/2.0, 2.7/2.0,
+  3.0/2.0, 0.2/2.0, 0.9/2.0, 0.3/2.0, 2.2/2.0, -0.5/2.0, -0.7/2.0, -0.3/2.0, 3.1/2.0,
+  3.8/2.0, -0.1/2.0, -0.4/2.0, -0.9/2.0, 1.1/2.0, 0.6/2.0, -1.2/2.0, 0.4/2.0, 2.6/2.0,
+  3.8/2.0, 0.2/2.0, 0.9/2.0, -0.9/2.0, 1.9/2.0, -0.2/2.0, -1.2/2.0, 1.3/2.0, 1.5/2.0,
+  4.1/2.0, -0.1/2.0, -0.2/2.0, -0.1/2.0, 1.1/2.0, -0.1/2.0, -0.3/2.0, 0.4/2.0, 2.7/2.0,
+  4.1/2.0, 0.2/2.0, 0.9/2.0, -0.1/2.0, 1.9/2.0, -0.5/2.0, -0.3/2.0, 1.3/2.0, 3.1/2.0,
+  3.698/2.0, -0.088/2.0, -0.012/2.0, -0.116/2.0, 1.446/2.0, -0.056/2.0, -0.51/2.0, 0.46/2.0, 2.7/2.0
 };
 
+// Reference cell has volume of 2.0, so divide by 8.0;
 const double pylith::feassemble::GeomDataHex3D::_jacobianDet[] = {
-  11.13,
-  8.359,
-  14.622,
-  21.199,
-  9.41,
-  13.135,
-  12.253,
-  27.302,
-  14.494708
+  11.13/8.0,
+  8.359/8.0,
+  14.622/8.0,
+  21.199/8.0,
+  9.41/8.0,
+  13.135/8.0,
+  12.253/8.0,
+  27.302/8.0,
+  14.494708/8.0
 };
 
 pylith::feassemble::GeomDataHex3D::GeomDataHex3D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -30,14 +30,16 @@
   0.459
 };
 
+// Reference cell has length of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataLine1D::_jacobian[] = {
-  3.3,
-  3.3
+  3.3/2.0,
+  3.3/2.0
 };
 
+// Reference cell has length of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataLine1D::_jacobianDet[] = {
-  3.3,
-  3.3
+  3.3/2.0,
+  3.3/2.0
 };
 
 pylith::feassemble::GeomDataLine1D::GeomDataLine1D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -30,14 +30,16 @@
   0.459
 };
 
+// Reference cell has length of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataLine2D::_jacobian[] = {
-  3.3, -3.8,
-  3.3, -3.8
+  3.3/2.0, -3.8/2.0,
+  3.3/2.0, -3.8/2.0
 };
 
+// Reference cell has length of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataLine2D::_jacobianDet[] = {
-  5.0328918128646478,
-  5.0328918128646478
+  5.0328918128646478/2.0,
+  5.0328918128646478/2.0
 };
 
 pylith::feassemble::GeomDataLine2D::GeomDataLine2D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -30,14 +30,16 @@
   0.459
 };
 
+// Reference cell has length of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataLine3D::_jacobian[] = {
-  3.3, -3.8, 2.9,
-  3.3, -3.8, 2.9
+  3.3/2.0, -3.8/2.0, 2.9/2.0,
+  3.3/2.0, -3.8/2.0, 2.9/2.0
 };
 
+// Reference cell has length of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataLine3D::_jacobianDet[] = {
-  5.8086142925830417,
-  5.8086142925830417
+  5.8086142925830417/2.0,
+  5.8086142925830417/2.0
 };
 
 pylith::feassemble::GeomDataLine3D::GeomDataLine3D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -35,20 +35,22 @@
  -0.2,  0.4
 };
 
+// Reference cell has area of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataQuad2D::_jacobian[] = {
-  0.5, -0.4, -0.3, 1.5,
-  0.5, -0.1, -0.3, 1.4,
-  0.8, -0.4, -0.4, 1.5,
-  0.8, -0.1, -0.4, 1.4,
-  0.71, -0.28, -0.37, 1.46
+  0.5/2.0, -0.4/2.0, -0.3/2.0, 1.5/2.0,
+  0.5/2.0, -0.1/2.0, -0.3/2.0, 1.4/2.0,
+  0.8/2.0, -0.4/2.0, -0.4/2.0, 1.5/2.0,
+  0.8/2.0, -0.1/2.0, -0.4/2.0, 1.4/2.0,
+  0.71/2.0, -0.28/2.0, -0.37/2.0, 1.46/2.0
 };
 
+// Reference cell has area of 2.0, so divide by 4.0;
 const double pylith::feassemble::GeomDataQuad2D::_jacobianDet[] = {
-  0.63,
-  0.67,
-  1.04,
-  1.08,
-  0.933
+  0.63/4.0,
+  0.67/4.0,
+  1.04/4.0,
+  1.08/4.0,
+  0.933/4.0
 };
 
 pylith::feassemble::GeomDataQuad2D::GeomDataQuad2D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -35,20 +35,22 @@
  -0.4,  0.6
 };
 
+// Reference cell has area of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataQuad3D::_jacobian[] = {
-  -0.1, -1.4, 1.6, -0.4, 0.7, -0.2,
-  -0.1, -1.4, 1.6, -0.1, 0.7, 0.4,
-  -0.1, -1.4, 1.9, -0.4, 1.3, -0.2,
-  -0.1, -1.4, 1.9, -0.1, 1.3, 0.4,
-  -0.1, -1.4, 1.84, -0.31, 1.18, -0.02
+  -0.1/2.0, -1.4/2.0, 1.6/2.0, -0.4/2.0, 0.7/2.0, -0.2/2.0,
+  -0.1/2.0, -1.4/2.0, 1.6/2.0, -0.1/2.0, 0.7/2.0, 0.4/2.0,
+  -0.1/2.0, -1.4/2.0, 1.9/2.0, -0.4/2.0, 1.3/2.0, -0.2/2.0,
+  -0.1/2.0, -1.4/2.0, 1.9/2.0, -0.1/2.0, 1.3/2.0, 0.4/2.0,
+  -0.1/2.0, -1.4/2.0, 1.84/2.0, -0.31/2.0, 1.18/2.0, -0.02/2.0
 };
 
+// Reference cell has area of 2.0, so divide by 4.0;
 const double pylith::feassemble::GeomDataQuad3D::_jacobianDet[] = {
-  2.4899799195977463,
-  2.5397243944963788,
-  3.2703516630478742,
-  3.3300750742288079,
-  3.1049003204611898
+  2.4899799195977463/4.0,
+  2.5397243944963788/4.0,
+  3.2703516630478742/4.0,
+  3.3300750742288079/4.0,
+  3.1049003204611898/4.0
 };
 
 pylith::feassemble::GeomDataQuad3D::GeomDataQuad3D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -32,14 +32,16 @@
   0.459, 0.727, 0.693
 };
 
+// Reference cell has volume of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataTet3D::_jacobian[] = {
-  3.4, 0.3, 1.2, 0.1, 3.2, 1.0, -0.1, -0.5, 2.8,
-  3.4, 0.3, 1.2, 0.1, 3.2, 1.0, -0.1, -0.5, 2.8
+  3.4/2.0, 0.3/2.0, 1.2/2.0, 0.1/2.0, 3.2/2.0, 1.0/2.0, -0.1/2.0, -0.5/2.0, 2.8/2.0,
+  3.4/2.0, 0.3/2.0, 1.2/2.0, 0.1/2.0, 3.2/2.0, 1.0/2.0, -0.1/2.0, -0.5/2.0, 2.8/2.0
 };
 
+// Reference cell has volume of 2.0, so divide by 8.0;
 const double pylith::feassemble::GeomDataTet3D::_jacobianDet[] = {
-  32.374,
-  32.374
+  32.374/8.0,
+  32.374/8.0
 };
 
 pylith::feassemble::GeomDataTet3D::GeomDataTet3D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -31,14 +31,16 @@
   0.459, 0.727
 };
 
+// Reference cell has area of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataTri2D::_jacobian[] = {
-  2.0, 0.5, 0.8, 2.8,
-  2.0, 0.5, 0.8, 2.8
+  2.0/2.0, 0.5/2.0, 0.8/2.0, 2.8/2.0,
+  2.0/2.0, 0.5/2.0, 0.8/2.0, 2.8/2.0
 };
 
+// Reference cell has area of 2.0, so divide by 4.0;
 const double pylith::feassemble::GeomDataTri2D::_jacobianDet[] = {
-  5.2,
-  5.2
+  5.2/4.0,
+  5.2/4.0
 };
 
 pylith::feassemble::GeomDataTri2D::GeomDataTri2D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -31,14 +31,16 @@
   0.459, 0.727
 };
 
+// Reference cell has area of 2.0, so divide by 2.0;
 const double pylith::feassemble::GeomDataTri3D::_jacobian[] = {
-  -1.5, -1.3, -3.0, -0.9, 0.5, 1.8,
-  -1.5, -1.3, -3.0, -0.9, 0.5, 1.8
+  -1.5/2.0, -1.3/2.0, -3.0/2.0, -0.9/2.0, 0.5/2.0, 1.8/2.0,
+  -1.5/2.0, -1.3/2.0, -3.0/2.0, -0.9/2.0, 0.5/2.0, 1.8/2.0
 };
 
+// Reference cell has area of 2.0, so divide by 4.0;
 const double pylith::feassemble::GeomDataTri3D::_jacobianDet[] = {
-  5.933590818383081,
-  5.933590818383081
+  5.933590818383081/4.0,
+  5.933590818383081/4.0
 };
 
 pylith::feassemble::GeomDataTri3D::GeomDataTri3D(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -41,7 +41,7 @@
     self.cellDim = 1
     self.numVertices = 3
     self.numCells = 1
-    self.vertices = numpy.array( [[-0.25], [0.875], [2.0]],
+    self.vertices = numpy.array( [[-0.25], [2.0], [0.875]],
                                  dtype=numpy.float64)
     self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
     self.verticesRef = numpy.array([[-1.0], [1.0], [0.0]],

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -41,7 +41,7 @@
     self.cellDim = 1
     self.numVertices = 3
     self.numCells = 1
-    self.vertices = numpy.array( [[-0.2, -0.5], [0.3, -0.2], [0.7, 0.3]],
+    self.vertices = numpy.array( [[-0.2, -0.5], [0.7, 0.3], [0.25, -0.1]],
                                  dtype=numpy.float64)
     self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
     self.verticesRef = numpy.array([[-1.0], [1.0], [0.0]], dtype=numpy.float64)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -42,8 +42,8 @@
     self.numVertices = 3
     self.numCells = 1
     self.vertices = numpy.array( [[1.0, -1.5, -2.0],
-                                  [0.3, 0.3, 0.8],
-                                  [-0.5, 2.0, 3.0]],
+                                  [-0.5, 2.0, 3.0],
+                                  [0.25, 0.25, 0.5]],
                                  dtype=numpy.float64)
     self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
     self.verticesRef = numpy.array([[-1.0], [1.0], [0.0]], dtype=numpy.float64)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -44,9 +44,9 @@
     self.vertices = numpy.array( [[-1.0, -1.0],
                                   [+1.0, +0.2],
                                   [-1.5, +0.5],
-                                  [+0.0, -0.6],
-                                  [+0.25, +0.35],
-                                  [-1.25, -0.25]],
+                                  [-0.25, +0.35],
+                                  [-1.25, -0.25],
+                                  [0.0, -0.4]],
                                  dtype=numpy.float64)
     self.cells = numpy.array( [[0, 1, 2, 3, 4, 5]], dtype=numpy.int32)
     self.verticesRef = numpy.array( [[-1.0, -1.0],

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -44,9 +44,9 @@
     self.vertices = numpy.array( [[ 2.0, -0.5, -0.5],
                                   [ 0.5,  3.0,  0.0],
                                   [-0.5,  0.0,  2.0],
-                                  [ 1.3,  1.2, -0.3],
-                                  [ 0.1,  1.4,  0.9],
-                                  [ 0.8, -0.3,  0.7]],
+                                  [ 0.0,  1.5,  1.0],
+                                  [ 0.75, -0.25, 0.75],
+                                  [ 1.25, 1.25, -0.25]],
                                  dtype=numpy.float64)
     self.cells = numpy.array( [[0, 1, 2, 3, 4, 5]], dtype=numpy.int32)
     self.verticesRef = numpy.array( [[-1.0, -1.0],

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -45,12 +45,12 @@
                                   [ 2.0, -2.0, -0.5],
                                   [ 1.0,  1.0,  0.0],
                                   [ 0.2,  0.5,  2.0],
-                                  [ 0.7, -2.1, -0.8],
-                                  [ 0.3, -0.5, -0.5],
-                                  [-0.2, -0.8,  0.5],
-                                  [ 1.5, -0.6, -0.2],
-                                  [ 0.6,  0.8,  0.9],
-                                  [ 1.1, -0.8,  0.7]],
+                                  [ 1.5, -0.5, -0.25],
+                                  [ 0.25, -0.5, -0.5],
+                                  [0.75, -2.0, -0.75],
+                                  [-0.15, -0.75,  0.5],
+                                  [ 1.1, -0.75,  0.75],
+                                  [ 0.6,  0.75,  1.0]],
                                  dtype=numpy.float64)
     self.cells = numpy.array( [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]],
                               dtype=numpy.int32)
@@ -58,8 +58,8 @@
                                      [+1.0, -1.0, -1.0],
                                      [-1.0, +1.0, -1.0],
                                      [-1.0, -1.0, +1.0],
+                                     [ 0.0,  0.0, -1.0],
                                      [-1.0,  0.0, -1.0],
-                                     [ 0.0,  0.0, -1.0],
                                      [ 0.0, -1.0, -1.0],
                                      [-1.0, -1.0,  0.0],
                                      [ 0.0, -1.0,  0.0],

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature1DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature1DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature1DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -27,16 +27,16 @@
   return -0.5*(1.0-p) + 0.5*p
 
 def N1(p):
-  return (1.0-p**2)
+  return 0.5*p*(1.0+p)
 
 def N1p(p):
-  return -2.0*p
+  return +0.5*(1.0+p) + 0.5*p
 
 def N2(p):
-  return 0.5*p*(1.0+p)
+  return (1.0-p**2)
 
 def N2p(p):
-  return +0.5*(1.0+p) + 0.5*p
+  return -2.0*p
 
 # ----------------------------------------------------------------------
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DLinear.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DLinear.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -22,31 +22,31 @@
 
 # ----------------------------------------------------------------------
 def N0(p):
-  return 1.0-p[0]-p[1]
+  return -0.5*(p[0]+p[1])
 
 def N0p(p):
-  return -1.0
+  return -0.5
 
 def N0q(p):
-  return -1.0
+  return -0.5
 
 def N1(p):
-  return p[0]
+  return 0.5*(1.0+p[0])
 
 def N1p(p):
-  return 1.0
+  return 0.5
 
 def N1q(p):
   return 0.0
 
 def N2(p):
-  return p[1]
+  return 0.5*(1.0+p[1])
 
 def N2p(p):
   return 0.0
 
 def N2q(p):
-  return 1.0
+  return 0.5
 
 # ----------------------------------------------------------------------
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature2DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -22,58 +22,58 @@
 
 # ----------------------------------------------------------------------
 def N0(p):
-  return (1.0-p[0]-p[1])*(1-2.0*p[0]-2.0*p[1])
+  return 0.5*(1.0+p[0]+p[1])*(p[0]+p[1])
 
 def N0p(p):
-  return 4.0*p[0]+4.0*p[1]-3.0
+  return 0.5+p[0]+p[1]
 
 def N0q(p):
-  return 4.0*p[0]+4.0*p[1]-3.0
+  return 0.5+p[0]+p[1]
 
 def N1(p):
-  return p[0]*(2.0*p[0]-1.0)
+  return 0.5*p[0]*(p[0]+1.0)
 
 def N1p(p):
-  return 4.0*p[0]-1.0
+  return 0.5+p[0]
 
 def N1q(p):
   return 0.0
 
 def N2(p):
-  return p[1]*(2.0*p[1]-1.0)
+  return 0.5*p[1]*(p[1]+1.0)
 
 def N2p(p):
   return 0.0
 
 def N2q(p):
-  return 4.0*p[1]-1.0
+  return 0.5+p[1]
 
 def N3(p):
-  return 4.0*p[0]*(1.0-p[0]-p[1])
+  return (1.0+p[0])*(1.0+p[1])
 
 def N3p(p):
-  return -8.0*p[0]-4.0*p[1]+4.0
+  return 1.0+p[1]
 
 def N3q(p):
-  return -4.0*p[0]
+  return 1.0+p[0]
 
 def N4(p):
-  return 4.0*p[0]*p[1]
+  return -(p[0]+p[1])*(1.0+p[1])
 
 def N4p(p):
-  return 4.0*p[1]
+  return -(1.0+p[1])
 
 def N4q(p):
-  return 4.0*p[0]
+  return -1.0-p[0]-2.0*p[1]
 
 def N5(p):
-  return 4.0*p[1]*(1.0-p[0]-p[1])
+  return -(p[0]+p[1])*(1.0+p[0])
 
 def N5p(p):
-  return -4.0*p[1]
+  return -1.0-p[1]-2.0*p[0]
 
 def N5q(p):
-  return -8.0*p[1]-4.0*p[0]+4.0
+  return -(1.0+p[0])
 
 # ----------------------------------------------------------------------
 
@@ -92,11 +92,12 @@
     """
     Component.__init__(self, name, facility="quadrature")
     
-    self.quadPtsRef = numpy.array( [[2.0/3.0, 1.0/6.0],
-                                    [1.0/6.0, 2.0/3.0],
-                                    [1.0/6.0, 1.0/6.0]],
+    # These are just approximate points used to test the quadrature routine
+    self.quadPtsRef = numpy.array( [[-1.0+4.0/4.0, -1.0+1.0/4.0],
+                                    [-1.0+1.0/4.0, -1.0+4.0/4.0],
+                                    [-1.0+1.0/4.0, -1.0+1.0/4.0]],
                                    dtype=numpy.float64)
-    self.quadWts = numpy.array([1.0/6.0, 1.0/6.0, 1.0/6.0],
+    self.quadWts = numpy.array([2.0/3.0, 2.0/3.0, 2.0/3.0],
                                dtype=numpy.float64)
     self.numBasis = 6
     self.numQuadPts = 3

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DLinear.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DLinear.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -22,22 +22,22 @@
 
 # ----------------------------------------------------------------------
 def N0(p):
-  return 1.0-p[0]-p[1]-p[2]
+  return 0.5*(1.0 + p[0] + p[1] + p[2])
 
 def N0p(p):
-  return -1.0
+  return -0.5
 
 def N0q(p):
-  return -1.0
+  return -0.5
 
 def N0r(p):
-  return -1.0
+  return -0.5
 
 def N1(p):
-  return p[0]
+  return 0.5*(1.0 + p[0])
 
 def N1p(p):
-  return 1.0
+  return 0.5
 
 def N1q(p):
   return 0.0
@@ -46,19 +46,19 @@
   return 0.0
 
 def N2(p):
-  return p[1]
+  return 0.5*(1.0 + p[1])
 
 def N2p(p):
   return 0.0
 
 def N2q(p):
-  return 1.0
+  return 0.5
 
 def N2r(p):
   return 0.0
 
 def N3(p):
-  return p[2]
+  return 0.5*(1.0 + p[2])
 
 def N3p(p):
   return 0.0
@@ -67,7 +67,7 @@
   return 0.0
 
 def N3r(p):
-  return 1.0
+  return 0.5
 
 
 # ----------------------------------------------------------------------
@@ -87,9 +87,9 @@
     """
     Component.__init__(self, name, facility="quadrature")
     
-    self.quadPtsRef = numpy.array( [[1.0/4.0, 1.0/4.0, 1.0/4.0]],
+    self.quadPtsRef = numpy.array( [[-0.5, -0.5, -0.5]],
                                    dtype=numpy.float64)
-    self.quadWts = numpy.array([1.0/6.0], dtype=numpy.float64)
+    self.quadWts = numpy.array([4.0/3.0], dtype=numpy.float64)
     self.numBasis = 4
     self.numQuadPts = 1
     self.spaceDim = 3

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Quadrature3DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -22,22 +22,22 @@
 
 # ----------------------------------------------------------------------
 def N0(p):
-  return (1.0-p[0]-p[1]-p[2])*(1.0-2.0*p[0]-2.0*p[1]-2.0*p[2])
+  return 0.5 * (1.0+p[0]+p[1]+p[2])*(2.0+p[0]+p[1]+p[2])
 
 def N0p(p):
-  return 4.0*p[0]+4.0*p[1]+4.0*p[2]-3.0
+  return 1.5+p[0]+p[1]+p[2]
 
 def N0q(p):
-  return 4.0*p[0]+4.0*p[1]+4.0*p[2]-3.0
+  return 1.5+p[0]+p[1]+p[2]
 
 def N0r(p):
-  return 4.0*p[0]+4.0*p[1]+4.0*p[2]-3.0
+  return 1.5+p[0]+p[1]+p[2]
 
 def N1(p):
-  return p[0]*(2.0*p[0]-1.0)
+  return 0.5*(1.0+p[0])*p[0]
 
 def N1p(p):
-  return 4.0*p[0]-1
+  return 0.5+p[0]
 
 def N1q(p):
   return 0.0
@@ -46,19 +46,19 @@
   return 0.0
 
 def N2(p):
-  return p[1]*(2.0*p[1]-1.0)
+  return 0.5*(1.0+p[1])*p[1]
 
 def N2p(p):
   return 0.0
 
 def N2q(p):
-  return 4.0*p[1]-1.0
+  return 0.5+p[1]
 
 def N2r(p):
   return 0.0
 
 def N3(p):
-  return p[2]*(2.0*p[2]-1.0)
+  return 0.5*(1.0+p[2])*p[2]
 
 def N3p(p):
   return 0.0
@@ -67,79 +67,79 @@
   return 0.0
 
 def N3r(p):
-  return 4.0*p[2]-1.0
+  return 0.5+p[2]
 
 def N4(p):
-  return 4.0*p[0]*(1.0-p[0]-p[1]-p[2])
+  return (1.0+p[0])*(1.0+p[1])
 
 def N4p(p):
-  return -8.0*p[0]+4.0*(1.0-p[1]-p[2])
+  return 1.0+p[1]
 
 def N4q(p):
-  return -4.0*p[0]
+  return 1.0+p[0]
 
 def N4r(p):
-  return -4.0*p[0]
+  return 0.0
 
 def N5(p):
-  return 4.0*p[1]*(1.0-p[0]-p[1]-p[2])
+  return -(1.0+p[1])*(1.0+p[0]+p[1]+p[2])
 
 def N5p(p):
-  return -4.0*p[1]
+  return -(1.0+p[1])
 
 def N5q(p):
-  return -8.0*p[1]+4.0*(1.0-p[0]-p[2])
+  return -2.0-p[0]-2.0*p[1]-p[2]
 
 def N5r(p):
-  return -4.0*p[1]
+  return -(1.0+p[1])
 
 def N6(p):
-  return 4.0*p[2]*(1.0-p[0]-p[1]-p[2])
+  return -(1.0+p[0])*(1.0+p[0]+p[1]+p[2])
 
 def N6p(p):
-  return -4.0*p[2]
+  return -2.0-2.0*p[0]-p[1]-p[2]
 
 def N6q(p):
-  return -4.0*p[2]
+  return -(1.0+p[0])
 
 def N6r(p):
-  return -8.0*p[2]+4.0*(1.0-p[0]-p[1])
+  return -(1.0+p[0])
 
 def N7(p):
-  return 4.0*p[0]*p[1]
+  return -(1.0+p[2])*(1.0+p[0]+p[1]+p[2])
 
 def N7p(p):
-  return 4.0*p[1]
+  return -(1.0+p[2])
 
 def N7q(p):
-  return 4.0*p[0]
+  return -(1.0+p[2])
 
 def N7r(p):
-  return 0.0
+  return -2.0-p[0]-p[1]-2.0*p[2]
 
 def N8(p):
-  return 4.0*p[1]*p[2]
+  return (1.0+p[0])*(1.0+p[2])
 
 def N8p(p):
-  return 0.0
+  return 1.0 + p[2]
 
 def N8q(p):
-  return 4.0*p[2]
+  return 0.0
 
 def N8r(p):
-  return 4.0*p[1]
+  return 1.0 + p[0]
 
 def N9(p):
-  return 4.0*p[0]*p[2]
+  return (1.0+p[1])*(1.0+p[2])
 
 def N9p(p):
-  return 4.0*p[2]
+  return 0.0
 
 def N9q(p):
-  return 0.0
+  return 1.0 + p[2]
 
 def N9r(p):
-  return 4.0*p[0]
+  return 1.0 + p[1]
 
 
 # ----------------------------------------------------------------------
@@ -161,12 +161,12 @@
     
 
     # These are just approximate points used to test the quadrature routine
-    self.quadPtsRef = numpy.array( [[1.0/12.0, 1.0/12.0, 1.0/12.0],
-                                    [3.0/4.0, 1.0/12.0, 1.0/12.0],
-                                    [1.0/12.0, 3.0/4.0, 1.0/12.0],
-                                    [1.0/12.0, 1.0/12.0, 3.0/4.0]],
+    self.quadPtsRef = numpy.array( [[-1.0+1.0/5.0, -1.0+1.0/5.0, -1.0+1.0/5.0],
+                                    [-1.0+3.0/2.0, -1.0+1.0/5.0, -1.0+1.0/5.0],
+                                    [-1.0+1.0/5.0, -1.0+3.0/2.0, -1.0+1.0/5.0],
+                                    [-1.0+1.0/5.0, -1.0+1.0/5.0, -1.0+3.0/2.0]],
                                    dtype=numpy.float64)
-    self.quadWts = numpy.array([1.0/8.0, 1.0/8.0, 1.0/8.0, 1.0/8.0],
+    self.quadWts = numpy.array([1.0/3.0, 1.0/3.0, 1.0/3.0, 1.0/3.0],
                                dtype=numpy.float64)
     self.numBasis = 10
     self.numQuadPts = 4

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -29,8 +29,8 @@
 
 const double pylith::feassemble::QuadratureData1DQuadratic::_vertices[] = {
  -2.50000000e-01,
+  2.00000000e+00,
   8.75000000e-01,
-  2.00000000e+00,
 };
 
 const int pylith::feassemble::QuadratureData1DQuadratic::_cells[] = {
@@ -59,29 +59,29 @@
 
 const double pylith::feassemble::QuadratureData1DQuadratic::_basis[] = {
   4.55341801e-01,
+ -1.22008468e-01,
   6.66666667e-01,
  -1.22008468e-01,
- -1.22008468e-01,
+  4.55341801e-01,
   6.66666667e-01,
-  4.55341801e-01,
 };
 
 const double pylith::feassemble::QuadratureData1DQuadratic::_basisDerivRef[] = {
  -1.07735027e+00,
+ -7.73502692e-02,
   1.15470054e+00,
- -7.73502692e-02,
   7.73502692e-02,
+  1.07735027e+00,
  -1.15470054e+00,
-  1.07735027e+00,
 };
 
 const double pylith::feassemble::QuadratureData1DQuadratic::_basisDeriv[] = {
  -9.57644684e-01,
+ -6.87557948e-02,
   1.02640048e+00,
- -6.87557948e-02,
   6.87557948e-02,
+  9.57644684e-01,
  -1.02640048e+00,
-  9.57644684e-01,
 };
 
 const double pylith::feassemble::QuadratureData1DQuadratic::_jacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -29,8 +29,8 @@
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_vertices[] = {
  -2.00000000e-01, -5.00000000e-01,
-  3.00000000e-01, -2.00000000e-01,
   7.00000000e-01,  3.00000000e-01,
+  2.50000000e-01, -1.00000000e-01,
 };
 
 const int pylith::feassemble::QuadratureData1Din2DQuadratic::_cells[] = {
@@ -53,51 +53,51 @@
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_quadPts[] = {
-  2.35257122e-02, -3.97606774e-01,
-  5.43140954e-01,  6.42734410e-02,
+ -9.80762114e-03, -3.30940108e-01,
+  5.09807621e-01,  1.30940108e-01,
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_basis[] = {
   4.55341801e-01,
+ -1.22008468e-01,
   6.66666667e-01,
  -1.22008468e-01,
- -1.22008468e-01,
+  4.55341801e-01,
   6.66666667e-01,
-  4.55341801e-01,
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_basisDerivRef[] = {
  -1.07735027e+00,
+ -7.73502692e-02,
   1.15470054e+00,
- -7.73502692e-02,
   7.73502692e-02,
+  1.07735027e+00,
  -1.15470054e+00,
-  1.07735027e+00,
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_basisDeriv[] = {
- -2.12187502e+00, -3.78642137e+00,
-  2.27421879e+00,  4.05827420e+00,
- -1.52343772e-01, -2.71852823e-01,
-  1.97188825e-01,  1.50057736e-01,
- -2.94367486e+00, -2.24009238e+00,
-  2.74648603e+00,  2.09003464e+00,
+ -2.39411171e+00, -2.69337567e+00,
+ -1.71889487e-01, -1.93375673e-01,
+  2.56600120e+00,  2.88675135e+00,
+  1.71889487e-01,  1.93375673e-01,
+  2.39411171e+00,  2.69337567e+00,
+ -2.56600120e+00, -2.88675135e+00,
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_jacobian[] = {
-  5.07735027e-01,
-  2.84529946e-01,
-  3.92264973e-01,
-  5.15470054e-01,
+  4.50000000e-01,
+  4.00000000e-01,
+  4.50000000e-01,
+  4.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_jacobianDet[] = {
-  5.82024181e-01,  6.47750867e-01,
+  6.02079729e-01,  6.02079729e-01,
 };
 
 const double pylith::feassemble::QuadratureData1Din2DQuadratic::_jacobianInv[] = {
-  1.96953125e+00,  3.51456855e+00,
-  2.54929721e+00,  1.93997691e+00,
+  2.22222222e+00,  2.50000000e+00,
+  2.22222222e+00,  2.50000000e+00,
 };
 
 pylith::feassemble::QuadratureData1Din2DQuadratic::QuadratureData1Din2DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -29,8 +29,8 @@
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_vertices[] = {
   1.00000000e+00, -1.50000000e+00, -2.00000000e+00,
-  3.00000000e-01,  3.00000000e-01,  8.00000000e-01,
  -5.00000000e-01,  2.00000000e+00,  3.00000000e+00,
+  2.50000000e-01,  2.50000000e-01,  5.00000000e-01,
 };
 
 const int pylith::feassemble::QuadratureData1Din3DQuadratic::_cells[] = {
@@ -53,53 +53,53 @@
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_quadPts[] = {
-  7.16346035e-01, -7.27029638e-01, -7.43375673e-01,
- -1.49679369e-01,  1.29369630e+00,  2.14337567e+00,
+  6.83012702e-01, -7.60362971e-01, -9.43375673e-01,
+ -1.83012702e-01,  1.26036297e+00,  1.94337567e+00,
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_basis[] = {
   4.55341801e-01,
+ -1.22008468e-01,
   6.66666667e-01,
  -1.22008468e-01,
- -1.22008468e-01,
+  4.55341801e-01,
   6.66666667e-01,
-  4.55341801e-01,
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_basisDerivRef[] = {
  -1.07735027e+00,
+ -7.73502692e-02,
   1.15470054e+00,
- -7.73502692e-02,
   7.73502692e-02,
+  1.07735027e+00,
  -1.15470054e+00,
-  1.07735027e+00,
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_basisDeriv[] = {
-  1.55626864e+00, -5.95966916e-01, -3.78494387e-01,
- -1.66800370e+00,  6.38755416e-01,  4.05669061e-01,
-  1.11735061e-01, -4.27884994e-02, -2.71746743e-02,
- -9.57619351e-02,  4.57081311e-02,  3.59168992e-02,
-  1.42955363e+00, -6.82340270e-01, -5.36174771e-01,
- -1.33379169e+00,  6.36632139e-01,  5.00257872e-01,
+  1.43646703e+00, -6.15628725e-01, -4.30940108e-01,
+  1.03133692e-01, -4.42001538e-02, -3.09401077e-02,
+ -1.53960072e+00,  6.59828879e-01,  4.61880215e-01,
+ -1.03133692e-01,  4.42001538e-02,  3.09401077e-02,
+ -1.43646703e+00,  6.15628725e-01,  4.30940108e-01,
+  1.53960072e+00, -6.59828879e-01, -4.61880215e-01,
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_jacobian[] = {
- -6.92264973e-01,
-  1.80773503e+00,
-  2.84641016e+00,
- -8.07735027e-01,
-  1.69226497e+00,
-  2.15358984e+00,
+ -7.50000000e-01,
+  1.75000000e+00,
+  2.50000000e+00,
+ -7.50000000e-01,
+  1.75000000e+00,
+  2.50000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_jacobianDet[] = {
-  3.44226488e+00,  2.85554650e+00,
+  3.14245127e+00,  3.14245127e+00,
 };
 
 const double pylith::feassemble::QuadratureData1Din3DQuadratic::_jacobianInv[] = {
- -1.44453358e+00,  5.53178417e-01,  3.51319713e-01,
- -1.23802976e+00,  5.90924008e-01,  4.64340973e-01,
+ -1.33333333e+00,  5.71428571e-01,  4.00000000e-01,
+ -1.33333333e+00,  5.71428571e-01,  4.00000000e-01,
 };
 
 pylith::feassemble::QuadratureData1Din3DQuadratic::QuadratureData1Din3DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -52,17 +52,17 @@
 };
 
 const double pylith::feassemble::QuadratureData2DLinear::_quadPts[] = {
- -1.66666667e-01, -3.33333333e-02,
+ -5.33333333e-01,  3.33333333e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DLinear::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::QuadratureData2DLinear::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DLinear::_basisDeriv[] = {
@@ -72,17 +72,17 @@
 };
 
 const double pylith::feassemble::QuadratureData2DLinear::_jacobian[] = {
-  1.00000000e-01, -1.20000000e+00,
-  9.00000000e-01,  2.00000000e-01,
+  5.00000000e-02, -6.00000000e-01,
+  4.50000000e-01,  1.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DLinear::_jacobianDet[] = {
-  1.10000000e+00,
+  2.75000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DLinear::_jacobianInv[] = {
-  1.81818182e-01,  1.09090909e+00,
- -8.18181818e-01,  9.09090909e-02,
+  3.63636364e-01,  2.18181818e+00,
+ -1.63636364e+00,  1.81818182e-01,
 };
 
 pylith::feassemble::QuadratureData2DLinear::QuadratureData2DLinear(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -31,9 +31,9 @@
  -1.00000000e+00, -1.00000000e+00,
   1.00000000e+00,  2.00000000e-01,
  -1.50000000e+00,  5.00000000e-01,
-  0.00000000e+00, -6.00000000e-01,
-  2.50000000e-01,  3.50000000e-01,
+ -2.50000000e-01,  3.50000000e-01,
  -1.25000000e+00, -2.50000000e-01,
+  0.00000000e+00, -4.00000000e-01,
 };
 
 const int pylith::feassemble::QuadratureData2DQuadratic::_cells[] = {
@@ -50,95 +50,95 @@
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_quadPtsRef[] = {
-  6.66666667e-01,  1.66666667e-01,
-  1.66666667e-01,  6.66666667e-01,
-  1.66666667e-01,  1.66666667e-01,
+  0.00000000e+00, -7.50000000e-01,
+ -7.50000000e-01,  0.00000000e+00,
+ -7.50000000e-01, -7.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_quadWts[] = {
-  1.66666667e-01,  1.66666667e-01,  1.66666667e-01,
+  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_quadPts[] = {
-  4.72222222e-01, -3.88888889e-02,
- -7.77777778e-01,  1.77777778e-01,
- -6.94444444e-01, -6.38888889e-01,
+ -6.25000000e-02, -2.12500000e-01,
+ -1.00000000e+00, -1.00000000e-01,
+ -8.12500000e-01, -6.62500000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_basis[] = {
- -1.11111111e-01,  2.22222222e-01,
- -1.11111111e-01,  4.44444444e-01,
-  4.44444444e-01,  1.11111111e-01,
- -1.11111111e-01, -1.11111111e-01,
-  2.22222222e-01,  1.11111111e-01,
-  4.44444444e-01,  4.44444444e-01,
-  2.22222222e-01, -1.11111111e-01,
- -1.11111111e-01,  4.44444444e-01,
-  1.11111111e-01,  4.44444444e-01,
+ -9.37500000e-02,  0.00000000e+00,
+ -9.37500000e-02,  2.50000000e-01,
+  1.87500000e-01,  7.50000000e-01,
+ -9.37500000e-02, -9.37500000e-02,
+  0.00000000e+00,  2.50000000e-01,
+  7.50000000e-01,  1.87500000e-01,
+  3.75000000e-01, -9.37500000e-02,
+ -9.37500000e-02,  6.25000000e-02,
+  3.75000000e-01,  3.75000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_basisDerivRef[] = {
-  3.33333333e-01,  3.33333333e-01,
-  1.66666667e+00,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
- -2.00000000e+00, -2.66666667e+00,
-  6.66666667e-01,  2.66666667e+00,
- -6.66666667e-01,  0.00000000e+00,
-  3.33333333e-01,  3.33333333e-01,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  1.66666667e+00,
-  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00,  6.66666667e-01,
- -2.66666667e+00, -2.00000000e+00,
- -1.66666667e+00, -1.66666667e+00,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
-  2.00000000e+00, -6.66666667e-01,
-  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  2.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  1.00000000e+00,
+ -2.50000000e-01,  5.00000000e-01,
+ -2.50000000e-01, -1.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
+  1.00000000e+00,  2.50000000e-01,
+ -1.00000000e+00, -2.50000000e-01,
+  5.00000000e-01, -2.50000000e-01,
+ -1.00000000e+00, -1.00000000e+00,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  1.25000000e+00,
+  1.25000000e+00, -2.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_basisDeriv[] = {
-  4.23452769e-02,  1.46579805e-01,
-  9.93485342e-01, -4.07166124e-01,
-  1.56351792e-01, -2.28013029e-01,
-  5.86319218e-02, -1.33550489e+00,
- -8.53420195e-01,  1.66123779e+00,
- -3.97394137e-01,  1.62866450e-01,
-  2.55905512e-02,  2.06692913e-01,
- -9.64566929e-02, -9.84251969e-03,
- -3.54330709e-01,  9.84251969e-01,
-  1.41732283e-01, -3.93700787e-01,
-  6.29921260e-01,  4.72440945e-01,
- -3.46456693e-01, -1.25984252e+00,
- -3.52112676e-01, -1.05633803e+00,
- -1.38028169e-01, -1.40845070e-02,
-  6.76056338e-02, -1.97183099e-01,
-  9.63380282e-01, -3.09859155e-01,
-  1.40845070e-01,  4.22535211e-01,
- -6.81690141e-01,  1.15492958e+00,
+ -4.16666667e-02, -3.47222222e-01,
+  4.16666667e-01,  1.38888889e-01,
+  1.66666667e-01, -2.77777778e-01,
+ -4.58333333e-01,  1.18055556e+00,
+ -5.41666667e-01,  4.86111111e-01,
+  4.58333333e-01, -1.18055556e+00,
+ -4.16666667e-02, -3.47222222e-01,
+ -2.08333333e-01, -6.94444444e-02,
+ -3.33333333e-01,  5.55555556e-01,
+  6.66666667e-01,  5.55555556e-01,
+ -6.66666667e-01, -5.55555556e-01,
+  5.83333333e-01, -1.38888889e-01,
+ -1.66666667e-01, -1.38888889e+00,
+ -2.08333333e-01, -6.94444444e-02,
+  1.66666667e-01, -2.77777778e-01,
+  4.16666667e-02,  3.47222222e-01,
+ -1.04166667e+00,  1.31944444e+00,
+  1.20833333e+00,  6.94444444e-02,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_jacobian[] = {
-  2.33333333e+00,  8.33333333e-01,
-  1.60000000e+00,  2.03333333e+00,
-  3.33333333e+00, -1.66666667e-01,
-  1.20000000e+00,  1.63333333e+00,
-  2.33333333e+00, -1.66666667e-01,
-  8.00000000e-01,  1.63333333e+00,
+  1.00000000e+00, -2.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,
+  1.00000000e+00, -2.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,
+  1.00000000e+00, -2.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_jacobianDet[] = {
-  3.41111111e+00,  5.64444444e+00,  3.94444444e+00,
+  9.00000000e-01,  9.00000000e-01,  9.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2DQuadratic::_jacobianInv[] = {
-  5.96091205e-01, -2.44299674e-01,
- -4.69055375e-01,  6.84039088e-01,
-  2.89370079e-01,  2.95275591e-02,
- -2.12598425e-01,  5.90551181e-01,
-  4.14084507e-01,  4.22535211e-02,
- -2.02816901e-01,  5.91549296e-01,
+  8.33333333e-01,  2.77777778e-01,
+ -6.66666667e-01,  1.11111111e+00,
+  8.33333333e-01,  2.77777778e-01,
+ -6.66666667e-01,  1.11111111e+00,
+  8.33333333e-01,  2.77777778e-01,
+ -6.66666667e-01,  1.11111111e+00,
 };
 
 pylith::feassemble::QuadratureData2DQuadratic::QuadratureData2DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -52,38 +52,38 @@
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_quadPts[] = {
- -3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
+ -6.66666667e-01,  0.00000000e+00,  6.66666667e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_basisDeriv[] = {
-  1.00000000e+00, -0.00000000e+00, -1.00000000e+00,
+  1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_jacobian[] = {
- -1.00000000e+00,  0.00000000e+00,
+ -5.00000000e-01,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_jacobianDet[] = {
-  1.00000000e+00,
+  2.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXY::_jacobianInv[] = {
- -1.00000000e+00,  0.00000000e+00, -0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+ -2.00000000e+00,  0.00000000e+00, -0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
 };
 
 pylith::feassemble::QuadratureData2Din3DLinearXY::QuadratureData2Din3DLinearXY(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -52,38 +52,38 @@
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_quadPts[] = {
- -3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
+ -6.66666667e-01,  0.00000000e+00,  6.66666667e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_basisDeriv[] = {
-  1.00000000e+00, -0.00000000e+00, -1.00000000e+00,
+  1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_jacobian[] = {
- -1.00000000e+00,  0.00000000e+00,
+ -5.00000000e-01,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_jacobianDet[] = {
-  1.00000000e+00,
+  2.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_jacobianInv[] = {
- -1.00000000e+00,  0.00000000e+00, -0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+ -2.00000000e+00,  0.00000000e+00, -0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
 };
 
 pylith::feassemble::QuadratureData2Din3DLinearXYZ::QuadratureData2Din3DLinearXYZ(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -52,38 +52,38 @@
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_quadPts[] = {
- -3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
+ -6.66666667e-01,  0.00000000e+00,  6.66666667e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_basisDeriv[] = {
-  1.00000000e+00, -0.00000000e+00, -1.00000000e+00,
+  1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_jacobian[] = {
- -1.00000000e+00,  0.00000000e+00,
+ -5.00000000e-01,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_jacobianDet[] = {
-  1.00000000e+00,
+  2.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_jacobianInv[] = {
- -1.00000000e+00,  0.00000000e+00, -0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+ -2.00000000e+00,  0.00000000e+00, -0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
 };
 
 pylith::feassemble::QuadratureData2Din3DLinearXZ::QuadratureData2Din3DLinearXZ(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -52,38 +52,38 @@
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_quadPts[] = {
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
+  0.00000000e+00,  6.66666667e-01,  6.66666667e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_basis[] = {
-  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,};
+ -3.33333333e-01,  6.66666667e-01,
+  6.66666667e-01,};
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_basisDeriv[] = {
- -0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+  0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
   0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
   0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_jacobian[] = {
   0.00000000e+00,  0.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_jacobianDet[] = {
-  1.00000000e+00,
+  2.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_jacobianInv[] = {
-  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  2.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
 };
 
 pylith::feassemble::QuadratureData2Din3DLinearYZ::QuadratureData2Din3DLinearYZ(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -31,9 +31,9 @@
   2.00000000e+00, -5.00000000e-01, -5.00000000e-01,
   5.00000000e-01,  3.00000000e+00,  0.00000000e+00,
  -5.00000000e-01,  0.00000000e+00,  2.00000000e+00,
-  1.30000000e+00,  1.20000000e+00, -3.00000000e-01,
-  1.00000000e-01,  1.40000000e+00,  9.00000000e-01,
-  8.00000000e-01, -3.00000000e-01,  7.00000000e-01,
+  0.00000000e+00,  1.50000000e+00,  1.00000000e+00,
+  7.50000000e-01, -2.50000000e-01,  7.50000000e-01,
+  1.25000000e+00,  1.25000000e+00, -2.50000000e-01,
 };
 
 const int pylith::feassemble::QuadratureData2Din3DQuadratic::_cells[] = {
@@ -50,98 +50,98 @@
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_quadPtsRef[] = {
-  6.66666667e-01,  1.66666667e-01,
-  1.66666667e-01,  6.66666667e-01,
-  1.66666667e-01,  1.66666667e-01,
+  0.00000000e+00, -7.50000000e-01,
+ -7.50000000e-01,  0.00000000e+00,
+ -7.50000000e-01, -7.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_quadWts[] = {
-  1.66666667e-01,  1.66666667e-01,  1.66666667e-01,
+  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_quadPts[] = {
-  6.55555556e-01,  1.84444444e+00,  1.77777778e-01,
-  1.55555556e-01,  3.44444444e-01,  1.17777778e+00,
-  1.38888889e+00,  1.11111111e-01, -5.55555556e-02,
+  9.37500000e-01,  1.31250000e+00,  6.25000000e-02,
+  5.62500000e-01,  1.87500000e-01,  8.12500000e-01,
+  1.50000000e+00,  0.00000000e+00, -1.25000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_basis[] = {
- -1.11111111e-01,  2.22222222e-01,
- -1.11111111e-01,  4.44444444e-01,
-  4.44444444e-01,  1.11111111e-01,
- -1.11111111e-01, -1.11111111e-01,
-  2.22222222e-01,  1.11111111e-01,
-  4.44444444e-01,  4.44444444e-01,
-  2.22222222e-01, -1.11111111e-01,
- -1.11111111e-01,  4.44444444e-01,
-  1.11111111e-01,  4.44444444e-01,
+ -9.37500000e-02,  0.00000000e+00,
+ -9.37500000e-02,  2.50000000e-01,
+  1.87500000e-01,  7.50000000e-01,
+ -9.37500000e-02, -9.37500000e-02,
+  0.00000000e+00,  2.50000000e-01,
+  7.50000000e-01,  1.87500000e-01,
+  3.75000000e-01, -9.37500000e-02,
+ -9.37500000e-02,  6.25000000e-02,
+  3.75000000e-01,  3.75000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_basisDerivRef[] = {
-  3.33333333e-01,  3.33333333e-01,
-  1.66666667e+00,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
- -2.00000000e+00, -2.66666667e+00,
-  6.66666667e-01,  2.66666667e+00,
- -6.66666667e-01,  0.00000000e+00,
-  3.33333333e-01,  3.33333333e-01,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  1.66666667e+00,
-  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00,  6.66666667e-01,
- -2.66666667e+00, -2.00000000e+00,
- -1.66666667e+00, -1.66666667e+00,
- -3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00, -3.33333333e-01,
-  2.00000000e+00, -6.66666667e-01,
-  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  2.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  1.00000000e+00,
+ -2.50000000e-01,  5.00000000e-01,
+ -2.50000000e-01, -1.00000000e+00,
+ -2.50000000e-01, -2.50000000e-01,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,
+  1.00000000e+00,  2.50000000e-01,
+ -1.00000000e+00, -2.50000000e-01,
+  5.00000000e-01, -2.50000000e-01,
+ -1.00000000e+00, -1.00000000e+00,
+ -2.50000000e-01,  0.00000000e+00,
+  0.00000000e+00, -2.50000000e-01,
+  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  1.25000000e+00,
+  1.25000000e+00, -2.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_basisDeriv[] = {
- -1.35593220e-01,  3.38983051e-02,  1.29554656e-01,
-  7.76836158e-02,  5.01412429e-01, -7.42240216e-02,
-  1.51129944e-01,  6.63841808e-02, -1.44399460e-01,
-  1.11581921e+00, -7.06214689e-02, -1.06612686e+00,
- -1.17796610e+00, -3.30508475e-01,  1.12550607e+00,
- -3.10734463e-02, -2.00564972e-01,  2.96896086e-02,
- -1.18644068e-01,  5.08474576e-02,  1.10671937e-01,
- -2.40112994e-02, -1.08757062e-01,  2.23978920e-02,
- -7.13276836e-01, -2.89548023e-01,  6.65349144e-01,
-  2.85310734e-01,  1.15819209e-01, -2.66139657e-01,
- -9.32203390e-02,  7.54237288e-01,  8.69565217e-02,
-  6.63841808e-01, -5.22598870e-01, -6.19235837e-01,
-  6.69642857e-01, -2.23214286e-01, -6.38297872e-01,
- -1.63690476e-02, -1.05654762e-01,  1.56028369e-02,
-  1.50297619e-01,  6.10119048e-02, -1.43262411e-01,
-  3.98809524e-01,  7.55952381e-01, -3.80141844e-01,
- -2.67857143e-01,  8.92857143e-02,  2.55319149e-01,
- -9.34523810e-01, -5.77380952e-01,  8.90780142e-01,
+  1.87500000e-01, -6.25000000e-02, -1.76470588e-01,
+  6.25000000e-02,  3.12500000e-01, -5.88235294e-02,
+  2.18750000e-01,  9.37500000e-02, -2.05882353e-01,
+ -8.43750000e-01, -2.18750000e-01,  7.94117647e-01,
+ -4.68750000e-01, -3.43750000e-01,  4.41176471e-01,
+  8.43750000e-01,  2.18750000e-01, -7.94117647e-01,
+  1.87500000e-01, -6.25000000e-02, -1.76470588e-01,
+ -3.12500000e-02, -1.56250000e-01,  2.94117647e-02,
+ -4.37500000e-01, -1.87500000e-01,  4.11764706e-01,
+ -9.37500000e-02,  5.31250000e-01,  8.82352941e-02,
+  9.37500000e-02, -5.31250000e-01, -8.82352941e-02,
+  2.81250000e-01,  4.06250000e-01, -2.64705882e-01,
+  7.50000000e-01, -2.50000000e-01, -7.05882353e-01,
+ -3.12500000e-02, -1.56250000e-01,  2.94117647e-02,
+  2.18750000e-01,  9.37500000e-02, -2.05882353e-01,
+ -1.87500000e-01,  6.25000000e-02,  1.76470588e-01,
+ -1.12500000e+00, -6.25000000e-01,  1.05882353e+00,
+  3.75000000e-01,  8.75000000e-01, -3.52941176e-01,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_jacobian[] = {
- -1.56666667e+00, -2.36666667e+00,
-  3.56666667e+00,  3.66666667e-01,
-  5.66666667e-01,  2.36666667e+00,
- -1.36666667e+00, -2.56666667e+00,
-  3.36666667e+00,  5.66666667e-01,
-  3.66666667e-01,  2.56666667e+00,
- -1.36666667e+00, -2.36666667e+00,
-  3.36666667e+00,  3.66666667e-01,
-  3.66666667e-01,  2.36666667e+00,
+ -7.50000000e-01, -1.25000000e+00,
+  1.75000000e+00,  2.50000000e-01,
+  2.50000000e-01,  1.25000000e+00,
+ -7.50000000e-01, -1.25000000e+00,
+  1.75000000e+00,  2.50000000e-01,
+  2.50000000e-01,  1.25000000e+00,
+ -7.50000000e-01, -1.25000000e+00,
+  1.75000000e+00,  2.50000000e-01,
+  2.50000000e-01,  1.25000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_jacobianDet[] = {
-  1.16307065e+01,  1.18149623e+01,  1.10776050e+01,
+  2.98433410e+00,  2.98433410e+00,  2.98433410e+00,
 };
 
 const double pylith::feassemble::QuadratureData2Din3DQuadratic::_jacobianInv[] = {
-  4.66101695e-02,  3.00847458e-01, -4.45344130e-02,
- -4.53389831e-01, -1.99152542e-01,  4.33198381e-01,
-  7.20338983e-02,  3.26271186e-01, -6.71936759e-02,
- -4.27966102e-01, -1.73728814e-01,  3.99209486e-01,
-  4.91071429e-02,  3.16964286e-01, -4.68085106e-02,
- -4.50892857e-01, -1.83035714e-01,  4.29787234e-01,
+  1.25000000e-01,  6.25000000e-01, -1.17647059e-01,
+ -8.75000000e-01, -3.75000000e-01,  8.23529412e-01,
+  1.25000000e-01,  6.25000000e-01, -1.17647059e-01,
+ -8.75000000e-01, -3.75000000e-01,  8.23529412e-01,
+  1.25000000e-01,  6.25000000e-01, -1.17647059e-01,
+ -8.75000000e-01, -3.75000000e-01,  8.23529412e-01,
 };
 
 pylith::feassemble::QuadratureData2Din3DQuadratic::QuadratureData2Din3DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -46,26 +46,26 @@
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_quadPtsRef[] = {
-  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_quadWts[] = {
-  1.66666667e-01,
+  1.33333333e+00,
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_quadPts[] = {
-  5.75000000e-01, -2.75000000e-01,  2.00000000e-01,
+  8.25000000e-01,  2.25000000e-01,  4.50000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_basis[] = {
-  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+ -2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
   2.50000000e-01,};
 
 const double pylith::feassemble::QuadratureData3DLinear::_basisDerivRef[] = {
- -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
-  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_basisDeriv[] = {
@@ -76,19 +76,19 @@
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_jacobian[] = {
-  2.50000000e+00,  1.50000000e+00,  3.00000000e-01,
-  5.00000000e-01,  9.00000000e-01,  1.50000000e+00,
-  1.00000000e-01,  2.00000000e-01,  2.50000000e+00,
+  1.25000000e+00,  7.50000000e-01,  1.50000000e-01,
+  2.50000000e-01,  4.50000000e-01,  7.50000000e-01,
+  5.00000000e-02,  1.00000000e-01,  1.25000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_jacobianDet[] = {
-  3.22800000e+00,
+  4.03500000e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DLinear::_jacobianInv[] = {
-  6.04089219e-01, -1.14312268e+00,  6.13382900e-01,
- -3.40768278e-01,  1.92688971e+00, -1.11524164e+00,
-  3.09789343e-03, -1.08426270e-01,  4.64684015e-01,
+  1.20817844e+00, -2.28624535e+00,  1.22676580e+00,
+ -6.81536555e-01,  3.85377943e+00, -2.23048327e+00,
+  6.19578686e-03, -2.16852540e-01,  9.29368030e-01,
 };
 
 pylith::feassemble::QuadratureData3DLinear::QuadratureData3DLinear(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -32,12 +32,12 @@
   2.00000000e+00, -2.00000000e+00, -5.00000000e-01,
   1.00000000e+00,  1.00000000e+00,  0.00000000e+00,
   2.00000000e-01,  5.00000000e-01,  2.00000000e+00,
-  7.00000000e-01, -2.10000000e+00, -8.00000000e-01,
-  3.00000000e-01, -5.00000000e-01, -5.00000000e-01,
- -2.00000000e-01, -8.00000000e-01,  5.00000000e-01,
-  1.50000000e+00, -6.00000000e-01, -2.00000000e-01,
-  6.00000000e-01,  8.00000000e-01,  9.00000000e-01,
-  1.10000000e+00, -8.00000000e-01,  7.00000000e-01,
+  1.50000000e+00, -5.00000000e-01, -2.50000000e-01,
+  2.50000000e-01, -5.00000000e-01, -5.00000000e-01,
+  7.50000000e-01, -2.00000000e+00, -7.50000000e-01,
+ -1.50000000e-01, -7.50000000e-01,  5.00000000e-01,
+  1.10000000e+00, -7.50000000e-01,  7.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,  1.00000000e+00,
 };
 
 const int pylith::feassemble::QuadratureData3DQuadratic::_cells[] = {
@@ -49,8 +49,8 @@
   1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00, -1.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
  -1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
   0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
  -1.00000000e+00, -1.00000000e+00,  0.00000000e+00,
   0.00000000e+00, -1.00000000e+00,  0.00000000e+00,
@@ -58,157 +58,157 @@
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_quadPtsRef[] = {
-  8.33333333e-02,  8.33333333e-02,  8.33333333e-02,
-  7.50000000e-01,  8.33333333e-02,  8.33333333e-02,
-  8.33333333e-02,  7.50000000e-01,  8.33333333e-02,
-  8.33333333e-02,  8.33333333e-02,  7.50000000e-01,
+ -8.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+  5.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01, -8.00000000e-01,  5.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_quadWts[] = {
-  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,
+  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_quadPts[] = {
- -1.20833333e-01, -1.58194444e+00, -6.40277778e-01,
-  1.54583333e+00, -1.60416667e+00, -3.06944444e-01,
-  9.01388889e-01,  4.40277778e-01,  2.63888889e-02,
-  3.45833333e-01,  1.06944444e-01,  1.33750000e+00,
+ -3.00000000e-02, -1.45000000e+00, -5.50000000e-01,
+  1.59500000e+00, -1.45000000e+00, -2.25000000e-01,
+  9.45000000e-01,  5.00000000e-01,  1.00000000e-01,
+  4.25000000e-01,  1.75000000e-01,  1.40000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_basis[] = {
-  3.75000000e-01, -6.94444444e-02, -6.94444444e-02,
- -6.94444444e-02,  2.50000000e-01,  2.50000000e-01,
-  2.50000000e-01,  2.77777778e-02,  2.77777778e-02,
-  2.77777778e-02, -6.94444444e-02,  3.75000000e-01,
- -6.94444444e-02, -6.94444444e-02,  2.50000000e-01,
-  2.77777778e-02,  2.77777778e-02,  2.50000000e-01,
-  2.77777778e-02,  2.50000000e-01, -6.94444444e-02,
- -6.94444444e-02,  3.75000000e-01, -6.94444444e-02,
-  2.77777778e-02,  2.50000000e-01,  2.77777778e-02,
-  2.50000000e-01,  2.50000000e-01,  2.77777778e-02,
- -6.94444444e-02, -6.94444444e-02, -6.94444444e-02,
-  3.75000000e-01,  2.77777778e-02,  2.77777778e-02,
-  2.50000000e-01,  2.77777778e-02,  2.50000000e-01,
-  2.50000000e-01,};
+  2.80000000e-01, -8.00000000e-02, -8.00000000e-02,
+ -8.00000000e-02,  4.00000000e-02,  2.80000000e-01,
+  2.80000000e-01,  2.80000000e-01,  4.00000000e-02,
+  4.00000000e-02, -4.50000000e-02,  3.75000000e-01,
+ -8.00000000e-02, -8.00000000e-02,  3.00000000e-01,
+  2.00000000e-02,  1.50000000e-01,  2.00000000e-02,
+  3.00000000e-01,  4.00000000e-02, -4.50000000e-02,
+ -8.00000000e-02,  3.75000000e-01, -8.00000000e-02,
+  3.00000000e-01,  1.50000000e-01,  2.00000000e-02,
+  2.00000000e-02,  4.00000000e-02,  3.00000000e-01,
+ -4.50000000e-02, -8.00000000e-02, -8.00000000e-02,
+  3.75000000e-01,  4.00000000e-02,  2.00000000e-02,
+  2.00000000e-02,  1.50000000e-01,  3.00000000e-01,
+  3.00000000e-01,};
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_basisDerivRef[] = {
- -2.00000000e+00, -2.00000000e+00, -2.00000000e+00,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
-  2.66666667e+00, -3.33333333e-01, -3.33333333e-01,
- -3.33333333e-01,  2.66666667e+00, -3.33333333e-01,
- -3.33333333e-01, -3.33333333e-01,  2.66666667e+00,
-  3.33333333e-01,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
-  2.00000000e+00,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
- -2.66666667e+00, -3.00000000e+00, -3.00000000e+00,
- -3.33333333e-01,  1.11022302e-16, -3.33333333e-01,
- -3.33333333e-01, -3.33333333e-01,  1.11022302e-16,
-  3.33333333e-01,  3.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.33333333e-01,
-  3.33333333e-01,  0.00000000e+00,  3.00000000e+00,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  2.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -6.66666667e-01,
-  1.11022302e-16, -3.33333333e-01, -3.33333333e-01,
- -3.00000000e+00, -2.66666667e+00, -3.00000000e+00,
- -3.33333333e-01, -3.33333333e-01, -1.11022302e-16,
-  3.00000000e+00,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.33333333e-01,  3.00000000e+00,
-  3.33333333e-01,  0.00000000e+00,  3.33333333e-01,
-  6.66666667e-01,  6.66666667e-01,  6.66666667e-01,
- -6.66666667e-01,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -6.66666667e-01,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  2.00000000e+00,
- -1.11022302e-16, -3.33333333e-01, -3.33333333e-01,
- -3.33333333e-01, -1.11022302e-16, -3.33333333e-01,
- -3.00000000e+00, -3.00000000e+00, -2.66666667e+00,
-  3.33333333e-01,  3.33333333e-01,  0.00000000e+00,
-  0.00000000e+00,  3.00000000e+00,  3.33333333e-01,
-  3.00000000e+00,  0.00000000e+00,  3.33333333e-01,
+ -9.00000000e-01, -9.00000000e-01, -9.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01,  1.20000000e+00, -2.00000000e-01,
+  1.20000000e+00, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01,  1.20000000e+00,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  1.50000000e+00,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.40000000e+00, -1.50000000e+00, -1.50000000e+00,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  1.50000000e+00,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  1.50000000e+00,  2.00000000e-01,  0.00000000e+00,
+ -1.50000000e+00, -1.40000000e+00, -1.50000000e+00,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  1.50000000e+00,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -1.50000000e+00, -1.50000000e+00, -1.40000000e+00,
+  1.50000000e+00,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  1.50000000e+00,  2.00000000e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_basisDeriv[] = {
- -7.83094857e-01, -7.65459276e-02, -4.62652592e-01,
- -2.47606897e-01,  1.64265226e-01, -8.55930225e-02,
- -6.64148489e-02, -2.55653392e-01,  2.19506704e-01,
-  5.29901274e-02,  6.58728570e-02, -2.88131212e-01,
-  9.83715229e-01, -7.51951171e-01,  3.08059836e-01,
-  1.68351011e-01,  1.13768261e+00, -1.06488893e+00,
- -3.68971383e-01, -3.09185511e-01,  1.21948169e+00,
-  1.57010873e-01,  4.56940831e-02, -6.69568408e-02,
-  6.71236075e-03,  9.48902675e-02,  3.43122540e-02,
-  9.73083850e-02, -1.15069041e-01,  1.86862117e-01,
-  2.20279652e-01,  4.92234076e-02,  1.18597035e-01,
-  7.44087308e-01, -5.14786633e-01,  2.53716269e-01,
- -4.39774867e-02, -3.21422968e-01,  3.01272749e-01,
-  7.17269376e-02,  1.00604016e-01, -3.35297694e-01,
- -8.67243881e-01, -3.07303106e-01, -4.91400612e-01,
- -8.81510825e-02,  1.36099780e-01, -2.09934892e-01,
- -1.46003295e-01, -7.49137120e-02,  1.08350329e-01,
-  3.21913241e-01,  1.36060559e+00, -1.31344132e+00,
- -1.38747254e-02,  1.10409476e-01,  1.70124725e-02,
- -1.98756668e-01, -5.38515846e-01,  1.55112567e+00,
-  2.52578517e-01,  5.82464152e-02,  1.36375951e-01,
- -2.40484161e-01,  1.39907502e-01, -8.77082648e-02,
-  3.26402461e-01,  7.87777928e-01, -8.46556495e-01,
-  9.67064652e-02,  6.44387252e-02, -3.30853184e-01,
- -6.04717766e-03, -9.90769588e-02, -2.43338429e-02,
- -1.08220291e+00, -1.30812547e-01, -7.54784527e-01,
- -1.74642491e-01, -6.13425702e-02,  9.72386168e-02,
-  1.13657914e+00, -4.98287439e-01,  2.53594442e-01,
- -3.80778683e-01, -1.58677942e-01,  1.34774658e+00,
-  7.18888480e-02, -1.02173114e-01,  2.09280725e-01,
-  2.39188235e-01,  5.77458352e-02,  1.05625026e-01,
- -2.44104247e-01,  1.35017241e-01, -5.27952031e-02,
- -3.35465913e-02, -2.33891405e-01,  2.19662665e-01,
- -1.15387811e-01, -1.23384986e-01,  8.17477463e-01,
-  2.45800618e-03, -9.63815380e-02, -2.64149114e-02,
- -1.02820822e-01,  8.80727847e-02, -1.62643845e-01,
- -1.09557836e+00, -2.80420423e-01, -3.39066373e-01,
-  1.38825419e-01,  4.94370820e-02, -8.34337308e-02,
-  1.31728359e-01,  1.03194716e+00, -8.52235747e-01,
-  1.07923781e+00, -6.28141747e-01,  3.73824658e-01,
+ -6.58857980e-01, -1.68667643e-01, -3.05710102e-01,
+ -2.28404100e-01,  1.33528551e-01, -5.79795022e-02,
+ -4.39238653e-02, -2.51244510e-01,  2.19619327e-01,
+  5.27086384e-02,  6.14934114e-02, -2.63543192e-01,
+  1.81551977e-01,  7.84773060e-02, -1.07759883e-01,
+  5.85651537e-02,  1.13499268e+00, -1.09282577e+00,
+  9.19472914e-01, -6.60614934e-01,  2.02635432e-01,
+ -3.92386530e-01, -3.24450952e-01,  1.16193265e+00,
+  1.17130307e-01, -1.30014641e-01,  2.14348463e-01,
+ -5.85651537e-03,  1.26500732e-01,  2.92825769e-02,
+  2.92825769e-01,  7.49633968e-02,  1.35871157e-01,
+  7.61346999e-01, -4.45095168e-01,  1.93265007e-01,
+ -4.39238653e-02, -2.51244510e-01,  2.19619327e-01,
+  5.27086384e-02,  6.14934114e-02, -2.63543192e-01,
+  3.71888726e-01,  1.16720351e+00, -1.05944363e+00,
+ -1.31771596e-01,  4.62664714e-02, -1.41142020e-01,
+ -1.02196193e+00, -3.25622255e-01, -4.90190337e-01,
+ -1.63982430e-01, -5.79795022e-02,  1.99121523e-02,
+ -1.11273792e-01, -3.96486091e-01,  1.35636896e+00,
+ -5.85651537e-03,  1.26500732e-01,  2.92825769e-02,
+  2.92825769e-01,  7.49633968e-02,  1.35871157e-01,
+ -2.28404100e-01,  1.33528551e-01, -5.79795022e-02,
+  1.46412884e-01,  8.37481698e-01, -7.32064422e-01,
+  5.27086384e-02,  6.14934114e-02, -2.63543192e-01,
+  1.17130307e+00, -5.00146413e-01,  1.43484627e-01,
+ -1.08345534e+00, -1.97364568e-01, -5.82723280e-01,
+ -7.02781845e-02, -8.19912152e-02, -4.86090776e-02,
+ -1.63982430e-01, -5.79795022e-02,  1.99121523e-02,
+  1.17130307e-01, -1.30014641e-01,  2.14348463e-01,
+ -2.34260615e-01, -1.39970717e-01,  1.17130307e+00,
+  2.92825769e-01,  7.49633968e-02,  1.35871157e-01,
+ -2.28404100e-01,  1.33528551e-01, -5.79795022e-02,
+ -4.39238653e-02, -2.51244510e-01,  2.19619327e-01,
+ -1.75695461e-01, -2.04978038e-01,  8.78477306e-01,
+  1.81551977e-01,  7.84773060e-02, -1.07759883e-01,
+ -1.31771596e-01,  4.62664714e-02, -1.41142020e-01,
+ -7.02781845e-02, -8.19912152e-02, -4.86090776e-02,
+ -1.11566618e+00, -3.01610542e-01, -4.21669107e-01,
+  1.10688141e+00, -7.08638360e-01,  4.65592972e-01,
+  1.84480234e-01,  1.21522694e+00, -9.22401171e-01,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_jacobian[] = {
-  2.36666667e+00,  1.66666667e+00,  5.66666667e-01,
- -3.00000000e-01,  3.03333333e+00,  2.40000000e+00,
-  3.66666667e-01,  1.00000000e+00,  2.96666667e+00,
-  2.63333333e+00,  1.66666667e+00,  8.33333333e-01,
-  2.33333333e-01,  3.03333333e+00,  2.66666667e+00,
-  6.33333333e-01,  1.26666667e+00,  2.96666667e+00,
-  2.36666667e+00,  1.40000000e+00,  5.66666667e-01,
- -3.00000000e-01,  3.03333333e+00,  2.66666667e+00,
-  6.33333333e-01,  1.00000000e-00,  2.70000000e+00,
-  2.63333333e+00,  1.66666667e+00,  8.33333333e-01,
- -3.33333333e-02,  3.30000000e+00,  2.66666667e+00,
-  3.66666667e-01,  7.33333333e-01,  2.96666667e+00,
+  1.25000000e+00,  7.50000000e-01,  3.50000000e-01,
+  0.00000000e+00,  1.50000000e+00,  1.25000000e+00,
+  2.50000000e-01,  5.00000000e-01,  1.50000000e+00,
+  1.25000000e+00,  7.50000000e-01,  3.50000000e-01,
+  4.44089210e-16,  1.50000000e+00,  1.25000000e+00,
+  2.50000000e-01,  5.00000000e-01,  1.50000000e+00,
+  1.25000000e+00,  7.50000000e-01,  3.50000000e-01,
+  0.00000000e+00,  1.50000000e+00,  1.25000000e+00,
+  2.50000000e-01,  5.00000000e-01,  1.50000000e+00,
+  1.25000000e+00,  7.50000000e-01,  3.50000000e-01,
+  0.00000000e+00,  1.50000000e+00,  1.25000000e+00,
+  2.50000000e-01,  5.00000000e-01,  1.50000000e+00,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_jacobianDet[] = {
-  1.77671111e+01,  1.51087407e+01,  1.53117037e+01,  2.13964444e+01,
+  2.13437500e+00,  2.13437500e+00,  2.13437500e+00,  2.13437500e+00,
 };
 
 const double pylith::feassemble::QuadratureData3DQuadratic::_jacobianInv[] = {
-  3.71410346e-01, -2.46397839e-01,  1.28389534e-01,
-  9.96222734e-02,  3.83480088e-01, -3.29260056e-01,
- -7.94851911e-02, -9.88092856e-02,  4.32196818e-01,
-  3.72043654e-01, -2.57393317e-01,  1.26858135e-01,
-  6.59662300e-02,  4.82134452e-01, -4.51909123e-01,
- -1.07590406e-01, -1.50906024e-01,  5.02946541e-01,
-  3.60726242e-01, -2.09861254e-01,  1.31562397e-01,
-  1.63201231e-01,  3.93888964e-01, -4.23278248e-01,
- -1.45059698e-01, -9.66580877e-02,  4.96279776e-01,
-  3.66156371e-01, -2.02525861e-01,  7.91928046e-02,
-  5.03198870e-02,  3.50837107e-01, -3.29493997e-01,
- -5.76939055e-02, -6.16924930e-02,  4.08738731e-01,
+  7.61346999e-01, -4.45095168e-01,  1.93265007e-01,
+  1.46412884e-01,  8.37481698e-01, -7.32064422e-01,
+ -1.75695461e-01, -2.04978038e-01,  8.78477306e-01,
+  7.61346999e-01, -4.45095168e-01,  1.93265007e-01,
+  1.46412884e-01,  8.37481698e-01, -7.32064422e-01,
+ -1.75695461e-01, -2.04978038e-01,  8.78477306e-01,
+  7.61346999e-01, -4.45095168e-01,  1.93265007e-01,
+  1.46412884e-01,  8.37481698e-01, -7.32064422e-01,
+ -1.75695461e-01, -2.04978038e-01,  8.78477306e-01,
+  7.61346999e-01, -4.45095168e-01,  1.93265007e-01,
+  1.46412884e-01,  8.37481698e-01, -7.32064422e-01,
+ -1.75695461e-01, -2.04978038e-01,  8.78477306e-01,
 };
 
 pylith::feassemble::QuadratureData3DQuadratic::QuadratureData3DQuadratic(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution2DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution2DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution2DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -52,7 +52,7 @@
                                 -0.1, -0.2 ], dtype=numpy.float64)
     self.fieldTmdt = numpy.array([ -0.2, -0.3,
                                    +0.3, +0.4,
-                                   +0.0, +0.1,
+                                   +0.0, -0.1,
                                    -0.3, -0.2,
                                    +0.1, +0.4,
                                    -0.2, -0.6 ], dtype=numpy.float64)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DQuadratic.py	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DQuadratic.py	2007-12-02 23:51:35 UTC (rev 8362)
@@ -58,16 +58,16 @@
                                 -0.4, -0.3, -0.3,
                                 -0.7, -0.6, +0.1,
                                 -0.9, +0.3, -0.8], dtype=numpy.float64)
-    self.fieldTmdt = numpy.array([ +0.2, -0.3, -0.4,
-                                   -0.6, +0.2, +0.3,
-                                   +0.5, +0.2, +0.5,
-                                   -0.3, -0.6, -0.3,
+    self.fieldTmdt = numpy.array([ +0.2, -0.3, -0.1,
+                                   -0.4, +0.2, +0.3,
+                                   -0.5, +0.2, +0.2,
+                                   -0.3, -0.8, -0.3,
                                    -0.5, -0.9, +0.4,
                                    -0.3, -0.6, -0.8,
                                    +0.9, +0.5, -0.2,
-                                   -0.7, -0.3, -0.3,
+                                   -0.7, -0.2, -0.9,
                                    -0.5, -0.8, +0.4,
-                                   -0.4, +0.5, -0.8], dtype=numpy.float64)
+                                   -0.4, +0.5, -0.7], dtype=numpy.float64)
     return
   
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/elasticplanestrain.spatialdb
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/elasticplanestrain.spatialdb	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/elasticplanestrain.spatialdb	2007-12-02 23:51:35 UTC (rev 8362)
@@ -11,4 +11,4 @@
     space-dim = 2
   }
 }
-0.0  0.0   2500.0  3464.1016151377544 6000.0
+0.0  0.0   2500.0  3500.0  6000.0

Modified: short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc	2007-12-01 01:24:37 UTC (rev 8361)
+++ short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc	2007-12-02 23:51:35 UTC (rev 8362)
@@ -19,6 +19,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/utils/array.hh" // USES double_array
 #include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
 #include "pylith/topology/FieldsManager.hh" // USES FieldsManager
 
 #include "spatialdata/spatialdb/SimpleDB.hh" // USES SimpleDB
@@ -146,6 +147,8 @@
   cs.initialize();
 
   feassemble::Quadrature1D quadrature;
+  feassemble::GeometryLine1D geometry;
+  quadrature.refGeometry(&geometry);
   const int cellDim = 1;
   const int numCorners = 3;
   const int numQuadPts = 2;



More information about the cig-commits mailing list