[cig-commits] r7224 - in short/3D/PyLith/trunk: libsrc/faults libsrc/feassemble unittests/libtests/feassemble unittests/pytests/feassemble

brad at geodynamics.org brad at geodynamics.org
Wed Jun 13 21:09:17 PDT 2007


Author: brad
Date: 2007-06-13 21:09:16 -0700 (Wed, 13 Jun 2007)
New Revision: 7224

Modified:
   short/3D/PyLith/trunk/libsrc/faults/FaultCohesive.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc
   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/feassemble/TestQuadrature.cc
   short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc
Log:
Isolated bug in computing derivatives of basis functions. Need to use inverse of Jacobian to get derivatives with respect to global coordinates. Fix implemented but need to verify fix before turning it on in code (currently commented out with defines).

Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesive.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesive.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesive.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -16,8 +16,6 @@
 
 #include "CohesiveTopology.hh" // USES CohesiveTopology::create()
 
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-
 #include "pylith/utils/sievetypes.hh" // USES PETSc Mesh
 #include "pylith/utils/array.hh" // USES double_array
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -49,7 +49,10 @@
   _quadPts(q._quadPts),
   _quadWts(q._quadWts),
   _basis(q._basis),
+  _basisDerivRef(q._basisDerivRef),
+#if 0
   _basisDeriv(q._basisDeriv),
+#endif
   _jacobian(q._jacobian),
   _jacobianInv(q._jacobianInv),
   _jacobianDet(q._jacobianDet),
@@ -69,7 +72,7 @@
 void
 pylith::feassemble::Quadrature::initialize(const double* vertices,
 					   const double* basis,
-					   const double* basisDeriv,
+					   const double* basisDerivRef,
 					   const double* quadPtsRef,
 					   const double* quadWts,
 					   const int cellDim,
@@ -79,7 +82,7 @@
 { // initialize
   if (0 == vertices ||
       0 == basis ||
-      0 == basisDeriv ||
+      0 == basisDerivRef ||
       0 == quadPtsRef ||
       0 == quadWts ||
       cellDim < 0 || cellDim > 3 ||
@@ -93,7 +96,7 @@
 	<< "Values:\n"
 	<< "  vertices pointer: " << vertices << "\n"
 	<< "  basis pointer: " << basis << "\n"
-	<< "  basis derivatites pointer: " << basisDeriv << "\n"
+	<< "  basis derivatites pointer: " << basisDerivRef << "\n"
 	<< "  quadrature points pointer: " << quadPtsRef << "\n"
 	<< "  quadrature weights pointer: " << quadWts << "\n"
 	<< "  space dimension: " << spaceDim << "\n"
@@ -115,9 +118,9 @@
       _basis[i] = basis[i];
 
     size = numBasis * numQuadPts * cellDim;
-    _basisDeriv.resize(size);
+    _basisDerivRef.resize(size);
     for (int i=0; i < size; ++i)
-      _basisDeriv[i] = basisDeriv[i];
+      _basisDerivRef[i] = basisDerivRef[i];
 
     size = numQuadPts * cellDim;
     _quadPtsRef.resize(size);
@@ -143,6 +146,12 @@
     size = numQuadPts;
     _jacobianDet.resize(size);
 
+#if 0
+    // Allocate for basis derivatives (in global coordinates)
+    size = numBasis * numQuadPts * spaceDim;
+    _basisDeriv.resize(size);
+#endif
+
     // Allocate for quad pts
     size = numQuadPts*spaceDim;
     _quadPts.resize(size);
@@ -172,9 +181,9 @@
       _basis[i] = basis[i];
 
     size = 1;
-    _basisDeriv.resize(size);
+    _basisDerivRef.resize(size);
     for (int i=0; i < size; ++i)
-      _basisDeriv[i] = basisDeriv[i];
+      _basisDerivRef[i] = basisDerivRef[i];
 
     size = 1;
     _quadPtsRef.resize(size);
@@ -200,6 +209,12 @@
     size = 1;
     _jacobianDet.resize(size);
 
+#if 0
+    // Allocate for basis derivatives (in global coordinates)
+    size = numBasis * numQuadPts * spaceDim;
+    _basisDeriv.resize(size);
+#endif
+
     // Allocate for quad pts
     size = spaceDim;
     _quadPts.resize(size);

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh	2007-06-14 04:09:16 UTC (rev 7224)
@@ -79,18 +79,19 @@
    *   size = numQuadPts * numBasis
    *   index = iQuadPt*numBasis + iBasis
    *
-   * @param basisDeriv Array of basis function derivaties evaluated 
-   *   at quadrature pts
-   *   N0xQp0, N0yQp0, N0zQp0, N1xQp0, N1yQp0, N1zQp0, ... 
-   *   N0xQp1, N0yQp1, N0zQp1, N1xQp1, N1yQp1, N1zQp1, ...
+   * @param basisDerivRef Array of basis function derivaties evaluated at
+   * quadrature pts, where derivatives are with respect to cell's
+   * local coordinates.
+   *   N0pQp0, N0qQp0, N0rQp0, N1pQp0, N1qQp0, N1rQp0, ... 
+   *   N0pQp1, N0qQp1, N0rQp1, N1pQp1, N1qQp1, N1rQp1, ...
    *   ...
    *   size = numQuadPts * numBasis * cellDim
    *   index = iQuadPt*numBasis*cellDim + iBasis*cellDim + iDim
    *
    * @param quadPts Array of coordinates of quadrature points in 
    *   reference cell
-   *   Qp0x, Qp0y, Qp0z
-   *   Qp1x, Qp1y, Qp1z
+   *   Qp0p, Qp0q, Qp0r
+   *   Qp1p, Qp1q, Qp1r
    *   size = numQuadPts * numDims
    *   index = iQuadPt*numDims + iDim
    *
@@ -105,7 +106,7 @@
    */
   void initialize(const double* vertices,
 		  const double* basis,
-		  const double* basisDeriv,
+		  const double* basisDerivRef,
 		  const double* quadPtsRef,
 		  const double* quadWts,
 		  const int cellDim,
@@ -270,7 +271,7 @@
    */
   double_array _quadPtsRef;
 
-  /** Array of coordinates of quadrature points in cell (NOT reference cell).
+  /** Array of coordinates of quadrature points in cell (global coordinates).
    *
    * Qp0x, Qp0y, Qp0z
    * Qp1x, Qp1y, Qp1z
@@ -298,15 +299,28 @@
    */
   double_array _basis;
 
-  /** Array of basis function derivatives evaluated at the quadrature points.
+  /** Array of basis function derivatives evaluated at the quadrature
+   * points, where derivatives are with respect to cell's local
+   * coordinates.
    *
+   * N0pQp0, N0qQp0, N0rQp0, N1pQp0, N1qQp0, N1rQp0, ... 
+   * N0pQp1, N0qQp1, N0rQp1, N1pQp1, N1qQp1, N1rQp1, ...
+   *
+   * size = numQuadPts * numBasis * spaceDim
+   * index = iQuadPt*numBasis*cellDim + iBasis*spaceDim + iDim
+   */
+  double_array _basisDerivRef;
+
+  /** Array of basis function derivatives evaluated at the quadrature
+   * points, where derivatives are with respect to global coordinates.
+   *
    * N0xQp0, N0yQp0, N0zQp0, N1xQp0, N1yQp0, N1zQp0, ... 
    * N0xQp1, N0yQp1, N0zQp1, N1xQp1, N1yQp1, N1zQp1, ...
    *
    * size = numQuadPts * numBasis * cellDim
    * index = iQuadPt*numBasis*cellDim + iBasis*cellDim + iDim
    */
-  double_array _basisDeriv;
+  //double_array _basisDeriv;
 
   /** Array of Jacobians evaluated at quadrature points.
    *

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -60,7 +60,7 @@
 inline
 const pylith::double_array&
 pylith::feassemble::Quadrature::basisDeriv(void) const {
-  return _basisDeriv;
+  return _basisDerivRef;
 }
 
 // Get Jacobians evaluated at quadrature points.

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature0D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -62,6 +62,9 @@
   _jacobian[0] = 1.0;
   _jacobianDet[0] = 1.0;
   _jacobianInv[0] = 1.0;
+#if 0
+  _basisDeriv[0] = _basisDerivRef[0];
+#endif
 } // computeGeometry
 
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -68,7 +68,7 @@
     // J = dx/dp = sum[i=0,n-1] (dNi/dp * xi)
     for (int iBasis=0; iBasis < _numBasis; ++iBasis)
       _jacobian[iQuadPt] += 
-	_basisDeriv[iQuadPt*_numBasis+iBasis] * vertCoords[iBasis];
+	_basisDerivRef[iQuadPt*_numBasis+iBasis] * vertCoords[iBasis];
 
     // Compute determinant of Jacobian at quadrature point
     // |J| = j00
@@ -79,6 +79,17 @@
     // Compute inverse of Jacobian at quadrature point
     // Jinv = 1/j00
     _jacobianInv[iQuadPt] = 1.0/_jacobianDet[iQuadPt];
+
+#if 0
+    // Compute derivatives of basis functions with respect to global
+    // coordinates
+    // dNi/dx = dNi/dp dp/dx + dNi/dq dq/dx + dNi/dr dr/dx
+    for (int iBasis=0; iBasis < _numBasis; ++iBasis)
+      for (int iDim=0; iDim < _spaceDim; ++iDim)
+	_basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_spaceDim+iDim] +=
+	  _basisDerivRef[iQuadPt*_numBasis*+iBasis] *
+	  _jacobianInv[iQuadPt*_spaceDim+iDim];
+#endif
   } // for
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din2D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -72,7 +72,7 @@
     // dx/dp = sum[i=0,n-1] (dNi/dp * xi)
     // dy/dp = sum[i=0,n-1] (dNi/dp * yi)
     for (int iBasis=0; iBasis < _numBasis; ++iBasis) {
-      const double deriv = _basisDeriv[iQuadPt*_numBasis+iBasis];
+      const double deriv = _basisDerivRef[iQuadPt*_numBasis+iBasis];
       for (int iDim=0; iDim < _spaceDim; ++iDim)
 	_jacobian[iQuadPt*_spaceDim+iDim] += 
 	  deriv * vertCoords[iBasis*_spaceDim+iDim];
@@ -93,6 +93,18 @@
     for (int iDim=0; iDim < _spaceDim; ++iDim)
       _jacobianInv[iQuadPt*_spaceDim+iDim] = 
 	1.0 / _jacobian[iQuadPt*_spaceDim+iDim];
+
+#if 0
+    // Compute derivatives of basis functions with respect to global
+    // coordinates
+    // dNi/dx = dNi/dp dp/dx + dNi/dq dq/dx + dNi/dr dr/dx
+    for (int iBasis=0; iBasis < _numBasis; ++iBasis)
+      for (int iDim=0; iDim < _spaceDim; ++iDim)
+	for (int jDim=0; jDim < _cellDim; ++jDim)
+	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_spaceDim+iDim] +=
+	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
+	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
+#endif
   } // for
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature1Din3D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -75,7 +75,7 @@
     // dy/dp = sum[i=0,n-1] (dNi/dp * yi)
     // dz/dp = sum[i=0,n-1] (dNi/dp * zi)
     for (int iBasis=0; iBasis < _numBasis; ++iBasis) {
-      const double deriv = _basisDeriv[iQuadPt*_numBasis+iBasis];
+      const double deriv = _basisDerivRef[iQuadPt*_numBasis+iBasis];
       for (int iDim=0; iDim < _spaceDim; ++iDim)
 	_jacobian[iQuadPt*_spaceDim+iDim] += 
 	  deriv * vertCoords[iBasis*_spaceDim+iDim];
@@ -96,6 +96,18 @@
     for (int iDim=0; iDim < _spaceDim; ++iDim)
       _jacobianInv[iQuadPt*_spaceDim+iDim] = 
 	1.0 / _jacobian[iQuadPt*_spaceDim+iDim];
+
+#if 0
+    // Compute derivatives of basis functions with respect to global
+    // coordinates
+    // dNi/dx = dNi/dp dp/dx + dNi/dq dq/dx + dNi/dr dr/dx
+    for (int iBasis=0; iBasis < _numBasis; ++iBasis)
+      for (int iDim=0; iDim < _spaceDim; ++iDim)
+	for (int jDim=0; jDim < _cellDim; ++jDim)
+	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_spaceDim+iDim] +=
+	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
+	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
+#endif
   } // for
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -76,7 +76,7 @@
     for (int iBasis=0; iBasis < _numBasis; ++iBasis)
       for (int iCol=0; iCol < _cellDim; ++iCol) {
 	const double deriv = 
-	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_cellDim+iCol];
+	  _basisDerivRef[iQuadPt*_numBasis*_spaceDim+iBasis*_cellDim+iCol];
 	for (int iRow=0; iRow < _spaceDim; ++iRow)
 	  _jacobian[iQuadPt*_cellDim*_spaceDim+iRow*_cellDim+iCol] +=
 	    deriv * vertCoords[iBasis*_spaceDim+iRow];
@@ -102,6 +102,18 @@
     _jacobianInv[i01] = -_jacobian[i01] / det;
     _jacobianInv[i10] = -_jacobian[i10] / det;
     _jacobianInv[i11] =  _jacobian[i00] / det;
+
+#if 0
+    // Compute derivatives of basis functions with respect to global
+    // coordinates
+    // dNi/dx = dNi/dp dp/dx + dNi/dq dq/dx + dNi/dr dr/dx
+    for (int iBasis=0; iBasis < _numBasis; ++iBasis)
+      for (int iDim=0; iDim < _spaceDim; ++iDim)
+	for (int jDim=0; jDim < _cellDim; ++jDim)
+	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_spaceDim+iDim] +=
+	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
+	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
+#endif
   } // for
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature2Din3D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -83,7 +83,7 @@
     for (int iBasis=0; iBasis < _numBasis; ++iBasis)
       for (int iCol=0; iCol < _cellDim; ++iCol) {
 	const double deriv = 
-	  _basisDeriv[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+iCol];
+	  _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+iCol];
 	for (int iRow=0; iRow < _spaceDim; ++iRow)
 	  _jacobian[iQuadPt*_cellDim*_spaceDim+iRow*_cellDim+iCol] +=
 	    deriv * vertCoords[iBasis*+_spaceDim+iRow];
@@ -181,6 +181,18 @@
       _jacobianInv[iJ+5] =  _jacobian[i10] / d12; // Jinv12
     } else
       throw std::runtime_error("Could not invert Jacobian.");
+
+#if 0
+    // Compute derivatives of basis functions with respect to global
+    // coordinates
+    // dNi/dx = dNi/dp dp/dx + dNi/dq dq/dx + dNi/dr dr/dx
+    for (int iBasis=0; iBasis < _numBasis; ++iBasis)
+      for (int iDim=0; iDim < _spaceDim; ++iDim)
+	for (int jDim=0; jDim < _cellDim; ++jDim)
+	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_spaceDim+iDim] +=
+	    _basisDerivRef[iQuadPt*_numBasis*_cellDim + iBasis*_cellDim+jDim] *
+	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
+#endif
   } // for
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature3D.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -83,7 +83,7 @@
     for (int iBasis=0; iBasis < _numBasis; ++iBasis)
       for (int iCol=0; iCol < _cellDim; ++iCol) {
 	const double deriv = 
-	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_cellDim+iCol];
+	  _basisDerivRef[iQuadPt*_numBasis*_spaceDim+iBasis*_cellDim+iCol];
 	for (int iRow=0; iRow < _spaceDim; ++iRow)
 	  _jacobian[iQuadPt*_cellDim*_spaceDim+iRow*_cellDim+iCol] += 
 	    deriv * vertCoords[iBasis*_spaceDim+iRow];
@@ -132,6 +132,18 @@
 			 _jacobian[i00]*_jacobian[i21]) / det;
     _jacobianInv[i22] = (_jacobian[i00]*_jacobian[i11] -
 			 _jacobian[i01]*_jacobian[i10]) / det;
+
+#if 0
+    // Compute derivatives of basis functions with respect to global
+    // coordinates
+    // dNi/dx = dNi/dp dp/dx + dNi/dq dq/dx + dNi/dr dr/dx
+    for (int iBasis=0; iBasis < _numBasis; ++iBasis)
+      for (int iDim=0; iDim < _spaceDim; ++iDim)
+	for (int jDim=0; jDim < _cellDim; ++jDim)
+	  _basisDeriv[iQuadPt*_numBasis*_spaceDim+iBasis*_spaceDim+iDim] +=
+	    _basisDerivRef[iQuadPt*_numBasis*_cellDim+iBasis*_cellDim+jDim] *
+	    _jacobianInv[iQuadPt*_cellDim*_spaceDim+jDim*_spaceDim+iDim];
+#endif
   } // for
 } // computeGeometry
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -61,8 +61,8 @@
   memcpy(&qOrig._basis[0], basisE, size*sizeof(double));
   
   size = 2;
-  qOrig._basisDeriv.resize(size);
-  memcpy(&qOrig._basisDeriv[0], basisDerivE, size*sizeof(double));
+  qOrig._basisDerivRef.resize(size);
+  memcpy(&qOrig._basisDerivRef[0], basisDerivE, size*sizeof(double));
 
   size = 1;
   qOrig._quadPtsRef.resize(size);
@@ -226,7 +226,7 @@
 
   size = numBasis * numQuadPts * spaceDim;
   for (int i=0; i < size; ++i)
-    CPPUNIT_ASSERT_EQUAL(basisDeriv[i], q._basisDeriv[i]);
+    CPPUNIT_ASSERT_EQUAL(basisDeriv[i], q._basisDerivRef[i]);
 
   size = numQuadPts * cellDim;
   for (int i=0; i < size; ++i)

Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc	2007-06-14 01:38:16 UTC (rev 7223)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc	2007-06-14 04:09:16 UTC (rev 7224)
@@ -60,7 +60,7 @@
 inline
 const double*
 pylith::feassemble::TestQuadrature::basisDeriv(const Quadrature& q) {
-  return &q._basisDeriv[0];
+  return &q._basisDerivRef[0];
 }
 
 // Get coordinates of quadrature points



More information about the cig-commits mailing list