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

brad at geodynamics.org brad at geodynamics.org
Thu May 31 17:34:42 PDT 2007


Author: brad
Date: 2007-05-31 17:34:41 -0700 (Thu, 31 May 2007)
New Revision: 7025

Added:
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicit.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh
Removed:
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.hh
Modified:
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh
   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/IntegratorElasticity.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DLinear.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh
Log:
Worked on unit tests for implicit elasticity integrator. Unit tests expose bug in implicit elasticity integrator in 3-D (Jacobian ij terms are 3x3 unsymmetric submatrix, not symmetric).

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -118,7 +118,7 @@
 
   // Allocate vectors for cell values.
   _initCellVector();
-  const int cellVecSize = spaceDim*numBasis;
+  const int cellVecSize = numBasis*spaceDim;
   double_array dispTpdtCell(cellVecSize);
   double_array dispTCell(cellVecSize);
   double_array dispTmdtCell(cellVecSize);
@@ -225,8 +225,8 @@
 	     ++iBasis) {
 	  const double N1 = wt*basisDeriv[iQ+iBasis*cellDim  ];
 	  const double N2 = wt*basisDeriv[iQ+iBasis*cellDim+1];
-	  _cellVector[iBasis*spaceDim  ] -= N1*s11 + N2*s12;
-	  _cellVector[iBasis*spaceDim+1] -= N1*s12 + N2*s22;
+	  _cellVector[iBasis*spaceDim  ] -=     N1*s11 + 0.5*N2*s12;
+	  _cellVector[iBasis*spaceDim+1] -= 0.5*N1*s12 +     N2*s22;
 	} // for
       } // for
       err = PetscLogFlops(numQuadPts*(1+numBasis*(8+2+9)));
@@ -253,12 +253,13 @@
 	for (int iBasis=0, iQ=iQuad*numBasis*cellDim;
 	     iBasis < numBasis;
 	     ++iBasis) {
+	  const int iBlock = iBasis*spaceDim;
 	  const double N1 = wt*basisDeriv[iQ+iBasis*cellDim+0];
 	  const double N2 = wt*basisDeriv[iQ+iBasis*cellDim+1];
 	  const double N3 = wt*basisDeriv[iQ+iBasis*cellDim+2];
-	  _cellVector[iBasis*spaceDim  ] -= N1*s11 + N2*s12 + N3*s13;
-	  _cellVector[iBasis*spaceDim+1] -= N1*s12 + N2*s22 + N3*s23;
-	  _cellVector[iBasis*spaceDim+2] -= N1*s13 + N2*s23 + N3*s33;
+	  _cellVector[iBlock  ] -=     N1*s11 + 0.5*N2*s12 + 0.5*N3*s13;
+	  _cellVector[iBlock+1] -= 0.5*N1*s12 +     N2*s22 + 0.5*N3*s23;
+	  _cellVector[iBlock+2] -= 0.5*N1*s13 + 0.5*N2*s23 +     N3*s33;
 	} // for
       } // for
       err = PetscLogFlops(numQuadPts*(1+numBasis*(3+12)));
@@ -342,7 +343,7 @@
         for (int jBasis=0; jBasis < numBasis; ++jBasis) {
           const double valIJ = valI * basis[iQ+jBasis];
           for (int iDim=0; iDim < spaceDim; ++iDim) {
-            const int iBlock = (iBasis*spaceDim + iDim) * (spaceDim*numBasis);
+            const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
             const int jBlock = (jBasis*spaceDim + iDim);
             _cellMatrix[iBlock+jBlock] += valIJ;
           } // for
@@ -396,7 +397,7 @@
   const int spaceDim = _quadrature->spaceDim();
   const int cellDim = _quadrature->cellDim();
 
-  const int cellVecSize = spaceDim*numBasis;
+  const int cellVecSize = numBasis*spaceDim;
   double_array dispCell(cellVecSize);
 
   // Allocate vector for total strain

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -99,7 +99,7 @@
 
   // Allocate vector for cell values.
   _initCellVector();
-  const int cellVecSize = spaceDim*numBasis;
+  const int cellVecSize = numBasis*spaceDim;
   double_array dispTCell(cellVecSize);
   //double_array gravCell(cellVecSize);
 
@@ -209,8 +209,8 @@
 	     ++iBasis) {
 	  const double N1 = wt*basisDeriv[iQ+iBasis*cellDim  ];
 	  const double N2 = wt*basisDeriv[iQ+iBasis*cellDim+1];
-	  _cellVector[iBasis*spaceDim  ] -= N1*s11 + N2*s12;
-	  _cellVector[iBasis*spaceDim+1] -= N1*s12 + N2*s22;
+	  _cellVector[iBasis*spaceDim  ] -=     N1*s11 + 0.5*N2*s12;
+	  _cellVector[iBasis*spaceDim+1] -= 0.5*N1*s12 +     N2*s22;
 	} // for
       } // for
       PetscErrorCode err = PetscLogFlops(numQuadPts*(1+numBasis*(8+2+9)));
@@ -237,12 +237,13 @@
 	for (int iBasis=0, iQ=iQuad*numBasis*cellDim;
 	     iBasis < numBasis;
 	     ++iBasis) {
+	  const int iBlock = iBasis*spaceDim;
 	  const double N1 = wt*basisDeriv[iQ+iBasis*cellDim+0];
 	  const double N2 = wt*basisDeriv[iQ+iBasis*cellDim+1];
 	  const double N3 = wt*basisDeriv[iQ+iBasis*cellDim+2];
-	  _cellVector[iBasis*spaceDim  ] -= N1*s11 + N2*s12 + N3*s13;
-	  _cellVector[iBasis*spaceDim+1] -= N1*s12 + N2*s22 + N3*s23;
-	  _cellVector[iBasis*spaceDim+2] -= N1*s13 + N2*s23 + N3*s33;
+	  _cellVector[iBlock  ] -=     N1*s11 + 0.5*N2*s12 + 0.5*N3*s13;
+	  _cellVector[iBlock+1] -= 0.5*N1*s12 +     N2*s22 + 0.5*N3*s23;
+	  _cellVector[iBlock+2] -= 0.5*N1*s13 + 0.5*N2*s23 +     N3*s33;
 	} // for
       } // for
       PetscErrorCode err = PetscLogFlops(numQuadPts*(1+numBasis*(3+12)));
@@ -304,7 +305,7 @@
 
   // Allocate matrix and vectors for cell values.
   _initCellMatrix();
-  const int cellVecSize = spaceDim*numBasis;
+  const int cellVecSize = numBasis*spaceDim;
   double_array dispTCell(cellVecSize);
 
   // Allocate vector for total strain
@@ -358,11 +359,11 @@
 	const double wt = quadWts[iQuad] * jacobianDet[iQuad];
 	const double C1111 = elasticConsts[iQuad][0];
 	for (int iBasis=0, iQ=iQuad*numBasis; iBasis < numBasis; ++iBasis) {
-	  const int iBlock = iBasis * spaceDim;
 	  const double valI = wt*basisDeriv[iQ+iBasis]*C1111;
 	  for (int jBasis=0; jBasis < numBasis; ++jBasis) {
-	    const int jBlock = jBasis * spaceDim;
 	    const double valIJ = valI * basisDeriv[iQ+jBasis];
+	    const int iBlock = iBasis*spaceDim * (numBasis*spaceDim);
+	    const int jBlock = jBasis*spaceDim;
 	    _cellMatrix[iBlock+jBlock] += valIJ;
 	  } // for
 	} // for
@@ -385,34 +386,37 @@
         const double wt = quadWts[iQuad] * jacobianDet[iQuad];
         const double C1111 = elasticConsts[iQuad][0];
         const double C1122 = elasticConsts[iQuad][1];
-        const double C1112 = elasticConsts[iQuad][2];
+        const double C1112 = elasticConsts[iQuad][2]/2.0;
         const double C2222 = elasticConsts[iQuad][3];
-        const double C2212 = elasticConsts[iQuad][4];
-	const double C1212 = elasticConsts[iQuad][5];
+        const double C2212 = elasticConsts[iQuad][4]/2.0;
+	const double C1212 = elasticConsts[iQuad][5]/4.0;
         for (int iBasis=0, iQ=iQuad*numBasis*cellDim;
 	     iBasis < numBasis;
 	     ++iBasis) {
           const double Nip = wt*basisDeriv[iQ+iBasis*cellDim  ];
           const double Niq = wt*basisDeriv[iQ+iBasis*cellDim+1];
+	  const int iBlock = (iBasis*spaceDim  ) * (numBasis*spaceDim);
+	  const int iBlock1 = (iBasis*spaceDim+1) * (numBasis*spaceDim);
           for (int jBasis=0; jBasis < numBasis; ++jBasis) {
             const double Njp = basisDeriv[iQ+jBasis*cellDim  ];
             const double Njq = basisDeriv[iQ+jBasis*cellDim+1];
             const double ki0j0 = 
-              C1111 * Nip * Njp + C1112 * Niq * Njp +
+	      C1111 * Nip * Njp + C1112 * Niq * Njp +
               C1112 * Nip * Njq + C1212 * Niq * Njq;
             const double ki0j1 =
-              C1122 * Nip * Njq + C2212 * Niq * Njq +
+	      C1122 * Nip * Njq + C2212 * Niq * Njq +
               C1112 * Nip * Njp + C1212 * Niq * Njp;
+            const double ki1j0 =
+	      C1122 * Niq * Njp + C2212 * Niq * Njq +
+              C1112 * Nip * Njp + C1212 * Nip * Njq;
             const double ki1j1 =
-              C2222 * Niq * Njq + C2212 * Nip * Njq +
+	      C2222 * Niq * Njq + C2212 * Nip * Njq +
               C2212 * Niq * Njp + C1212 * Nip * Njp;
-	    const int iBlock = iBasis*spaceDim * (spaceDim*numBasis);
-	    const int iBlock1 = (iBasis*spaceDim+1) * (spaceDim*numBasis);
-            const int jBlock = jBasis*spaceDim;
-            const int jBlock1 = jBasis*spaceDim+1;
-            _cellMatrix[iBlock +jBlock  ] += ki0j0;
+            const int jBlock = (jBasis*spaceDim  );
+            const int jBlock1 = (jBasis*spaceDim+1);
+            _cellMatrix[iBlock +jBlock ] += ki0j0;
             _cellMatrix[iBlock +jBlock1] += ki0j1;
-            _cellMatrix[iBlock1+jBlock  ] += ki0j1;
+            _cellMatrix[iBlock1+jBlock ] += ki1j0;
             _cellMatrix[iBlock1+jBlock1] += ki1j1;
           } // for
         } // for
@@ -435,24 +439,24 @@
         const double C1111 = elasticConsts[iQuad][ 0];
         const double C1122 = elasticConsts[iQuad][ 1];
         const double C1133 = elasticConsts[iQuad][ 2];
-        const double C1112 = elasticConsts[iQuad][ 3];
-        const double C1123 = elasticConsts[iQuad][ 4];
-        const double C1113 = elasticConsts[iQuad][ 5];
+        const double C1112 = elasticConsts[iQuad][ 3]/2.0;
+        const double C1123 = elasticConsts[iQuad][ 4]/2.0;
+        const double C1113 = elasticConsts[iQuad][ 5]/2.0;
         const double C2222 = elasticConsts[iQuad][ 6];
         const double C2233 = elasticConsts[iQuad][ 7];
-        const double C2212 = elasticConsts[iQuad][ 8];
-        const double C2223 = elasticConsts[iQuad][ 9];
-        const double C2213 = elasticConsts[iQuad][10];
+        const double C2212 = elasticConsts[iQuad][ 8]/2.0;
+        const double C2223 = elasticConsts[iQuad][ 9]/2.0;
+        const double C2213 = elasticConsts[iQuad][10]/2.0;
         const double C3333 = elasticConsts[iQuad][11];
-        const double C3312 = elasticConsts[iQuad][12];
-        const double C3323 = elasticConsts[iQuad][13];
-        const double C3313 = elasticConsts[iQuad][14];
-        const double C1212 = elasticConsts[iQuad][15];
-        const double C1223 = elasticConsts[iQuad][16];
-        const double C1213 = elasticConsts[iQuad][17];
-        const double C2323 = elasticConsts[iQuad][18];
-        const double C2313 = elasticConsts[iQuad][19];
-        const double C1313 = elasticConsts[iQuad][20];
+        const double C3312 = elasticConsts[iQuad][12]/2.0;
+        const double C3323 = elasticConsts[iQuad][13]/2.0;
+        const double C3313 = elasticConsts[iQuad][14]/2.0;
+        const double C1212 = elasticConsts[iQuad][15]/4.0;
+        const double C1223 = elasticConsts[iQuad][16]/4.0;
+        const double C1213 = elasticConsts[iQuad][17]/4.0;
+        const double C2323 = elasticConsts[iQuad][18]/4.0;
+        const double C2313 = elasticConsts[iQuad][19]/4.0;
+        const double C1313 = elasticConsts[iQuad][20]/4.0;
         for (int iBasis=0, iQ=iQuad*numBasis*cellDim;
 	     iBasis < numBasis;
 	     ++iBasis) {
@@ -464,7 +468,7 @@
             const double Njq = basisDeriv[iQ+jBasis*cellDim+1];
             const double Njr = basisDeriv[iQ+jBasis*cellDim+2];
             const double ki0j0 = 
-              C1111 * Nip * Njp + C1112 * Niq * Njp + C1113 * Nir * Njp +
+	      C1111 * Nip * Njp + C1112 * Niq * Njp + C1113 * Nir * Njp +
               C1112 * Nip * Njq + C1212 * Niq * Njq + C1213 * Nir * Njq +
               C1113 * Nip * Njr + C1213 * Niq * Njr + C1313 * Nir * Njr;
             const double ki0j1 =
@@ -488,9 +492,9 @@
               C3323 * Nir * Njq + C2323 * Niq * Njq + C2313 * Nip * Njq +
               C3313 * Nir * Njp + C2313 * Niq * Njp + C1313 * Nip * Njp;
 
-	    const int iBlock = iBasis*spaceDim * (spaceDim*numBasis);
-	    const int iBlock1 = (iBasis*spaceDim+1) * (spaceDim*numBasis);
-	    const int iBlock2 = (iBasis*spaceDim+2) * (spaceDim*numBasis);
+	    const int iBlock = iBasis*spaceDim * (numBasis*spaceDim);
+	    const int iBlock1 = (iBasis*spaceDim+1) * (numBasis*spaceDim);
+	    const int iBlock2 = (iBasis*spaceDim+2) * (numBasis*spaceDim);
             const int jBlock = jBasis*spaceDim;
             const int jBlock1 = jBasis*spaceDim+1;
             const int jBlock2 = jBasis*spaceDim+2;
@@ -556,7 +560,7 @@
   const int spaceDim = _quadrature->spaceDim();
   const int cellDim = _quadrature->cellDim();
 
-  const int cellVecSize = spaceDim*numBasis;
+  const int cellVecSize = numBasis*spaceDim;
   double_array dispCell(cellVecSize);
 
   // Allocate vector for total strain

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am	2007-06-01 00:34:41 UTC (rev 7025)
@@ -28,6 +28,13 @@
 	TestElasticityExplicit2DQuadratic.cc \
 	TestElasticityExplicit3DLinear.cc \
 	TestElasticityExplicit3DQuadratic.cc \
+	TestElasticityImplicit.cc \
+	TestElasticityImplicit1DLinear.cc \
+	TestElasticityImplicit1DQuadratic.cc \
+	TestElasticityImplicit2DLinear.cc \
+	TestElasticityImplicit2DQuadratic.cc \
+	TestElasticityImplicit3DLinear.cc \
+	TestElasticityImplicit3DQuadratic.cc \
 	TestIntegrator.cc \
 	TestQuadrature.cc \
 	TestQuadrature1D.cc \
@@ -45,6 +52,13 @@
 	TestElasticityExplicit2DQuadratic.hh \
 	TestElasticityExplicit3DLinear.hh \
 	TestElasticityExplicit3DQuadratic.hh \
+	TestElasticityImplicit.hh \
+	TestElasticityImplicit1DLinear.hh \
+	TestElasticityImplicit1DQuadratic.hh \
+	TestElasticityImplicit2DLinear.hh \
+	TestElasticityImplicit2DQuadratic.hh \
+	TestElasticityImplicit3DLinear.hh \
+	TestElasticityImplicit3DQuadratic.hh \
 	TestIntegrator.hh \
 	TestQuadrature.hh \
 	TestQuadrature1D.hh \
@@ -62,6 +76,12 @@
 	data/ElasticityExplicitData2DQuadratic.cc \
 	data/ElasticityExplicitData3DLinear.cc \
 	data/ElasticityExplicitData3DQuadratic.cc \
+	data/ElasticityImplicitData1DLinear.cc \
+	data/ElasticityImplicitData1DQuadratic.cc \
+	data/ElasticityImplicitData2DLinear.cc \
+	data/ElasticityImplicitData2DQuadratic.cc \
+	data/ElasticityImplicitData3DLinear.cc \
+	data/ElasticityImplicitData3DQuadratic.cc \
 	data/QuadratureData.cc \
 	data/QuadratureData1DLinear.cc \
 	data/QuadratureData1DQuadratic.cc \
@@ -87,6 +107,12 @@
 	data/ElasticityExplicitData2DQuadratic.hh \
 	data/ElasticityExplicitData3DLinear.hh \
 	data/ElasticityExplicitData3DQuadratic.hh \
+	data/ElasticityImplicitData1DLinear.hh \
+	data/ElasticityImplicitData1DQuadratic.hh \
+	data/ElasticityImplicitData2DLinear.hh \
+	data/ElasticityImplicitData2DQuadratic.hh \
+	data/ElasticityImplicitData3DLinear.hh \
+	data/ElasticityImplicitData3DQuadratic.hh \
 	data/QuadratureData.hh \
 	data/QuadratureData1DLinear.hh \
 	data/QuadratureData1DQuadratic.hh \

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -27,8 +27,6 @@
 
 #include <math.h> // USES fabs()
 
-#include <stdexcept> // TEMPORARY
-
 // ----------------------------------------------------------------------
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit );
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -31,7 +31,7 @@
     class TestElasticityExplicit;
 
     class ElasticityExplicit; // USES ElasticityExplicit
-    class IntegratorData; // HOLDSA ElasticityExplicitData
+    class IntegratorData; // HOLDSA IntegratorData
     class Quadrature; // HOLDSA Quadrature
   } // feassemble
 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,291 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit.hh" // Implementation of class methods
+
+#include "pylith/feassemble/ElasticityImplicit.hh" // USES ElasticityImplicit
+#include "data/IntegratorData.hh" // USES IntegratorData
+
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/topology/FieldsManager.hh" // USES FieldsManager
+
+#include "spatialdata/geocoords/CSCart.hh" // USES CSCart
+#include "spatialdata/spatialdb/SimpleDB.hh" // USES SimpleDB
+#include "spatialdata/spatialdb/SimpleIOAscii.hh" // USES SimpleIOAscii
+
+#include <math.h> // USES fabs()
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit );
+
+// ----------------------------------------------------------------------
+// Test constructor.
+void
+pylith::feassemble::TestElasticityImplicit::testConstructor(void)
+{ // testConstructor
+  ElasticityImplicit integrator;
+} // testConstructor
+
+// ----------------------------------------------------------------------
+// Test timeStep().
+void
+pylith::feassemble::TestElasticityImplicit::testTimeStep(void)
+{ // testTimeStep
+  ElasticityImplicit integrator;
+
+  const double dt1 = 2.0;
+  integrator.timeStep(dt1);
+  CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+  integrator.timeStep(dt1);
+  CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
+  CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+} // testTimeStep
+
+// ----------------------------------------------------------------------
+// Test StableTimeStep().
+void
+pylith::feassemble::TestElasticityImplicit::testStableTimeStep(void)
+{ // testStableTimeStep
+  ElasticityImplicit integrator;
+
+  const double dt1 = 2.0;
+  integrator.timeStep(dt1);
+  const double stableTimeStep = integrator.stableTimeStep();
+  CPPUNIT_ASSERT_EQUAL(dt1, stableTimeStep);
+} // testStableTimeStep
+
+// ----------------------------------------------------------------------
+// Test material().
+void
+pylith::feassemble::TestElasticityImplicit::testMaterial(void)
+{ // testMaterial
+  ElasticityImplicit integrator;
+
+  materials::ElasticIsotropic3D material;
+  const int id = 3;
+  const std::string label("my material");
+  material.id(id);
+  material.label(label.c_str());
+  integrator.material(&material);
+  CPPUNIT_ASSERT_EQUAL(id, integrator._material->id());
+  CPPUNIT_ASSERT_EQUAL(label, std::string(integrator._material->label()));
+} // testMaterial
+
+// ----------------------------------------------------------------------
+// Test updateState().
+void 
+pylith::feassemble::TestElasticityImplicit::testUpdateState(void)
+{ // testUpdateState
+  CPPUNIT_ASSERT(0 != _data);
+
+  ALE::Obj<ALE::Mesh> mesh;
+  ElasticityImplicit integrator;
+  topology::FieldsManager fields(mesh);
+  _initialize(&mesh, &integrator, &fields);
+
+  const ALE::Obj<real_section_type>& dispT = fields.getReal("dispT");
+  CPPUNIT_ASSERT(!dispT.isNull());
+  integrator.updateState(dispT, mesh);
+} // testUpdateState
+
+// ----------------------------------------------------------------------
+// Test integrateResidual().
+void
+pylith::feassemble::TestElasticityImplicit::testIntegrateResidual(void)
+{ // testIntegrateResidual
+  CPPUNIT_ASSERT(0 != _data);
+
+  ALE::Obj<ALE::Mesh> mesh;
+  ElasticityImplicit integrator;
+  topology::FieldsManager fields(mesh);
+  _initialize(&mesh, &integrator, &fields);
+
+  const ALE::Obj<real_section_type>& residual = fields.getReal("residual");
+  CPPUNIT_ASSERT(!residual.isNull());
+  integrator.integrateResidual(residual, &fields, mesh);
+
+  const double* valsE = _data->valsResidual;
+  const int sizeE = _data->spaceDim * _data->numVertices;
+
+  const double* vals = residual->restrict();
+  const int size = residual->sizeWithBC();
+  CPPUNIT_ASSERT_EQUAL(sizeE, size);
+
+  const double tolerance = 1.0e-06;
+  for (int i=0; i < size; ++i)
+    if (fabs(valsE[i]) > 1.0)
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
+    else
+      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+} // testIntegrateResidual
+
+// ----------------------------------------------------------------------
+// Test integrateJacobian().
+void
+pylith::feassemble::TestElasticityImplicit::testIntegrateJacobian(void)
+{ // testIntegrateJacobian
+  CPPUNIT_ASSERT(0 != _data);
+
+  ALE::Obj<ALE::Mesh> mesh;
+  ElasticityImplicit integrator;
+  topology::FieldsManager fields(mesh);
+  _initialize(&mesh, &integrator, &fields);
+
+  const ALE::Obj<pylith::real_section_type>& dispT = fields.getReal("dispT");
+  CPPUNIT_ASSERT(!dispT.isNull());
+
+  PetscMat jacobian;
+  PetscErrorCode err = MeshCreateMatrix(mesh, dispT, MATMPIBAIJ, &jacobian);
+  CPPUNIT_ASSERT(0 == err);
+
+  integrator.integrateJacobian(&jacobian, &fields, mesh);
+  err = MatAssemblyBegin(jacobian, MAT_FINAL_ASSEMBLY);
+  CPPUNIT_ASSERT(0 == err);
+  err = MatAssemblyEnd(jacobian, MAT_FINAL_ASSEMBLY);
+  CPPUNIT_ASSERT(0 == err);
+
+  const double* valsE = _data->valsJacobian;
+  const int nrowsE = _data->numVertices * _data->spaceDim;
+  const int ncolsE = _data->numVertices * _data->spaceDim;
+
+  int nrows = 0;
+  int ncols = 0;
+  MatGetSize(jacobian, &nrows, &ncols);
+  CPPUNIT_ASSERT_EQUAL(nrowsE, nrows);
+  CPPUNIT_ASSERT_EQUAL(ncolsE, ncols);
+
+  MatView(jacobian, PETSC_VIEWER_STDOUT_WORLD);
+
+  PetscMat jDense;
+  PetscMat jSparseAIJ;
+  MatConvert(jacobian, MATSEQAIJ, MAT_INITIAL_MATRIX, &jSparseAIJ);
+  MatConvert(jSparseAIJ, MATSEQDENSE, MAT_INITIAL_MATRIX, &jDense);
+
+  double_array vals(nrows*ncols);
+  int_array rows(nrows);
+  int_array cols(ncols);
+  for (int iRow=0; iRow < nrows; ++iRow)
+    rows[iRow] = iRow;
+  for (int iCol=0; iCol < ncols; ++iCol)
+    cols[iCol] = iCol;
+  MatGetValues(jDense, nrows, &rows[0], ncols, &cols[0], &vals[0]);
+  const double tolerance = 1.0e-06;
+  for (int iRow=0; iRow < nrows; ++iRow)
+    for (int iCol=0; iCol < ncols; ++iCol) {
+      const int index = ncols*iRow+iCol;
+      if (fabs(valsE[index]) > 1.0)
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[index]/valsE[index], tolerance);
+      else
+	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], vals[index], tolerance);
+    } // for
+  MatDestroy(jDense);
+  MatDestroy(jSparseAIJ);
+} // testIntegrateJacobian
+
+// ----------------------------------------------------------------------
+// Initialize elasticity integrator.
+void
+pylith::feassemble::TestElasticityImplicit::_initialize(
+					 ALE::Obj<ALE::Mesh>* mesh,
+					 ElasticityImplicit* const integrator,
+					 topology::FieldsManager* fields)
+{ // _initialize
+  CPPUNIT_ASSERT(0 != mesh);
+  CPPUNIT_ASSERT(0 != integrator);
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT(0 != _quadrature);
+  CPPUNIT_ASSERT(0 != _material);
+
+  // Setup mesh
+  spatialdata::geocoords::CSCart cs;
+  cs.setSpaceDim(_data->spaceDim);
+  cs.initialize();
+  *mesh = new ALE::Mesh(PETSC_COMM_WORLD, _data->cellDim);
+  CPPUNIT_ASSERT(!mesh->isNull());
+  ALE::Obj<sieve_type> sieve = new sieve_type((*mesh)->comm());
+  CPPUNIT_ASSERT(!sieve.isNull());
+  const bool interpolate = false;
+  ALE::SieveBuilder<Mesh>::buildTopology(sieve, _data->cellDim, 
+	       _data->numCells, const_cast<int*>(_data->cells), 
+	       _data->numVertices, interpolate, _data->numBasis);
+  (*mesh)->setSieve(sieve);
+  (*mesh)->stratify();
+  ALE::SieveBuilder<Mesh>::buildCoordinates((*mesh), _data->spaceDim,
+					    _data->vertices);
+  const ALE::Obj<Mesh::label_type>& labelMaterials = 
+    (*mesh)->createLabel("material-id");  
+  int i = 0;
+  const ALE::Obj<Mesh::label_sequence>& cells = (*mesh)->heightStratum(0);
+  CPPUNIT_ASSERT(!cells.isNull());
+  for(Mesh::label_sequence::iterator c_iter = cells->begin();
+      c_iter != cells->end();
+      ++c_iter)
+    (*mesh)->setValue(labelMaterials, *c_iter, _data->matId);
+  (*mesh)->getFactory()->clear(); // clear numberings
+
+  // Setup quadrature
+  _quadrature->initialize(_data->basis, _data->basisDeriv, _data->quadPts,
+			  _data->quadWts, _data->cellDim, _data->numBasis,
+			  _data->numQuadPts, _data->spaceDim);
+
+  // Setup material
+  spatialdata::spatialdb::SimpleIOAscii iohandler;
+  iohandler.filename(_data->matDBFilename);
+  spatialdata::spatialdb::SimpleDB db;
+  db.ioHandler(&iohandler);
+  
+  _material->id(_data->matId);
+  _material->label(_data->matLabel);
+  _material->timestep(_data->dt);
+  _material->db(&db);
+  _material->initialize(*mesh, &cs, _quadrature);
+
+  integrator->quadrature(_quadrature);
+  integrator->timeStep(_data->dt);
+  integrator->material(_material);
+
+  // Setup fields
+  CPPUNIT_ASSERT(0 != fields);
+  fields->addReal("residual");
+  fields->addReal("dispBCTpdt");
+  fields->addReal("dispT");
+  const char* history[] = { "dispBCTpdt", "dispT" };
+  const int historySize = 2;
+  fields->createHistory(history, historySize);
+  
+  const ALE::Obj<real_section_type>& residual = fields->getReal("residual");
+  CPPUNIT_ASSERT(!residual.isNull());
+  residual->setFiberDimension((*mesh)->depthStratum(0), _data->spaceDim);
+  (*mesh)->allocate(residual);
+  residual->zero();
+  fields->copyLayout("residual");
+
+  const int fieldSize = _data->spaceDim * _data->numVertices;
+  const ALE::Obj<real_section_type>& dispBCTpdt = 
+    fields->getReal("dispBCTpdt");
+  const ALE::Obj<real_section_type>& dispT = fields->getReal("dispT");
+  CPPUNIT_ASSERT(!dispBCTpdt.isNull());
+  CPPUNIT_ASSERT(!dispT.isNull());
+  const int offset = _data->numCells;
+  for (int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+    dispBCTpdt->updatePoint(iVertex+offset, 
+			    &_data->fieldTpdt[iVertex*_data->spaceDim]);
+    dispT->updatePoint(iVertex+offset, 
+		       &_data->fieldT[iVertex*_data->spaceDim]);
+  } // for
+} // _initialize
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit_hh)
+#define pylith_feassemble_testelasticityimplicit_hh
+
+#include <cppunit/extensions/HelperMacros.h>
+
+#include "pylith/utils/sievefwd.hh" // USES PETSc Mesh
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit;
+
+    class ElasticityImplicit; // USES ElasticityImplicit
+    class IntegratorData; // HOLDSA IntegratorData
+    class Quadrature; // HOLDSA Quadrature
+  } // feassemble
+
+  namespace materials {
+    class ElasticMaterial; // HOLDSA ElasticMaterial
+  } // materials
+
+  namespace topology {
+    class FieldsManager; // USES FieldsManager
+  } // topology
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit : public CppUnit::TestFixture
+{ // class TestElasticityImplicit
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit );
+
+  CPPUNIT_TEST( testConstructor );
+  CPPUNIT_TEST( testTimeStep );
+  CPPUNIT_TEST( testStableTimeStep );
+  CPPUNIT_TEST( testMaterial );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Test constructor.
+  void testConstructor(void);
+
+  /// Test timeStep().
+  void testTimeStep(void);
+
+  /// Test StableTimeStep().
+  void testStableTimeStep(void);
+
+  /// Test material().
+  void testMaterial(void);
+
+  /// Test updateState().
+  void testUpdateState(void);
+
+  /// Test integrateResidual().
+  void testIntegrateResidual(void);
+
+  /// Test integrateJacobian().
+  void testIntegrateJacobian(void);
+
+  // PROTECTED MEMBERS //////////////////////////////////////////////////
+protected :
+
+  IntegratorData* _data; ///< Data for testing.
+  materials::ElasticMaterial* _material; ///< Elastic material.
+  Quadrature* _quadrature; ///< Quadrature information.
+
+  // PRIVATE METHODS ////////////////////////////////////////////////////
+private :
+
+  /** Initialize elasticity integrator.
+   *
+   * @param mesh PETSc mesh to initialize.
+   * @param integrator ElasticityIntegrator to initialize.
+   * @param fields Solution fields.
+   */
+  void _initialize(ALE::Obj<ALE::Mesh>* mesh,
+		   ElasticityImplicit* const integrator,
+		   topology::FieldsManager* const fields);
+
+}; // class TestElasticityImplicit
+
+#endif // pylith_feassemble_testelasticityimplicit_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit1DLinear.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitData1DLinear.hh"
+
+#include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit1DLinear );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicit1DLinear::setUp(void)
+{ // setUp
+  _data = new ElasticityImplicitData1DLinear();
+  _quadrature = new Quadrature1D();
+  _material = new materials::ElasticStrain1D;
+
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
+		       std::string(_data->matType));
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::feassemble::TestElasticityImplicit1DLinear::tearDown(void)
+{ // tearDown
+  delete _data;
+  delete _quadrature;
+  delete _material;
+} // tearDown
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DLinear.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit1DLinear.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit with 1-D linear cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit1dlinear_hh)
+#define pylith_feassemble_testelasticityimplicit1dlinear_hh
+
+#include "TestElasticityImplicit.hh" // ISA TestElasticityImplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit1DLinear;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit1DLinear :
+  public TestElasticityImplicit
+{ // class TestElasticityImplicit1DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit1DLinear );
+
+  CPPUNIT_TEST( testUpdateState );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+}; // class TestElasticityImplicit1DLinear
+
+#endif // pylith_feassemble_testelasticityimplicit1dlinear_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit1DQuadratic.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitData1DQuadratic.hh"
+
+#include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit1DQuadratic );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicit1DQuadratic::setUp(void)
+{ // setUp
+  _data = new ElasticityImplicitData1DQuadratic();
+  _quadrature = new Quadrature1D();
+  _material = new materials::ElasticStrain1D;
+
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
+		       std::string(_data->matType));
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::feassemble::TestElasticityImplicit1DQuadratic::tearDown(void)
+{ // tearDown
+  delete _data;
+  delete _quadrature;
+  delete _material;
+} // tearDown
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit1DQuadratic.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit with 1-D quadratic cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit1dquadratic_hh)
+#define pylith_feassemble_testelasticityimplicit1dquadratic_hh
+
+#include "TestElasticityImplicit.hh" // ISA TestElasticityImplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit1DQuadratic;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit1DQuadratic :
+  public TestElasticityImplicit
+{ // class TestElasticityImplicit1DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit1DQuadratic );
+
+  CPPUNIT_TEST( testUpdateState );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+}; // class TestElasticityImplicit1DQuadratic
+
+#endif // pylith_feassemble_testelasticityimplicit1dquadratic_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit2DLinear.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitData2DLinear.hh"
+
+#include "pylith/feassemble/Quadrature2D.hh" // USES Quadrature2D
+#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit2DLinear );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicit2DLinear::setUp(void)
+{ // setUp
+  _data = new ElasticityImplicitData2DLinear();
+  _quadrature = new Quadrature2D();
+  _material = new materials::ElasticPlaneStrain;
+
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
+		       std::string(_data->matType));
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::feassemble::TestElasticityImplicit2DLinear::tearDown(void)
+{ // tearDown
+  delete _data;
+  delete _quadrature;
+  delete _material;
+} // tearDown
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DLinear.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit2DLinear.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit with 1-D linear cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit2dlinear_hh)
+#define pylith_feassemble_testelasticityimplicit2dlinear_hh
+
+#include "TestElasticityImplicit.hh" // ISA TestElasticityImplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit2DLinear;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit2DLinear :
+  public TestElasticityImplicit
+{ // class TestElasticityImplicit2DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit2DLinear );
+
+  CPPUNIT_TEST( testUpdateState );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+}; // class TestElasticityImplicit2DLinear
+
+#endif // pylith_feassemble_testelasticityimplicit2dlinear_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit2DQuadratic.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitData2DQuadratic.hh"
+
+#include "pylith/feassemble/Quadrature2D.hh" // USES Quadrature2D
+#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit2DQuadratic );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicit2DQuadratic::setUp(void)
+{ // setUp
+  _data = new ElasticityImplicitData2DQuadratic();
+  _quadrature = new Quadrature2D();
+  _material = new materials::ElasticPlaneStrain;
+
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
+		       std::string(_data->matType));
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::feassemble::TestElasticityImplicit2DQuadratic::tearDown(void)
+{ // tearDown
+  delete _data;
+  delete _quadrature;
+  delete _material;
+} // tearDown
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit2DQuadratic.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit with 2-D quadratic cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit2dquadratic_hh)
+#define pylith_feassemble_testelasticityimplicit2dquadratic_hh
+
+#include "TestElasticityImplicit.hh" // ISA TestElasticityImplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit2DQuadratic;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit2DQuadratic :
+  public TestElasticityImplicit
+{ // class TestElasticityImplicit2DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit2DQuadratic );
+
+  CPPUNIT_TEST( testUpdateState );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+}; // class TestElasticityImplicit2DQuadratic
+
+#endif // pylith_feassemble_testelasticityimplicit2dquadratic_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit3DLinear.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitData3DLinear.hh"
+
+#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit3DLinear );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicit3DLinear::setUp(void)
+{ // setUp
+  _data = new ElasticityImplicitData3DLinear();
+  _quadrature = new Quadrature3D();
+  _material = new materials::ElasticIsotropic3D;
+
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
+		       std::string(_data->matType));
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::feassemble::TestElasticityImplicit3DLinear::tearDown(void)
+{ // tearDown
+  delete _data;
+  delete _quadrature;
+  delete _material;
+} // tearDown
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DLinear.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit3DLinear.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit with 1-D linear cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit3dlinear_hh)
+#define pylith_feassemble_testelasticityimplicit3dlinear_hh
+
+#include "TestElasticityImplicit.hh" // ISA TestElasticityImplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit3DLinear;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit3DLinear :
+  public TestElasticityImplicit
+{ // class TestElasticityImplicit3DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit3DLinear );
+
+  CPPUNIT_TEST( testUpdateState );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+}; // class TestElasticityImplicit3DLinear
+
+#endif // pylith_feassemble_testelasticityimplicit3dlinear_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicit3DQuadratic.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitData3DQuadratic.hh"
+
+#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicit3DQuadratic );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicit3DQuadratic::setUp(void)
+{ // setUp
+  _data = new ElasticityImplicitData3DQuadratic();
+  _quadrature = new Quadrature3D();
+  _material = new materials::ElasticIsotropic3D;
+
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
+		       std::string(_data->matType));
+} // setUp
+
+// ----------------------------------------------------------------------
+// Tear down testing data.
+void
+pylith::feassemble::TestElasticityImplicit3DQuadratic::tearDown(void)
+{ // tearDown
+  delete _data;
+  delete _quadrature;
+  delete _material;
+} // tearDown
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicit3DQuadratic.hh
+ *
+ * @brief C++ TestElasticityImplicit object
+ *
+ * C++ unit testing for ElasticityImplicit with 3-D quadratic cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicit3dquadratic_hh)
+#define pylith_feassemble_testelasticityimplicit3dquadratic_hh
+
+#include "TestElasticityImplicit.hh" // ISA TestElasticityImplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicit3DQuadratic;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicit
+class pylith::feassemble::TestElasticityImplicit3DQuadratic :
+  public TestElasticityImplicit
+{ // class TestElasticityImplicit3DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicit3DQuadratic );
+
+  CPPUNIT_TEST( testUpdateState );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+  /// Tear down testing data.
+  void tearDown(void);
+
+}; // class TestElasticityImplicit3DQuadratic
+
+#endif // pylith_feassemble_testelasticityimplicit3dquadratic_hh
+
+
+// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -1,172 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestIntegratorInertia1D.hh" // Implementation of class methods
-
-#include "pylith/feassemble/IntegratorInertia.hh"
-#include "pylith/feassemble/Quadrature1D.hh"
-
-#include "data/IntegratorDataInertia1DLinear.hh"
-#include "data/IntegratorDataInertia1DQuadratic.hh"
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestIntegratorInertia1D );
-
-// ----------------------------------------------------------------------
-// Test constructor
-void
-pylith::feassemble::TestIntegratorInertia1D::testConstructor(void)
-{ // testConstructor
-  IntegratorInertia integrator;
-} // testConstructor
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/linear basis fns
-void
-pylith::feassemble::TestIntegratorInertia1D::testActionLinear(void)
-{ // testActionLinear
-  IntegratorDataInertia1DLinear data;
-
-  Quadrature1D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionLinear
-
-// ----------------------------------------------------------------------
-// Test integrate() w/linear basis fns
-void
-pylith::feassemble::TestIntegratorInertia1D::testIntegrateLinear(void)
-{ // testIntegrateLinear
-  IntegratorDataInertia1DLinear data;
-
-  Quadrature1D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateLinear
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/linear basis fns
-void
-pylith::feassemble::TestIntegratorInertia1D::testLumpedLinear(void)
-{ // testLumpedLinear
-  IntegratorDataInertia1DLinear data;
-
-  Quadrature1D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedLinear
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/quadratic basis fns
-void
-pylith::feassemble::TestIntegratorInertia1D::testActionQuadratic(void)
-{ // testActionQuadratic
-  IntegratorDataInertia1DQuadratic data;
-
-  Quadrature1D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionQuadratic
-
-// ----------------------------------------------------------------------
-// Test integrate() w/quadratic basis fns
-void
-pylith::feassemble::TestIntegratorInertia1D::testIntegrateQuadratic(void)
-{ // testIntegrateQuadratic
-  IntegratorDataInertia1DQuadratic data;
-
-  Quadrature1D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateQuadratic
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/quadratic basis fns
-void
-pylith::feassemble::TestIntegratorInertia1D::testLumpedQuadratic(void)
-{ // testLumpedQuadratic
-  IntegratorDataInertia1DQuadratic data;
-
-  Quadrature1D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedQuadratic
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia1D.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -1,77 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestIntegratorInertia1D.hh
- *
- * @brief C++ TestIntegratorInertia1D object
- *
- * C++ unit testing for IntegratorInertia.
- */
-
-#if !defined(pylith_feassemble_testintegratorinertia1d_hh)
-#define pylith_feassemble_testintegratorinertia1d_hh
-
-#include "TestIntegratorInertia.hh"
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestIntegratorInertia1D;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for IntegratorInertia1D
-class pylith::feassemble::TestIntegratorInertia1D : 
-  public TestIntegratorInertia
-{ // class TestIntegratorInertia1D
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestIntegratorInertia1D );
-  CPPUNIT_TEST( testConstructor );
-  CPPUNIT_TEST( testActionLinear );
-  CPPUNIT_TEST( testIntegrateLinear );
-  CPPUNIT_TEST( testLumpedLinear );
-  CPPUNIT_TEST( testActionQuadratic );
-  CPPUNIT_TEST( testIntegrateQuadratic );
-  CPPUNIT_TEST( testLumpedQuadratic );
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Test constructor
-  void testConstructor(void);
-
-  /// Test integrateAction() w/linear basis fns
-  void testActionLinear(void);
-
-  /// Test integrate() w/linear basis fns
-  void testIntegrateLinear(void);
-
-  /// Test integrateLumped() w/linear basis fns
-  void testLumpedLinear(void);
-
-  /// Test integrateAction() w/quadratic basis fns
-  void testActionQuadratic(void);
-
-  /// Test integrate() w/quadratic basis fns
-  void testIntegrateQuadratic(void);
-
-  /// Test integrateLumped() w/quadratic basis fns
-  void testLumpedQuadratic(void);
-
-}; // class TestIntegratorInertia1D
-
-#endif // pylith_feassemble_testintegratorinertia1d_hh
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -1,234 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestIntegratorInertia2D.hh" // Implementation of class methods
-
-#include "pylith/feassemble/IntegratorInertia.hh"
-#include "pylith/feassemble/Quadrature2Din3D.hh"
-
-#include "data/IntegratorDataInertia2Din3DOne.hh"
-#include "data/IntegratorDataInertia2Din3DTwo.hh"
-#include "data/IntegratorDataInertia2Din3DThree.hh"
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestIntegratorInertia2D );
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/linear basis fns (1 cell)
-void
-pylith::feassemble::TestIntegratorInertia2D::testActionOne(void)
-{ // testActionOne
-  IntegratorDataInertia2Din3DOne data;
-
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionLinear
-
-// ----------------------------------------------------------------------
-// Test integrate() w/linear basis fns (1 cell)
-void
-pylith::feassemble::TestIntegratorInertia2D::testIntegrateOne(void)
-{ // testIntegrateOne
-  IntegratorDataInertia2Din3DOne data;
-
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateLinear
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/linear basis fns (1 cell)
-void
-pylith::feassemble::TestIntegratorInertia2D::testLumpedOne(void)
-{ // testLumpedOne
-  IntegratorDataInertia2Din3DOne data;
-
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedLinear
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/linear basis fns (2 cells sharing 1 vertex)
-void
-pylith::feassemble::TestIntegratorInertia2D::testActionOverlap1(void)
-{ // testActionOverlap1
-  IntegratorDataInertia2Din3DTwo data;
-  
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionOverlap1
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/linear basis fns (2 cells sharing 1 vertex)
-void
-pylith::feassemble::TestIntegratorInertia2D::testIntegrateOverlap1(void)
-{ // testIntegrateOverlap1
-  IntegratorDataInertia2Din3DTwo data;
-  
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateOverlap1
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/linear basis fns (2 cells sharing 1 vertex)
-void
-pylith::feassemble::TestIntegratorInertia2D::testLumpedOverlap1(void)
-{ // testLumpedOverlap1
-  IntegratorDataInertia2Din3DTwo data;
-  
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedOverlap1
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/linear basis fns (2 cells sharing 2 vertices)
-void
-pylith::feassemble::TestIntegratorInertia2D::testActionOverlap2(void)
-{ // testActionOverlap2
-  IntegratorDataInertia2Din3DThree data;
-  
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionOverlap2
-
-// ----------------------------------------------------------------------
-// Test integrate() w/linear basis fns (2 cells sharing 2 vertices)
-void
-pylith::feassemble::TestIntegratorInertia2D::testIntegrateOverlap2(void)
-{ // testIntegrateOverlap2
-  IntegratorDataInertia2Din3DThree data;
-  
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateOverlap2
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/linear basis fns (2 cells sharing 2 vertices)
-void
-pylith::feassemble::TestIntegratorInertia2D::testLumpedOverlap2(void)
-{ // testLumpedOverlap2
-  IntegratorDataInertia2Din3DThree data;
-  
-  Quadrature2Din3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedOverlap2
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia2D.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestIntegratorInertia2D.hh
- *
- * @brief C++ TestIntegratorInertia2D object
- *
- * C++ unit testing for IntegratorInertia.
- */
-
-#if !defined(pylith_feassemble_testintegratorinertia2d_hh)
-#define pylith_feassemble_testintegratorinertia2d_hh
-
-#include "TestIntegratorInertia.hh"
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestIntegratorInertia2D;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for IntegratorInertia2D
-class pylith::feassemble::TestIntegratorInertia2D : 
-  public TestIntegratorInertia
-{ // class TestIntegratorInertia2D
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestIntegratorInertia2D );
-
-  CPPUNIT_TEST( testActionOne );
-  CPPUNIT_TEST( testIntegrateOne );
-  CPPUNIT_TEST( testLumpedOne );
-
-  CPPUNIT_TEST( testActionOverlap1 );
-  CPPUNIT_TEST( testIntegrateOverlap1 );
-  CPPUNIT_TEST( testLumpedOverlap1 );
-
-  CPPUNIT_TEST( testActionOverlap2 );
-  CPPUNIT_TEST( testIntegrateOverlap2 );
-  CPPUNIT_TEST( testLumpedOverlap2 );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Test integrateAction() w/linear basis fns (1 cell)
-  void testActionOne(void);
-
-  /// Test integrate() w/linear basis fns (1 cell)
-  void testIntegrateOne(void);
-
-  /// Test integrateLumped() w/linear basis fns (1 cell)
-  void testLumpedOne(void);
-
-  /// Test integrateAction() w/linear basis fns (2 cells sharing 1 vertex)
-  void testActionOverlap1(void);
-
-  /// Test integrate() w/linear basis fns (2 cells sharing 1 vertex)
-  void testIntegrateOverlap1(void);
-
-  /// Test integrateLumped() w/linear basis fns (2 cells sharing 1 vertex)
-  void testLumpedOverlap1(void);
-
-  /// Test integrateAction() w/linear basis fns (2 cells sharing 2 vertices)
-  void testActionOverlap2(void);
-
-  /// Test integrate() w/linear basis fns (2 cells sharing 2 vertices)
-  void testIntegrateOverlap2(void);
-
-  /// Test integrateLumped() w/linear basis fns (2 cells sharing 2 vertices)
-  void testLumpedOverlap2(void);
-
-}; // class TestIntegratorInertia2D
-
-#endif // pylith_feassemble_testintegratorinertia2d_hh
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -1,164 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-#include <portinfo>
-
-#include "TestIntegratorInertia3D.hh" // Implementation of class methods
-
-#include "pylith/feassemble/IntegratorInertia.hh"
-#include "pylith/feassemble/Quadrature3D.hh"
-
-#include "data/IntegratorDataInertia3DLinear.hh"
-#include "data/IntegratorDataInertia3DQuadratic.hh"
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestIntegratorInertia3D );
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/linear basis fns
-void
-pylith::feassemble::TestIntegratorInertia3D::testActionLinear(void)
-{ // testActionLinear
-  IntegratorDataInertia3DLinear data;
-
-  Quadrature3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionLinear
-
-// ----------------------------------------------------------------------
-// Test integrate() w/linear basis fns
-void
-pylith::feassemble::TestIntegratorInertia3D::testIntegrateLinear(void)
-{ // testIntegrateLinear
-  IntegratorDataInertia3DLinear data;
-
-  Quadrature3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateLinear
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/linear basis fns
-void
-pylith::feassemble::TestIntegratorInertia3D::testLumpedLinear(void)
-{ // testLumpedLinear
-  IntegratorDataInertia3DLinear data;
-
-  Quadrature3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedLinear
-
-// ----------------------------------------------------------------------
-// Test integrateAction() w/quadratic basis fns
-void
-pylith::feassemble::TestIntegratorInertia3D::testActionQuadratic(void)
-{ // testActionQuadratic
-  IntegratorDataInertia3DQuadratic data;
-
-  Quadrature3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateAction(&integrator, data);
-} // testActionQuadratic
-
-// ----------------------------------------------------------------------
-// Test integrate() w/quadratic basis fns
-void
-pylith::feassemble::TestIntegratorInertia3D::testIntegrateQuadratic(void)
-{ // testIntegrateQuadratic
-  IntegratorDataInertia3DQuadratic data;
-
-  Quadrature3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrate(&integrator, data);
-} // testIntegrateQuadratic
-
-// ----------------------------------------------------------------------
-// Test integrateLumped() w/quadratic basis fns
-void
-pylith::feassemble::TestIntegratorInertia3D::testLumpedQuadratic(void)
-{ // testLumpedQuadratic
-  IntegratorDataInertia3DQuadratic data;
-
-  Quadrature3D q;
-  q.initialize(data.basis,
-	       data.basisDeriv,
-	       data.quadPts,
-	       data.quadWts,
-	       data.cellDim,
-	       data.numCorners,
-	       data.numQuadPts,
-	       data.spaceDim);
-
-  IntegratorInertia integrator;
-  integrator.quadrature(&q);
-
-  _testIntegrateLumped(&integrator, data);
-} // testLumpedQuadratic
-
-// End of file 

Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorInertia3D.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -1,76 +0,0 @@
-// -*- C++ -*-
-//
-// ----------------------------------------------------------------------
-//
-//                           Brad T. Aagaard
-//                        U.S. Geological Survey
-//
-// {LicenseText}
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/feassemble/TestIntegratorInertia3D.hh
- *
- * @brief C++ TestIntegratorInertia3D object
- *
- * C++ unit testing for IntegratorInertia.
- */
-
-#if !defined(pylith_feassemble_testintegratorinertia3d_hh)
-#define pylith_feassemble_testintegratorinertia3d_hh
-
-#include "TestIntegratorInertia.hh"
-
-/// Namespace for pylith package
-namespace pylith {
-  namespace feassemble {
-    class TestIntegratorInertia3D;
-  } // feassemble
-} // pylith
-
-/// C++ unit testing for IntegratorInertia3D
-class pylith::feassemble::TestIntegratorInertia3D : 
-  public TestIntegratorInertia
-{ // class TestIntegratorInertia3D
-
-  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
-  CPPUNIT_TEST_SUITE( TestIntegratorInertia3D );
-
-  CPPUNIT_TEST( testActionLinear );
-  CPPUNIT_TEST( testIntegrateLinear );
-  CPPUNIT_TEST( testLumpedLinear );
-
-  CPPUNIT_TEST( testActionQuadratic );
-  CPPUNIT_TEST( testIntegrateQuadratic );
-  CPPUNIT_TEST( testLumpedQuadratic );
-
-  CPPUNIT_TEST_SUITE_END();
-
-  // PUBLIC METHODS /////////////////////////////////////////////////////
-public :
-
-  /// Test integrateAction() w/linear basis fns
-  void testActionLinear(void);
-
-  /// Test integrate() w/linear basis fns
-  void testIntegrateLinear(void);
-
-  /// Test integrateLumped() w/linear basis fns
-  void testLumpedLinear(void);
-
-  /// Test integrateAction() w/quadratic basis fns
-  void testActionQuadratic(void);
-
-  /// Test integrate() w/quadratic basis fns
-  void testIntegrateQuadratic(void);
-
-  /// Test integrateLumped() w/quadratic basis fns
-  void testLumpedQuadratic(void);
-
-}; // class TestIntegratorInertia3D
-
-#endif // pylith_feassemble_testintegratorinertia3d_hh
-
-// End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -84,9 +84,9 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsResidual[] = {
- -4.45506111e+10, -3.13529028e+10,
-  3.95993889e+10,  4.94709722e+09,
-  4.94938889e+09,  2.63970972e+10,
+ -4.20756111e+10, -2.88779028e+10,
+  3.95993889e+10,  2.47209722e+09,
+  2.47438889e+09,  2.63970972e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -121,12 +121,12 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsResidual[] = {
- -2.31996617e+10,  2.89043296e+09,
- -1.24763329e+11, -6.07499338e+10,
- -4.35147872e+10, -9.72849436e+10,
-  3.06207774e+11,  4.04154283e+11,
- -4.20118462e+11, -4.84409983e+11,
-  3.05400760e+11,  2.35408162e+11,
+ -2.15070691e+10,  4.58302555e+09,
+ -1.24763329e+11, -3.03758597e+10,
+ -2.17573798e+10, -9.72849436e+10,
+  2.25394811e+11,  3.72087616e+11,
+ -3.39305499e+11, -4.12213687e+11,
+  2.81950760e+11,  1.63211865e+11,
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -68,14 +68,14 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_fieldTpdt[] = {
-  4.00000000e-01,  2.00000000e-01, -5.00000000e-01,
+  3.00000000e-01,  2.00000000e-01, -5.00000000e-01,
  -3.00000000e-01, -4.00000000e-01, -6.00000000e-01,
   2.00000000e-01,  6.00000000e-01,  3.00000000e-01,
  -6.00000000e-01, -1.00000000e-01, -3.00000000e-01,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_fieldT[] = {
-  1.00000000e-01,  1.00000000e-01, -6.00000000e-01,
+  8.00000000e-01,  1.00000000e-01, -6.00000000e-01,
  -1.00000000e-01, -2.00000000e-01, -5.00000000e-01,
   1.00000000e-01,  7.00000000e-01,  2.00000000e-01,
  -5.00000000e-01, -0.00000000e+00, -2.00000000e-01,
@@ -89,10 +89,10 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_valsResidual[] = {
- -6.45616813e+09,  3.87365044e+10,  2.90517478e+10,
- -6.45616812e+09,  4.84250438e+09,  8.06974781e+09,
-  4.84183188e+09, -3.22794956e+10, -1.12982522e+10,
-  8.06983188e+09, -1.12974956e+10, -2.58242522e+10,
+ -4.51909072e+10,  1.85615044e+10,  1.04907478e+10,
+  2.74390928e+10,  8.07050438e+09,  9.68374781e+09,
+  8.07109281e+09, -2.09814956e+10, -5.64925219e+09,
+  9.68509281e+09, -5.64849563e+09, -1.45262522e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -164,16 +164,16 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsResidual[] = {
-  1.84687210e+12,  5.70862959e+11,  2.80600256e+12,
- -1.31068344e+11, -2.48979010e+11,  1.54805758e+10,
- -7.37392773e+11, -2.72245362e+12, -2.96206199e+11,
-  1.09603429e+12,  6.31435717e+11,  2.06777127e+12,
- -1.66296306e+12, -1.95985880e+12, -4.07664833e+12,
-  1.82196155e+10,  2.99159565e+12, -6.71583673e+11,
- -8.56680206e+12, -7.43943766e+12, -5.67503563e+12,
-  6.00107219e+11,  1.86196321e+12,  7.80134346e+11,
-  1.95088530e+12,  4.62461427e+12,  6.22205519e+11,
-  5.58607418e+12,  1.69029148e+12,  4.42789859e+12,
+  1.37303139e+12,  3.59478514e+11,  2.01772066e+12,
+ -1.31068344e+11, -1.24490591e+11,  7.74704496e+09,
+ -3.68695119e+11, -2.72245362e+12, -1.48103804e+11,
+  5.48007226e+11,  3.15715495e+11,  2.06777127e+12,
+ -1.21553554e+12, -2.00599538e+12, -3.41366551e+12,
+ -1.41823397e+11,  2.78298871e+12, -2.96590241e+11,
+ -6.77814032e+12, -6.14553903e+12, -4.48612861e+12,
+  4.50987749e+11,  1.95705297e+12,  3.90071124e+11,
+  9.75436695e+11,  4.73813145e+12,  2.71900074e+11,
+  5.28776613e+12,  8.45145678e+11,  3.58929700e+12,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsJacobian[] = {

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicit.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicit.py	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicit.py	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file unittests/libtests/feassemble/data/ElasticityImplicit.py
+
+## @brief Python application for generating C++ data files for testing
+## C++ ElasticityImplicit object.
+
+from IntegratorElasticity import IntegratorElasticity
+
+import numpy
+
+# ----------------------------------------------------------------------
+
+# ElasticityImplicit class
+class ElasticityImplicit(IntegratorElasticity):
+  """
+  Python application for generating C++ data files for testing C++
+  ElasticityImplicit object.
+  """
+  
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+  
+  def __init__(self, name="elasticityimplicit"):
+    """
+    Constructor.
+    """
+    IntegratorElasticity.__init__(self, name)
+    return
+  
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _calculateResidual(self):
+    """
+    Calculate contribution to residual of operator for integrator.
+
+    {r} = -[K]{u(t)}
+    """
+    K = self._calculateStiffnessMat()    
+
+    self.valsResidual = -numpy.dot(K, self.fieldT)
+    return
+
+
+  def _calculateJacobian(self):
+    """
+    Calculate contribution to Jacobian matrix of operator for integrator.
+
+    [A] = [K]
+    """
+    K = self._calculateStiffnessMat()    
+
+    self.valsJacobian = K
+    return
+
+
+# MAIN /////////////////////////////////////////////////////////////////
+if __name__ == "__main__":
+
+  app = ElasticityImplicit()
+  app.run()
+
+
+# End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,124 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#include "ElasticityImplicitData1DLinear.hh"
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_spaceDim = 1;
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_cellDim = 1;
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_numVertices = 2;
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_numBasis = 2;
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_numQuadPts = 1;
+
+const char* pylith::feassemble::ElasticityImplicitData1DLinear::_matType = "ElasticStrain1D";
+
+const char* pylith::feassemble::ElasticityImplicitData1DLinear::_matDBFilename = "data/elasticstrain1d.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitData1DLinear::_matLabel = "elastic strain 1-D";
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_vertices[] = {
+ -2.50000000e-01,
+  2.00000000e+00,
+};
+
+const int pylith::feassemble::ElasticityImplicitData1DLinear::_cells[] = {
+0,1,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_quadPts[] = {
+  0.00000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_quadWts[] = {
+  2.00000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_basis[] = {
+  5.00000000e-01,
+  5.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_basisDeriv[] = {
+ -5.00000000e-01,
+  5.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_fieldTpdt[] = {
+  1.20000000e+00,
+  1.70000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_fieldT[] = {
+  1.10000000e+00,
+  1.50000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_fieldTmdt[] = {
+  1.00000000e+00,
+  1.30000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_valsResidual[] = {
+  2.02500000e+10,
+ -2.02500000e+10,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_valsJacobian[] = {
+  5.06250000e+10,
+ -5.06250000e+10,
+ -5.06250000e+10,
+  5.06250000e+10,
+};
+
+pylith::feassemble::ElasticityImplicitData1DLinear::ElasticityImplicitData1DLinear(void)
+{ // constructor
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  matType = const_cast<char*>(_matType);
+  matDBFilename = const_cast<char*>(_matDBFilename);
+  matId = _matId;
+  matLabel = const_cast<char*>(_matLabel);
+  dt = _dt;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDeriv = const_cast<double*>(_basisDeriv);
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitData1DLinear::~ElasticityImplicitData1DLinear(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#if !defined(pylith_feassemble_elasticityimplicitdata1dlinear_hh)
+#define pylith_feassemble_elasticityimplicitdata1dlinear_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitData1DLinear;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitData1DLinear : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitData1DLinear(void);
+
+  /// Destructor
+  ~ElasticityImplicitData1DLinear(void);
+
+private:
+
+  static const int _spaceDim;
+
+  static const int _cellDim;
+
+  static const int _numVertices;
+
+  static const int _numCells;
+
+  static const int _numBasis;
+
+  static const int _numQuadPts;
+
+  static const char* _matType;
+
+  static const char* _matDBFilename;
+
+  static const int _matId;
+
+  static const char* _matLabel;
+
+  static const double _dt;
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDeriv[];
+
+  static const double _fieldTpdt[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitdata1dlinear_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,143 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#include "ElasticityImplicitData1DQuadratic.hh"
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_spaceDim = 1;
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_cellDim = 1;
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_numVertices = 3;
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_numBasis = 3;
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_numQuadPts = 2;
+
+const char* pylith::feassemble::ElasticityImplicitData1DQuadratic::_matType = "ElasticStrain1D";
+
+const char* pylith::feassemble::ElasticityImplicitData1DQuadratic::_matDBFilename = "data/elasticstrain1d.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitData1DQuadratic::_matLabel = "elastic strain 1-D";
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_vertices[] = {
+ -2.50000000e-01,
+  8.75000000e-01,
+  2.00000000e+00,
+};
+
+const int pylith::feassemble::ElasticityImplicitData1DQuadratic::_cells[] = {
+0,1,2,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_quadPts[] = {
+ -5.77350269e-01,
+  5.77350269e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_quadWts[] = {
+  1.00000000e+00,  1.00000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_basis[] = {
+  4.55341801e-01,
+  6.66666667e-01,
+ -1.22008468e-01,
+ -1.22008468e-01,
+  6.66666667e-01,
+  4.55341801e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_basisDeriv[] = {
+ -1.07735027e+00,
+  1.15470054e+00,
+ -7.73502692e-02,
+  7.73502692e-02,
+ -1.15470054e+00,
+  1.07735027e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_fieldTpdt[] = {
+  1.20000000e+00,
+  0.00000000e+00,
+  1.70000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_fieldT[] = {
+  1.10000000e+00,
+  1.00000000e-01,
+  1.50000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_fieldTmdt[] = {
+  1.00000000e+00,
+  1.00000000e-01,
+  1.30000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_valsResidual[] = {
+ -1.41750000e+11,
+  3.24000000e+11,
+ -1.82250000e+11,
+};
+
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_valsJacobian[] = {
+  1.18125000e+11,
+ -1.35000000e+11,
+  1.68750000e+10,
+ -1.35000000e+11,
+  2.70000000e+11,
+ -1.35000000e+11,
+  1.68750000e+10,
+ -1.35000000e+11,
+  1.18125000e+11,
+};
+
+pylith::feassemble::ElasticityImplicitData1DQuadratic::ElasticityImplicitData1DQuadratic(void)
+{ // constructor
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  matType = const_cast<char*>(_matType);
+  matDBFilename = const_cast<char*>(_matDBFilename);
+  matId = _matId;
+  matLabel = const_cast<char*>(_matLabel);
+  dt = _dt;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDeriv = const_cast<double*>(_basisDeriv);
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitData1DQuadratic::~ElasticityImplicitData1DQuadratic(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#if !defined(pylith_feassemble_elasticityimplicitdata1dquadratic_hh)
+#define pylith_feassemble_elasticityimplicitdata1dquadratic_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitData1DQuadratic;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitData1DQuadratic : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitData1DQuadratic(void);
+
+  /// Destructor
+  ~ElasticityImplicitData1DQuadratic(void);
+
+private:
+
+  static const int _spaceDim;
+
+  static const int _cellDim;
+
+  static const int _numVertices;
+
+  static const int _numCells;
+
+  static const int _numBasis;
+
+  static const int _numQuadPts;
+
+  static const char* _matType;
+
+  static const char* _matDBFilename;
+
+  static const int _matId;
+
+  static const char* _matLabel;
+
+  static const double _dt;
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDeriv[];
+
+  static const double _fieldTpdt[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitdata1dquadratic_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,143 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#include "ElasticityImplicitData2DLinear.hh"
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_spaceDim = 2;
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_cellDim = 2;
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_numVertices = 3;
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_numBasis = 3;
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_numQuadPts = 1;
+
+const char* pylith::feassemble::ElasticityImplicitData2DLinear::_matType = "ElasticPlaneStrain";
+
+const char* pylith::feassemble::ElasticityImplicitData2DLinear::_matDBFilename = "data/elasticplanestrain.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitData2DLinear::_matLabel = "elastic strain 2-D";
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_vertices[] = {
+  2.00000000e-01, -4.00000000e-01,
+  3.00000000e-01,  5.00000000e-01,
+ -1.00000000e+00, -2.00000000e-01,
+};
+
+const int pylith::feassemble::ElasticityImplicitData2DLinear::_cells[] = {
+0,1,2,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_quadPts[] = {
+  3.33333333e-01,  3.33333333e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_quadWts[] = {
+  5.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_basis[] = {
+  3.33333333e-01,  3.33333333e-01,
+  3.33333333e-01,};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_basisDeriv[] = {
+ -1.00000000e+00, -1.00000000e+00,
+  1.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.00000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_fieldTpdt[] = {
+  1.90000000e+00, -9.00000000e-01,
+  1.40000000e+00,  1.50000000e+00,
+  5.00000000e-01, -9.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_fieldT[] = {
+  1.60000000e+00, -8.00000000e-01,
+  9.00000000e-01,  7.00000000e-01,
+ -2.00000000e-01, -1.10000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_fieldTmdt[] = {
+  8.00000000e-01,  1.00000000e-01,
+  5.00000000e-01,  3.00000000e-01,
+ -1.00000000e-01, -6.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_valsResidual[] = {
+ -4.20750000e+10, -2.88750000e+10,
+  3.96000000e+10,  2.47500000e+09,
+  2.47500000e+09,  2.64000000e+10,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_valsJacobian[] = {
+  5.77500000e+10,  2.47500000e+10,
+ -4.95000000e+10, -8.25000000e+09,
+ -8.25000000e+09, -1.65000000e+10,
+  2.47500000e+10,  5.77500000e+10,
+ -1.65000000e+10, -8.25000000e+09,
+ -8.25000000e+09, -4.95000000e+10,
+ -4.95000000e+10, -1.65000000e+10,
+  4.95000000e+10,  0.00000000e+00,
+  0.00000000e+00,  1.65000000e+10,
+ -8.25000000e+09, -8.25000000e+09,
+  0.00000000e+00,  8.25000000e+09,
+  8.25000000e+09,  0.00000000e+00,
+ -8.25000000e+09, -8.25000000e+09,
+  0.00000000e+00,  8.25000000e+09,
+  8.25000000e+09,  0.00000000e+00,
+ -1.65000000e+10, -4.95000000e+10,
+  1.65000000e+10,  0.00000000e+00,
+  0.00000000e+00,  4.95000000e+10,
+};
+
+pylith::feassemble::ElasticityImplicitData2DLinear::ElasticityImplicitData2DLinear(void)
+{ // constructor
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  matType = const_cast<char*>(_matType);
+  matDBFilename = const_cast<char*>(_matDBFilename);
+  matId = _matId;
+  matLabel = const_cast<char*>(_matLabel);
+  dt = _dt;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDeriv = const_cast<double*>(_basisDeriv);
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitData2DLinear::~ElasticityImplicitData2DLinear(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#if !defined(pylith_feassemble_elasticityimplicitdata2dlinear_hh)
+#define pylith_feassemble_elasticityimplicitdata2dlinear_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitData2DLinear;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitData2DLinear : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitData2DLinear(void);
+
+  /// Destructor
+  ~ElasticityImplicitData2DLinear(void);
+
+private:
+
+  static const int _spaceDim;
+
+  static const int _cellDim;
+
+  static const int _numVertices;
+
+  static const int _numCells;
+
+  static const int _numBasis;
+
+  static const int _numQuadPts;
+
+  static const char* _matType;
+
+  static const char* _matDBFilename;
+
+  static const int _matId;
+
+  static const char* _matLabel;
+
+  static const double _dt;
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDeriv[];
+
+  static const double _fieldTpdt[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitdata2dlinear_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,237 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#include "ElasticityImplicitData2DQuadratic.hh"
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_spaceDim = 2;
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_cellDim = 2;
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_numVertices = 6;
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_numBasis = 6;
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_numQuadPts = 3;
+
+const char* pylith::feassemble::ElasticityImplicitData2DQuadratic::_matType = "ElasticPlaneStrain";
+
+const char* pylith::feassemble::ElasticityImplicitData2DQuadratic::_matDBFilename = "data/elasticplanestrain.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitData2DQuadratic::_matLabel = "elastic strain 2-D";
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_vertices[] = {
+ -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,
+ -1.25000000e+00, -2.50000000e-01,
+};
+
+const int pylith::feassemble::ElasticityImplicitData2DQuadratic::_cells[] = {
+0,1,2,3,4,5,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_quadPts[] = {
+  6.66666667e-01,  1.66666667e-01,
+  1.66666667e-01,  6.66666667e-01,
+  1.66666667e-01,  1.66666667e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_quadWts[] = {
+  1.66666667e-01,  1.66666667e-01,  1.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,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_basisDeriv[] = {
+  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,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_fieldTpdt[] = {
+ -4.00000000e-01, -6.00000000e-01,
+  7.00000000e-01,  8.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,
+ -5.00000000e-01, -4.00000000e-01,
+  3.00000000e-01,  9.00000000e-01,
+ -3.00000000e-01, -9.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_fieldT[] = {
+ -3.00000000e-01, -4.00000000e-01,
+  5.00000000e-01,  6.00000000e-01,
+  0.00000000e+00,  1.00000000e-01,
+ -2.00000000e-01, -3.00000000e-01,
+  2.00000000e-01,  3.00000000e-01,
+ -1.00000000e-01, -2.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_fieldTmdt[] = {
+ -2.00000000e-01, -3.00000000e-01,
+  3.00000000e-01,  4.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[] = {
+ -2.15074074e+10,  4.58148148e+09,
+ -1.24762963e+11, -3.03740741e+10,
+ -2.17574074e+10, -9.72851852e+10,
+  2.25390741e+11,  3.72085185e+11,
+ -3.39309259e+11, -4.12214815e+11,
+  2.81946296e+11,  1.63207407e+11,
+};
+
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_valsJacobian[] = {
+  2.09351852e+11,  8.97222222e+10,
+  5.18888889e+10,  8.64814815e+09,
+  1.23703704e+10,  2.47407407e+10,
+ -2.31092593e+11, -3.80740741e+10,
+  2.06481481e+10,  3.00000000e+09,
+ -6.31666667e+10, -8.80370370e+10,
+  8.97222222e+10,  2.09351852e+11,
+  1.72962963e+10,  8.64814815e+09,
+  1.23703704e+10,  7.42222222e+10,
+ -7.68703704e+10, -3.71111111e+10,
+  6.72222222e+09,  2.03703704e+09,
+ -4.92407407e+10, -2.57148148e+11,
+  5.18888889e+10,  1.72962963e+10,
+  1.58111111e+11,  0.00000000e+00,
+  0.00000000e+00, -2.29629630e+10,
+ -2.10000000e+11, -6.51481481e+10,
+ -3.15555556e+10,  6.51481481e+10,
+  3.15555556e+10,  5.66666667e+09,
+  8.64814815e+09,  8.64814815e+09,
+  0.00000000e+00,  2.63518519e+10,
+ -1.14814815e+10,  0.00000000e+00,
+ -3.25740741e+10, -3.50000000e+10,
+  3.25740741e+10, -5.25925926e+09,
+  2.83333333e+09,  5.25925926e+09,
+  1.23703704e+10,  1.23703704e+10,
+  0.00000000e+00, -1.14814815e+10,
+  4.12407407e+10,  0.00000000e+00,
+ -5.90740741e+09, -8.88888889e+08,
+  5.90740741e+09,  5.86296296e+10,
+ -5.36111111e+10, -5.86296296e+10,
+  2.47407407e+10,  7.42222222e+10,
+ -2.29629630e+10,  0.00000000e+00,
+  0.00000000e+00,  2.47444444e+11,
+ -1.77777778e+09, -3.54444444e+10,
+  1.17259259e+11,  3.54444444e+10,
+ -1.17259259e+11, -3.21666667e+11,
+ -2.31092593e+11, -7.68703704e+10,
+ -2.10000000e+11, -3.25740741e+10,
+ -5.90740741e+09, -1.77777778e+09,
+  5.12629630e+11,  9.70000000e+10,
+ -6.06296296e+10, -1.09296296e+11,
+ -5.00000000e+09,  1.23518519e+11,
+ -3.80740741e+10, -3.71111111e+10,
+ -6.51481481e+10, -3.50000000e+10,
+ -8.88888889e+08, -3.54444444e+10,
+  9.70000000e+10,  5.01333333e+11,
+ -1.21592593e+11, -4.26000000e+11,
+  1.28703704e+11,  3.22222222e+10,
+  2.06481481e+10,  6.72222222e+09,
+ -3.15555556e+10,  3.25740741e+10,
+  5.90740741e+09,  1.17259259e+11,
+ -6.06296296e+10, -1.21592593e+11,
+  7.22407407e+11,  1.33888889e+11,
+ -6.56777778e+11, -1.68851852e+11,
+  3.00000000e+09,  2.03703704e+09,
+  6.51481481e+10, -5.25925926e+09,
+  5.86296296e+10,  3.54444444e+10,
+ -1.09296296e+11, -4.26000000e+11,
+  1.33888889e+11,  5.36296296e+11,
+ -1.51370370e+11, -1.42518519e+11,
+ -6.31666667e+10, -4.92407407e+10,
+  3.15555556e+10,  2.83333333e+09,
+ -5.36111111e+10, -1.17259259e+11,
+ -5.00000000e+09,  1.28703704e+11,
+ -6.56777778e+11, -1.51370370e+11,
+  7.47000000e+11,  1.86333333e+11,
+ -8.80370370e+10, -2.57148148e+11,
+  5.66666667e+09,  5.25925926e+09,
+ -5.86296296e+10, -3.21666667e+11,
+  1.23518519e+11,  3.22222222e+10,
+ -1.68851852e+11, -1.42518519e+11,
+  1.86333333e+11,  6.83851852e+11,
+};
+
+pylith::feassemble::ElasticityImplicitData2DQuadratic::ElasticityImplicitData2DQuadratic(void)
+{ // constructor
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  matType = const_cast<char*>(_matType);
+  matDBFilename = const_cast<char*>(_matDBFilename);
+  matId = _matId;
+  matLabel = const_cast<char*>(_matLabel);
+  dt = _dt;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDeriv = const_cast<double*>(_basisDeriv);
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitData2DQuadratic::~ElasticityImplicitData2DQuadratic(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#if !defined(pylith_feassemble_elasticityimplicitdata2dquadratic_hh)
+#define pylith_feassemble_elasticityimplicitdata2dquadratic_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitData2DQuadratic;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitData2DQuadratic : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitData2DQuadratic(void);
+
+  /// Destructor
+  ~ElasticityImplicitData2DQuadratic(void);
+
+private:
+
+  static const int _spaceDim;
+
+  static const int _cellDim;
+
+  static const int _numVertices;
+
+  static const int _numCells;
+
+  static const int _numBasis;
+
+  static const int _numQuadPts;
+
+  static const char* _matType;
+
+  static const char* _matDBFilename;
+
+  static const int _matId;
+
+  static const char* _matLabel;
+
+  static const double _dt;
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDeriv[];
+
+  static const double _fieldTpdt[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitdata2dquadratic_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,179 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#include "ElasticityImplicitData3DLinear.hh"
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_spaceDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_cellDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_numVertices = 4;
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_numBasis = 4;
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_numQuadPts = 1;
+
+const char* pylith::feassemble::ElasticityImplicitData3DLinear::_matType = "ElasticIsotropic3D";
+
+const char* pylith::feassemble::ElasticityImplicitData3DLinear::_matDBFilename = "data/elasticisotropic3d.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitData3DLinear::_matLabel = "elastic isotropic 3-D";
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_vertices[] = {
+ -5.00000000e-01, -1.00000000e+00, -5.00000000e-01,
+  2.00000000e+00, -5.00000000e-01, -4.00000000e-01,
+  1.00000000e+00, -1.00000000e-01, -3.00000000e-01,
+ -2.00000000e-01,  5.00000000e-01,  2.00000000e+00,
+};
+
+const int pylith::feassemble::ElasticityImplicitData3DLinear::_cells[] = {
+0,1,2,3,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_quadPts[] = {
+  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_quadWts[] = {
+  1.66666667e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_basis[] = {
+  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+  2.50000000e-01,};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_basisDeriv[] = {
+ -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,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_fieldTpdt[] = {
+  3.00000000e-01,  2.00000000e-01, -5.00000000e-01,
+ -3.00000000e-01, -4.00000000e-01, -6.00000000e-01,
+  2.00000000e-01,  6.00000000e-01,  3.00000000e-01,
+ -6.00000000e-01, -1.00000000e-01, -3.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_fieldT[] = {
+  8.00000000e-01,  1.00000000e-01, -6.00000000e-01,
+ -1.00000000e-01, -2.00000000e-01, -5.00000000e-01,
+  1.00000000e-01,  7.00000000e-01,  2.00000000e-01,
+ -5.00000000e-01, -0.00000000e+00, -2.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_fieldTmdt[] = {
+  1.00000000e-01,  1.00000000e-01, -3.00000000e-01,
+ -2.00000000e-01, -1.00000000e-01, -5.00000000e-01,
+  2.00000000e-01,  4.00000000e-01,  1.00000000e-01,
+ -4.00000000e-01, -1.00000000e-01, -1.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_valsResidual[] = {
+ -4.51920000e+10,  1.85610000e+10,  1.04910000e+10,
+  2.74380000e+10,  8.07000000e+09,  9.68400000e+09,
+  8.07000000e+09, -2.09820000e+10, -5.64900000e+09,
+  9.68400000e+09, -5.64900000e+09, -1.45260000e+10,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_valsJacobian[] = {
+  6.45600000e+10,  2.42100000e+10,  2.42100000e+10,
+ -4.84200000e+10, -8.07000000e+09, -8.07000000e+09,
+ -8.07000000e+09, -1.61400000e+10,  0.00000000e+00,
+ -8.07000000e+09,  0.00000000e+00, -1.61400000e+10,
+  2.42100000e+10,  6.45600000e+10,  2.42100000e+10,
+ -1.61400000e+10, -8.07000000e+09,  0.00000000e+00,
+ -8.07000000e+09, -4.84200000e+10, -8.07000000e+09,
+  0.00000000e+00, -8.07000000e+09, -1.61400000e+10,
+  2.42100000e+10,  2.42100000e+10,  6.45600000e+10,
+ -1.61400000e+10,  0.00000000e+00, -8.07000000e+09,
+  0.00000000e+00, -1.61400000e+10, -8.07000000e+09,
+ -8.07000000e+09, -8.07000000e+09, -4.84200000e+10,
+ -4.84200000e+10, -1.61400000e+10, -1.61400000e+10,
+  4.84200000e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.61400000e+10,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.61400000e+10,
+ -8.07000000e+09, -8.07000000e+09,  0.00000000e+00,
+  0.00000000e+00,  8.07000000e+09,  0.00000000e+00,
+  8.07000000e+09,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+ -8.07000000e+09,  0.00000000e+00, -8.07000000e+09,
+  0.00000000e+00,  0.00000000e+00,  8.07000000e+09,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  8.07000000e+09,  0.00000000e+00,  0.00000000e+00,
+ -8.07000000e+09, -8.07000000e+09,  0.00000000e+00,
+  0.00000000e+00,  8.07000000e+09,  0.00000000e+00,
+  8.07000000e+09,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+ -1.61400000e+10, -4.84200000e+10, -1.61400000e+10,
+  1.61400000e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  4.84200000e+10,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.61400000e+10,
+  0.00000000e+00, -8.07000000e+09, -8.07000000e+09,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  8.07000000e+09,
+  0.00000000e+00,  8.07000000e+09,  0.00000000e+00,
+ -8.07000000e+09,  0.00000000e+00, -8.07000000e+09,
+  0.00000000e+00,  0.00000000e+00,  8.07000000e+09,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  8.07000000e+09,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -8.07000000e+09, -8.07000000e+09,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  8.07000000e+09,
+  0.00000000e+00,  8.07000000e+09,  0.00000000e+00,
+ -1.61400000e+10, -1.61400000e+10, -4.84200000e+10,
+  1.61400000e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.61400000e+10,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  4.84200000e+10,
+};
+
+pylith::feassemble::ElasticityImplicitData3DLinear::ElasticityImplicitData3DLinear(void)
+{ // constructor
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  matType = const_cast<char*>(_matType);
+  matDBFilename = const_cast<char*>(_matDBFilename);
+  matId = _matId;
+  matLabel = const_cast<char*>(_matLabel);
+  dt = _dt;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDeriv = const_cast<double*>(_basisDeriv);
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitData3DLinear::~ElasticityImplicitData3DLinear(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#if !defined(pylith_feassemble_elasticityimplicitdata3dlinear_hh)
+#define pylith_feassemble_elasticityimplicitdata3dlinear_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitData3DLinear;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitData3DLinear : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitData3DLinear(void);
+
+  /// Destructor
+  ~ElasticityImplicitData3DLinear(void);
+
+private:
+
+  static const int _spaceDim;
+
+  static const int _cellDim;
+
+  static const int _numVertices;
+
+  static const int _numCells;
+
+  static const int _numBasis;
+
+  static const int _numQuadPts;
+
+  static const char* _matType;
+
+  static const char* _matDBFilename;
+
+  static const int _matId;
+
+  static const char* _matLabel;
+
+  static const double _dt;
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDeriv[];
+
+  static const double _fieldTpdt[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitdata3dlinear_hh
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,512 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#include "ElasticityImplicitData3DQuadratic.hh"
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_spaceDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_cellDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_numVertices = 10;
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_numBasis = 10;
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_numQuadPts = 4;
+
+const char* pylith::feassemble::ElasticityImplicitData3DQuadratic::_matType = "ElasticIsotropic3D";
+
+const char* pylith::feassemble::ElasticityImplicitData3DQuadratic::_matDBFilename = "data/elasticisotropic3d.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitData3DQuadratic::_matLabel = "elastic isotropic 3-D";
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_vertices[] = {
+ -5.00000000e-01, -2.00000000e+00, -1.00000000e+00,
+  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,
+};
+
+const int pylith::feassemble::ElasticityImplicitData3DQuadratic::_cells[] = {
+0,1,2,3,4,5,6,7,8,9,
+};
+
+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,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_quadWts[] = {
+  1.25000000e-01,  1.25000000e-01,  1.25000000e-01,  1.25000000e-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,};
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_basisDeriv[] = {
+ -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,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_fieldTpdt[] = {
+  3.00000000e-01, -4.00000000e-01, -4.00000000e-01,
+ -6.00000000e-01,  8.00000000e-01,  2.00000000e-01,
+  5.00000000e-01,  5.00000000e-01,  7.00000000e-01,
+ -7.00000000e-01, -5.00000000e-01, -7.00000000e-01,
+ -6.00000000e-01, -3.00000000e-01,  8.00000000e-01,
+ -4.00000000e-01, -8.00000000e-01, -5.00000000e-01,
+  7.00000000e-01,  8.00000000e-01, -5.00000000e-01,
+ -5.00000000e-01, -5.00000000e-01, -7.00000000e-01,
+ -3.00000000e-01, -9.00000000e-01,  8.00000000e-01,
+ -1.00000000e-01,  5.00000000e-01, -9.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_fieldT[] = {
+  1.00000000e-01, -2.00000000e-01, -6.00000000e-01,
+ -3.00000000e-01,  4.00000000e-01,  9.00000000e-01,
+  6.00000000e-01,  8.00000000e-01,  5.00000000e-01,
+ -8.00000000e-01, -6.00000000e-01, -8.00000000e-01,
+ -0.00000000e+00, -2.00000000e-01,  6.00000000e-01,
+ -4.00000000e-01, -7.00000000e-01, -2.00000000e-01,
+  7.00000000e-01,  6.00000000e-01, -1.00000000e-01,
+ -4.00000000e-01, -3.00000000e-01, -3.00000000e-01,
+ -7.00000000e-01, -6.00000000e-01,  1.00000000e-01,
+ -9.00000000e-01,  3.00000000e-01, -8.00000000e-01,
+};
+
+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,
+ -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,
+ -5.00000000e-01, -8.00000000e-01,  4.00000000e-01,
+ -4.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_valsResidual[] = {
+  1.37302827e+12,  3.59474617e+11,  2.01771825e+12,
+ -1.31076938e+11, -1.24488420e+11,  7.73353086e+09,
+ -3.68697654e+11, -2.72246232e+12, -1.48102395e+11,
+  5.48027062e+11,  3.15720222e+11,  2.06778262e+12,
+ -1.21553814e+12, -2.00599957e+12, -3.41367532e+12,
+ -1.41822963e+11,  2.78297909e+12, -2.96592593e+11,
+ -6.77812870e+12, -6.14554194e+12, -4.48612599e+12,
+  4.50985444e+11,  1.95704638e+12,  3.90063222e+11,
+  9.75448605e+11,  4.73812614e+12,  2.71904605e+11,
+  5.28777501e+12,  8.45145802e+11,  3.58929407e+12,
+};
+
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_valsJacobian[] = {
+  1.41147259e+12,  5.29302222e+11,  5.29302222e+11,
+  3.09597037e+11,  5.15995062e+10,  5.15995062e+10,
+  5.22760494e+10,  1.04552099e+11,  0.00000000e+00,
+  7.25585185e+10,  0.00000000e+00,  1.45117037e+11,
+ -1.46768938e+12, -3.27521481e+11, -3.27521481e+11,
+ -5.81653580e+11, -5.07840741e+11, -1.51261481e+11,
+ -7.43913333e+11, -2.12108889e+11, -5.68688148e+11,
+  3.52266914e+11,  1.49908395e+11,  5.04204938e+10,
+  1.21123457e+11,  1.41405926e+11,  1.00840988e+11,
+  4.73961728e+11,  7.07029630e+10,  1.70190864e+11,
+  5.29302222e+11,  1.41147259e+12,  5.29302222e+11,
+  1.03199012e+11,  5.15995062e+10,  0.00000000e+00,
+  5.22760494e+10,  3.13656296e+11,  5.22760494e+10,
+  0.00000000e+00,  7.25585185e+10,  1.45117037e+11,
+ -5.05811111e+11, -5.76241235e+11, -1.49231852e+11,
+ -3.29551111e+11, -1.47310173e+12, -3.29551111e+11,
+ -2.12108889e+11, -7.43913333e+11, -5.68688148e+11,
+  1.50584938e+11,  3.48884198e+11,  4.97439506e+10,
+  7.07029630e+10,  4.74638272e+11,  1.71543951e+11,
+  1.41405926e+11,  1.20446914e+11,  9.94879012e+10,
+  5.29302222e+11,  5.29302222e+11,  1.41147259e+12,
+  1.03199012e+11,  0.00000000e+00,  5.15995062e+10,
+  0.00000000e+00,  1.04552099e+11,  5.22760494e+10,
+  7.25585185e+10,  7.25585185e+10,  4.35351111e+11,
+ -5.05811111e+11, -1.49231852e+11, -5.76241235e+11,
+ -1.51261481e+11, -5.07840741e+11, -5.81653580e+11,
+ -3.90398519e+11, -3.90398519e+11, -1.63536148e+12,
+  1.00840988e+11,  9.94879012e+10,  1.00164444e+11,
+  5.04204938e+10,  1.91826420e+11,  3.73225926e+11,
+  1.91149877e+11,  4.97439506e+10,  3.69166667e+11,
+  3.09597037e+11,  1.03199012e+11,  1.03199012e+11,
+  9.52269630e+11,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -8.68296296e+10,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -1.27394568e+11,
+ -1.26186667e+12, -2.94550617e+11, -2.94550617e+11,
+  3.29106667e+11, -1.63693827e+10,  1.09702222e+11,
+  4.50801481e+11,  1.50267160e+11,  2.41955556e+10,
+ -3.29106667e+11,  2.94550617e+11,  0.00000000e+00,
+  0.00000000e+00, -1.50267160e+11, -1.09702222e+11,
+ -4.50801481e+11,  0.00000000e+00,  2.94550617e+11,
+  5.15995062e+10,  5.15995062e+10,  0.00000000e+00,
+  0.00000000e+00,  1.58711605e+11,  0.00000000e+00,
+ -4.34148148e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+ -1.47275309e+11, -2.10311111e+11,  0.00000000e+00,
+ -8.18469136e+09,  5.48511111e+10,  0.00000000e+00,
+  7.51335802e+10,  7.51335802e+10,  0.00000000e+00,
+  1.47275309e+11, -5.48511111e+10,  0.00000000e+00,
+ -7.51335802e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -7.51335802e+10,  0.00000000e+00,
+  5.15995062e+10,  0.00000000e+00,  5.15995062e+10,
+  0.00000000e+00,  0.00000000e+00,  1.58711605e+11,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+ -6.36972840e+10,  0.00000000e+00,  0.00000000e+00,
+ -1.47275309e+11,  0.00000000e+00, -2.10311111e+11,
+  5.48511111e+10,  0.00000000e+00,  5.48511111e+10,
+  1.20977778e+10,  0.00000000e+00,  7.51335802e+10,
+  0.00000000e+00,  0.00000000e+00, -5.48511111e+10,
+ -5.48511111e+10,  0.00000000e+00,  0.00000000e+00,
+  1.47275309e+11,  0.00000000e+00, -7.51335802e+10,
+  5.22760494e+10,  5.22760494e+10,  0.00000000e+00,
+  0.00000000e+00, -4.34148148e+10,  0.00000000e+00,
+  1.60064691e+11,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  5.38362963e+10, -8.86123457e+09,  0.00000000e+00,
+ -2.12340741e+11, -1.49643210e+11,  0.00000000e+00,
+  7.47953086e+10,  7.47953086e+10,  0.00000000e+00,
+ -5.38362963e+10,  1.49643210e+11,  0.00000000e+00,
+ -7.47953086e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -7.47953086e+10,  0.00000000e+00,
+  1.04552099e+11,  3.13656296e+11,  1.04552099e+11,
+ -8.68296296e+10,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  9.60388148e+11,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -1.28747654e+11,
+ -1.77224691e+10,  3.23017778e+11,  1.07672593e+11,
+ -2.99286420e+11, -1.27404444e+12, -2.99286420e+11,
+  1.49590617e+11,  4.48771852e+11,  2.41955556e+10,
+  2.99286420e+11, -3.23017778e+11,  0.00000000e+00,
+  0.00000000e+00, -4.48771852e+11,  2.99286420e+11,
+ -1.49590617e+11,  0.00000000e+00, -1.07672593e+11,
+  0.00000000e+00,  5.22760494e+10,  5.22760494e+10,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.60064691e+11,
+  0.00000000e+00, -6.43738272e+10,  0.00000000e+00,
+  0.00000000e+00,  5.38362963e+10,  5.38362963e+10,
+  0.00000000e+00, -1.49643210e+11, -2.12340741e+11,
+  0.00000000e+00,  1.20977778e+10,  7.47953086e+10,
+  0.00000000e+00,  0.00000000e+00, -5.38362963e+10,
+  0.00000000e+00,  1.49643210e+11, -7.47953086e+10,
+  0.00000000e+00, -5.38362963e+10,  0.00000000e+00,
+  7.25585185e+10,  0.00000000e+00,  7.25585185e+10,
+  0.00000000e+00,  0.00000000e+00, -6.36972840e+10,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  2.00629630e+11,  0.00000000e+00,  0.00000000e+00,
+  4.36950617e+10,  0.00000000e+00, -8.86123457e+09,
+  4.43716049e+10,  0.00000000e+00,  4.43716049e+10,
+ -2.73188148e+11,  0.00000000e+00, -2.20631852e+11,
+  0.00000000e+00,  0.00000000e+00, -4.43716049e+10,
+ -4.43716049e+10,  0.00000000e+00,  0.00000000e+00,
+ -4.36950617e+10,  0.00000000e+00,  2.20631852e+11,
+  0.00000000e+00,  7.25585185e+10,  7.25585185e+10,
+  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -6.43738272e+10,
+  0.00000000e+00,  2.00629630e+11,  0.00000000e+00,
+  0.00000000e+00,  4.36950617e+10,  4.36950617e+10,
+  0.00000000e+00,  4.43716049e+10, -8.18469136e+09,
+  0.00000000e+00, -2.73188148e+11, -2.20631852e+11,
+  0.00000000e+00,  0.00000000e+00, -4.36950617e+10,
+  0.00000000e+00, -4.43716049e+10,  2.20631852e+11,
+  0.00000000e+00, -4.36950617e+10,  0.00000000e+00,
+  1.45117037e+11,  1.45117037e+11,  4.35351111e+11,
+ -1.27394568e+11,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -1.28747654e+11,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.20377778e+12,
+ -1.77224691e+10,  8.73901235e+10,  2.62170370e+11,
+  8.87432099e+10, -1.63693827e+10,  2.66229630e+11,
+ -4.41263704e+11, -4.41263704e+11, -1.63912889e+12,
+ -8.87432099e+10, -8.73901235e+10,  0.00000000e+00,
+  0.00000000e+00,  4.41263704e+11, -2.66229630e+11,
+  4.41263704e+11,  0.00000000e+00, -2.62170370e+11,
+ -1.46768938e+12, -5.05811111e+11, -5.05811111e+11,
+ -1.26186667e+12, -1.47275309e+11, -1.47275309e+11,
+  5.38362963e+10, -1.77224691e+10,  0.00000000e+00,
+  4.36950617e+10,  0.00000000e+00, -1.77224691e+10,
+  3.16268617e+12,  5.91057778e+11,  5.91057778e+11,
+  3.45213580e+10,  5.38987037e+11,  5.63361728e+10,
+  5.48038272e+10,  6.64774074e+10,  5.49128272e+11,
+ -2.39725309e+11, -4.59235926e+11, -6.51974074e+10,
+ -1.40536049e+11,  8.86123457e+09,  8.86123457e+09,
+ -2.39725309e+11, -7.53386420e+10, -4.69377160e+11,
+ -3.27521481e+11, -5.76241235e+11, -1.49231852e+11,
+ -2.94550617e+11, -2.10311111e+11,  0.00000000e+00,
+ -8.86123457e+09,  3.23017778e+11,  5.38362963e+10,
+  0.00000000e+00,  4.36950617e+10,  8.73901235e+10,
+  5.91057778e+11,  2.30250778e+12,  7.98927037e+11,
+  3.67289630e+11,  3.62127160e+10,  1.26302469e+11,
+  1.46246667e+11,  4.53650123e+11,  8.74364198e+10,
+ -3.27414074e+11, -1.59342346e+12, -2.66309012e+11,
+  4.43061728e+09, -5.17229259e+11, -2.05733457e+11,
+ -1.50677284e+11, -2.61878395e+11, -5.32618025e+11,
+ -3.27521481e+11, -1.49231852e+11, -5.76241235e+11,
+ -2.94550617e+11,  0.00000000e+00, -2.10311111e+11,
+  0.00000000e+00,  1.07672593e+11,  5.38362963e+10,
+ -8.86123457e+09,  4.36950617e+10,  2.62170370e+11,
+  5.91057778e+11,  7.98927037e+11,  2.30250778e+12,
+  1.25964198e+11,  5.70127160e+10,  3.82661481e+11,
+  3.87572099e+11,  1.56726173e+11,  1.07201358e+11,
+ -1.30394815e+11, -5.32618025e+11, -2.61878395e+11,
+  4.43061728e+09, -2.15874691e+11, -4.66523086e+11,
+ -3.47696543e+11, -2.66309012e+11, -1.59342346e+12,
+ -5.81653580e+11, -3.29551111e+11, -1.51261481e+11,
+  3.29106667e+11, -8.18469136e+09,  5.48511111e+10,
+ -2.12340741e+11, -2.99286420e+11,  0.00000000e+00,
+  4.43716049e+10,  0.00000000e+00,  8.87432099e+10,
+  3.45213580e+10,  3.67289630e+11,  1.25964198e+11,
+  2.32889296e+12,  6.00191111e+11,  8.09075185e+11,
+  4.56018025e+11,  1.47261481e+11,  8.77746914e+10,
+ -1.61405802e+12, -3.30458519e+11, -2.69691728e+11,
+ -2.65599383e+11, -1.51353827e+11, -5.39383457e+11,
+ -5.19258889e+11,  4.09234568e+09, -2.06071728e+11,
+ -5.07840741e+11, -1.47310173e+12, -5.07840741e+11,
+ -1.63693827e+10,  5.48511111e+10,  0.00000000e+00,
+ -1.49643210e+11, -1.27404444e+12, -1.49643210e+11,
+  0.00000000e+00,  4.43716049e+10, -1.63693827e+10,
+  5.38987037e+11,  3.62127160e+10,  5.70127160e+10,
+  6.00191111e+11,  3.18568864e+12,  6.00191111e+11,
+  6.74922222e+10,  5.71717284e+10,  5.49466543e+11,
+ -4.65324815e+11, -2.45137654e+11, -6.51974074e+10,
+ -7.56769136e+10, -2.45137654e+11, -4.75804321e+11,
+  8.18469136e+09, -1.40874321e+11,  8.18469136e+09,
+ -1.51261481e+11, -3.29551111e+11, -5.81653580e+11,
+  1.09702222e+11,  0.00000000e+00,  5.48511111e+10,
+  0.00000000e+00, -2.99286420e+11, -2.12340741e+11,
+  4.43716049e+10, -8.18469136e+09,  2.66229630e+11,
+  5.63361728e+10,  1.26302469e+11,  3.82661481e+11,
+  8.09075185e+11,  6.00191111e+11,  2.32889296e+12,
+  1.57402716e+11,  3.88248642e+11,  1.07877901e+11,
+ -5.39383457e+11, -1.30394815e+11, -2.65599383e+11,
+ -2.69691728e+11, -3.51417531e+11, -1.61405802e+12,
+ -2.16551235e+11,  4.09234568e+09, -4.66861358e+11,
+ -7.43913333e+11, -2.12108889e+11, -3.90398519e+11,
+  4.50801481e+11,  7.51335802e+10,  1.20977778e+10,
+  7.47953086e+10,  1.49590617e+11,  0.00000000e+00,
+ -2.73188148e+11,  0.00000000e+00, -4.41263704e+11,
+  5.48038272e+10,  1.46246667e+11,  3.87572099e+11,
+  4.56018025e+11,  6.74922222e+10,  1.57402716e+11,
+  3.11990926e+12,  1.11331222e+12,  8.74004444e+11,
+ -5.29400123e+11, -2.26354198e+11, -6.04888889e+09,
+ -3.77152963e+11, -7.42208148e+11, -1.51353827e+11,
+ -2.23267333e+12, -3.71104074e+11, -4.42012099e+11,
+ -2.12108889e+11, -7.43913333e+11, -3.90398519e+11,
+  1.50267160e+11,  7.51335802e+10,  0.00000000e+00,
+  7.47953086e+10,  4.48771852e+11,  1.20977778e+10,
+  0.00000000e+00, -2.73188148e+11, -4.41263704e+11,
+  6.64774074e+10,  4.53650123e+11,  1.56726173e+11,
+  1.47261481e+11,  5.71717284e+10,  3.88248642e+11,
+  1.11331222e+12,  3.11990926e+12,  8.74004444e+11,
+ -2.26692469e+11, -5.27708765e+11, -6.04888889e+09,
+ -3.71104074e+11, -2.23267333e+12, -4.42688642e+11,
+ -7.42208148e+11, -3.77152963e+11, -1.50677284e+11,
+ -5.68688148e+11, -5.68688148e+11, -1.63536148e+12,
+  2.41955556e+10,  0.00000000e+00,  7.51335802e+10,
+  0.00000000e+00,  2.41955556e+10,  7.47953086e+10,
+ -2.20631852e+11, -2.20631852e+11, -1.63912889e+12,
+  5.49128272e+11,  8.74364198e+10,  1.07201358e+11,
+  8.77746914e+10,  5.49466543e+11,  1.07877901e+11,
+  8.74004444e+11,  8.74004444e+11,  3.87529259e+12,
+ -1.20977778e+10, -1.20977778e+10, -1.51015556e+11,
+ -7.56769136e+10, -6.58346543e+11, -4.07397407e+11,
+ -6.58008272e+11, -7.53386420e+10, -4.07397407e+11,
+  3.52266914e+11,  1.50584938e+11,  1.00840988e+11,
+ -3.29106667e+11,  1.47275309e+11,  0.00000000e+00,
+ -5.38362963e+10,  2.99286420e+11,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -8.87432099e+10,
+ -2.39725309e+11, -3.27414074e+11, -1.30394815e+11,
+ -1.61405802e+12, -4.65324815e+11, -5.39383457e+11,
+ -5.29400123e+11, -2.26692469e+11, -1.20977778e+10,
+  1.88445938e+12,  1.95592222e+11,  0.00000000e+00,
+  7.53386420e+10,  1.51353827e+11,  5.39383457e+11,
+  4.54061481e+11,  7.53386420e+10,  1.30394815e+11,
+  1.49908395e+11,  3.48884198e+11,  9.94879012e+10,
+  2.94550617e+11, -5.48511111e+10,  0.00000000e+00,
+  1.49643210e+11, -3.23017778e+11,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -8.73901235e+10,
+ -4.59235926e+11, -1.59342346e+12, -5.32618025e+11,
+ -3.30458519e+11, -2.45137654e+11, -1.30394815e+11,
+ -2.26354198e+11, -5.27708765e+11, -1.20977778e+10,
+  1.95592222e+11,  1.86754580e+12,  0.00000000e+00,
+  7.56769136e+10,  4.52031852e+11,  1.30394815e+11,
+  1.50677284e+11,  7.56769136e+10,  5.32618025e+11,
+  5.04204938e+10,  4.97439506e+10,  1.00164444e+11,
+  0.00000000e+00,  0.00000000e+00, -5.48511111e+10,
+  0.00000000e+00,  0.00000000e+00, -5.38362963e+10,
+ -4.43716049e+10, -4.36950617e+10,  0.00000000e+00,
+ -6.51974074e+10, -2.66309012e+11, -2.61878395e+11,
+ -2.69691728e+11, -6.51974074e+10, -2.65599383e+11,
+ -6.04888889e+09, -6.04888889e+09, -1.51015556e+11,
+  0.00000000e+00,  0.00000000e+00,  5.36000741e+11,
+  2.69691728e+11,  6.51974074e+10,  7.53386420e+10,
+  6.51974074e+10,  2.66309012e+11,  7.56769136e+10,
+  1.21123457e+11,  7.07029630e+10,  5.04204938e+10,
+  0.00000000e+00, -7.51335802e+10, -5.48511111e+10,
+ -7.47953086e+10,  0.00000000e+00,  0.00000000e+00,
+ -4.43716049e+10,  0.00000000e+00,  0.00000000e+00,
+ -1.40536049e+11,  4.43061728e+09,  4.43061728e+09,
+ -2.65599383e+11, -7.56769136e+10, -2.69691728e+11,
+ -3.77152963e+11, -3.71104074e+11, -7.56769136e+10,
+  7.53386420e+10,  7.56769136e+10,  2.69691728e+11,
+  6.40795802e+11,  0.00000000e+00,  0.00000000e+00,
+  6.51974074e+10,  3.71104074e+11,  7.56769136e+10,
+  1.41405926e+11,  4.74638272e+11,  1.91826420e+11,
+ -1.50267160e+11,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -4.48771852e+11,  1.49643210e+11,
+  0.00000000e+00, -4.43716049e+10,  4.41263704e+11,
+  8.86123457e+09, -5.17229259e+11, -2.15874691e+11,
+ -1.51353827e+11, -2.45137654e+11, -3.51417531e+11,
+ -7.42208148e+11, -2.23267333e+12, -6.58346543e+11,
+  1.51353827e+11,  4.52031852e+11,  6.51974074e+10,
+  0.00000000e+00,  2.49631617e+12,  2.27030741e+11,
+  7.42208148e+11,  6.51974074e+10,  1.50677284e+11,
+  1.00840988e+11,  1.71543951e+11,  3.73225926e+11,
+ -1.09702222e+11,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  2.99286420e+11, -7.47953086e+10,
+  0.00000000e+00,  2.20631852e+11, -2.66229630e+11,
+  8.86123457e+09, -2.05733457e+11, -4.66523086e+11,
+ -5.39383457e+11, -4.75804321e+11, -1.61405802e+12,
+ -1.51353827e+11, -4.42688642e+11, -4.07397407e+11,
+  5.39383457e+11,  1.30394815e+11,  7.53386420e+10,
+  0.00000000e+00,  2.27030741e+11,  1.98925444e+12,
+  1.51353827e+11,  7.53386420e+10,  3.91184444e+11,
+  4.73961728e+11,  1.41405926e+11,  1.91149877e+11,
+ -4.50801481e+11,  0.00000000e+00,  1.47275309e+11,
+  0.00000000e+00, -1.49590617e+11,  0.00000000e+00,
+ -4.36950617e+10,  0.00000000e+00,  4.41263704e+11,
+ -2.39725309e+11, -1.50677284e+11, -3.47696543e+11,
+ -5.19258889e+11,  8.18469136e+09, -2.16551235e+11,
+ -2.23267333e+12, -7.42208148e+11, -6.58008272e+11,
+  4.54061481e+11,  1.50677284e+11,  6.51974074e+10,
+  6.51974074e+10,  7.42208148e+11,  1.51353827e+11,
+  2.49293346e+12,  0.00000000e+00,  2.26015926e+11,
+  7.07029630e+10,  1.20446914e+11,  4.97439506e+10,
+  0.00000000e+00, -7.51335802e+10,  0.00000000e+00,
+ -7.47953086e+10,  0.00000000e+00, -5.38362963e+10,
+  0.00000000e+00, -4.36950617e+10,  0.00000000e+00,
+ -7.53386420e+10, -2.61878395e+11, -2.66309012e+11,
+  4.09234568e+09, -1.40874321e+11,  4.09234568e+09,
+ -3.71104074e+11, -3.77152963e+11, -7.53386420e+10,
+  7.53386420e+10,  7.56769136e+10,  2.66309012e+11,
+  3.71104074e+11,  6.51974074e+10,  7.53386420e+10,
+  0.00000000e+00,  6.37413086e+11,  0.00000000e+00,
+  1.70190864e+11,  9.94879012e+10,  3.69166667e+11,
+  2.94550617e+11,  0.00000000e+00, -7.51335802e+10,
+  0.00000000e+00, -1.07672593e+11,  0.00000000e+00,
+  2.20631852e+11,  0.00000000e+00, -2.62170370e+11,
+ -4.69377160e+11, -5.32618025e+11, -1.59342346e+12,
+ -2.06071728e+11,  8.18469136e+09, -4.66861358e+11,
+ -4.42012099e+11, -1.50677284e+11, -4.07397407e+11,
+  1.30394815e+11,  5.32618025e+11,  7.56769136e+10,
+  7.56769136e+10,  1.50677284e+11,  3.91184444e+11,
+  2.26015926e+11,  0.00000000e+00,  1.96895815e+12,
+};
+
+pylith::feassemble::ElasticityImplicitData3DQuadratic::ElasticityImplicitData3DQuadratic(void)
+{ // constructor
+  spaceDim = _spaceDim;
+  cellDim = _cellDim;
+  numVertices = _numVertices;
+  numCells = _numCells;
+  numBasis = _numBasis;
+  numQuadPts = _numQuadPts;
+  matType = const_cast<char*>(_matType);
+  matDBFilename = const_cast<char*>(_matDBFilename);
+  matId = _matId;
+  matLabel = const_cast<char*>(_matLabel);
+  dt = _dt;
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDeriv = const_cast<double*>(_basisDeriv);
+  fieldTpdt = const_cast<double*>(_fieldTpdt);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitData3DQuadratic::~ElasticityImplicitData3DQuadratic(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application elasticityimplicit.
+
+#if !defined(pylith_feassemble_elasticityimplicitdata3dquadratic_hh)
+#define pylith_feassemble_elasticityimplicitdata3dquadratic_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitData3DQuadratic;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitData3DQuadratic : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitData3DQuadratic(void);
+
+  /// Destructor
+  ~ElasticityImplicitData3DQuadratic(void);
+
+private:
+
+  static const int _spaceDim;
+
+  static const int _cellDim;
+
+  static const int _numVertices;
+
+  static const int _numCells;
+
+  static const int _numBasis;
+
+  static const int _numQuadPts;
+
+  static const char* _matType;
+
+  static const char* _matDBFilename;
+
+  static const int _matId;
+
+  static const char* _matLabel;
+
+  static const double _dt;
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDeriv[];
+
+  static const double _fieldTpdt[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitdata3dquadratic_hh
+
+// End of file

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorElasticity.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorElasticity.py	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorElasticity.py	2007-06-01 00:34:41 UTC (rev 7025)
@@ -115,34 +115,34 @@
       C1112 = 0.0
       C2222 = lambda2mu
       C2212 = 0.0
-      C1212 = self.lameMu # B uses engineering strain, so mu instead of 2*mu
+      C1212 = 2.0*self.lameMu
       D = numpy.array([ [C1111, C1122, C1112],
                         [C1122, C2222, C2212],
                         [C1112, C2212, C1212] ],
                       dtype=numpy.float64)
     elif 3 == self.cellDim:
-      lambda2mu = self.lameLambda + 2*self.lameMu
+      lambda2mu = self.lameLambda + 2.0*self.lameMu
       C1111 = lambda2mu
-      C2222 = lambda2mu
-      C3333 = lambda2mu
       C1122 = self.lameLambda
       C1133 = self.lameLambda
-      C2233 = self.lameLambda
-      C1212 = self.lameMu # B uses engineering strain, so mu instead of 2*mu
-      C2323 = self.lameMu
-      C1313 = self.lameMu
       C1112 = 0.0
       C1123 = 0.0
       C1113 = 0.0
+      C2222 = lambda2mu
+      C2233 = self.lameLambda
       C2212 = 0.0
       C2223 = 0.0
       C2213 = 0.0
+      C3333 = lambda2mu
       C3312 = 0.0
       C3323 = 0.0
       C3313 = 0.0
+      C1212 = 2.0*self.lameMu
       C1223 = 0.0
       C1213 = 0.0
+      C2323 = 2.0*self.lameMu
       C2313 = 0.0
+      C1313 = 2.0*self.lameMu
       D = numpy.array([ [C1111, C1122, C1133, C1112, C1123, C1113],
                         [C1122, C2222, C2233, C2212, C2223, C2213],
                         [C1133, C2233, C3333, C3312, C3323, C3313],
@@ -176,20 +176,20 @@
         B[0, iBasis*self.spaceDim+0] = self.basisDeriv[iQuad, iBasis, 0]
         B[1, iBasis*self.spaceDim+1] = self.basisDeriv[iQuad, iBasis, 1]
         B[2, iBasis*self.spaceDim+2] = self.basisDeriv[iQuad, iBasis, 2]
-        B[3, iBasis*self.spaceDim+0] = self.basisDeriv[iQuad, iBasis, 1]
-        B[3, iBasis*self.spaceDim+1] = self.basisDeriv[iQuad, iBasis, 0]
-        B[4, iBasis*self.spaceDim+1] = self.basisDeriv[iQuad, iBasis, 2]
-        B[4, iBasis*self.spaceDim+2] = self.basisDeriv[iQuad, iBasis, 1]
-        B[5, iBasis*self.spaceDim+0] = self.basisDeriv[iQuad, iBasis, 2]
-        B[5, iBasis*self.spaceDim+2] = self.basisDeriv[iQuad, iBasis, 0]
+        B[3, iBasis*self.spaceDim+0] = 0.5*self.basisDeriv[iQuad, iBasis, 1]
+        B[3, iBasis*self.spaceDim+1] = 0.5*self.basisDeriv[iQuad, iBasis, 0]
+        B[4, iBasis*self.spaceDim+1] = 0.5*self.basisDeriv[iQuad, iBasis, 2]
+        B[4, iBasis*self.spaceDim+2] = 0.5*self.basisDeriv[iQuad, iBasis, 1]
+        B[5, iBasis*self.spaceDim+0] = 0.5*self.basisDeriv[iQuad, iBasis, 2]
+        B[5, iBasis*self.spaceDim+2] = 0.5*self.basisDeriv[iQuad, iBasis, 0]
     elif 2 == self.spaceDim:
       B = numpy.zeros( (3, self.spaceDim*self.numBasis),
                        dtype=numpy.float64)
       for iBasis in xrange(self.numBasis):
         B[0, iBasis*self.spaceDim+0] = self.basisDeriv[iQuad, iBasis, 0]
         B[1, iBasis*self.spaceDim+1] = self.basisDeriv[iQuad, iBasis, 1]
-        B[2, iBasis*self.spaceDim+0] = self.basisDeriv[iQuad, iBasis, 1]
-        B[2, iBasis*self.spaceDim+1] = self.basisDeriv[iQuad, iBasis, 0]
+        B[2, iBasis*self.spaceDim+0] = 0.5*self.basisDeriv[iQuad, iBasis, 1]
+        B[2, iBasis*self.spaceDim+1] = 0.5*self.basisDeriv[iQuad, iBasis, 0]
     elif 1 == self.spaceDim:
       B = numpy.zeros( (1, self.spaceDim*self.numBasis),
                        dtype=numpy.float64)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DLinear.py	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Solution3DLinear.py	2007-06-01 00:34:41 UTC (rev 7025)
@@ -38,11 +38,11 @@
     
     # Input fields
     self.dt = 0.01
-    self.fieldTpdt = numpy.array([ +0.4, +0.2, -0.5,
+    self.fieldTpdt = numpy.array([ +0.3, +0.2, -0.5,
                                    -0.3, -0.4, -0.6,
                                    +0.2, +0.6, +0.3,
                                    -0.6, -0.1, -0.3], dtype=numpy.float64)
-    self.fieldT = numpy.array([ +0.1, +0.1, -0.6,
+    self.fieldT = numpy.array([ +0.8, +0.1, -0.6,
                                 -0.1, -0.2, -0.5,
                                 +0.1, +0.7, +0.2,
                                 -0.5, -0.0, -0.2], dtype=numpy.float64)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh	2007-05-31 22:38:45 UTC (rev 7024)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh	2007-06-01 00:34:41 UTC (rev 7025)
@@ -198,4 +198,71 @@
 fi
 
 
+# //////////////////////////////////////////////////////////////////////
+if [ $1 == "implicit" ] || [ $1 == "all" ]; then
+
+  # 1-D ----------------------------------------------------------------
+
+  python ElasticityImplicit.py \
+    --data.namespace=pylith,feassemble \
+    --data.object=ElasticityImplicitData1DLinear \
+    --data.parent=IntegratorData \
+    --mesh=Mesh1DLinear \
+    --quadrature=Quadrature1DLinear \
+    --material=MaterialElasticStrain1D \
+    --solution=Solution1DLinear
+
+  python ElasticityImplicit.py \
+    --data.namespace=pylith,feassemble \
+    --data.object=ElasticityImplicitData1DQuadratic \
+    --data.parent=IntegratorData \
+    --mesh=Mesh1DQuadratic \
+    --quadrature=Quadrature1DQuadratic \
+    --material=MaterialElasticStrain1D \
+    --solution=Solution1DQuadratic
+
+  # 2-D ----------------------------------------------------------------
+
+  python ElasticityImplicit.py \
+    --data.namespace=pylith,feassemble \
+    --data.object=ElasticityImplicitData2DLinear \
+    --data.parent=IntegratorData \
+    --mesh=Mesh2DLinear \
+    --quadrature=Quadrature2DLinear \
+    --material=ElasticPlaneStrain \
+    --solution=Solution2DLinear
+
+  python ElasticityImplicit.py \
+    --data.namespace=pylith,feassemble \
+    --data.object=ElasticityImplicitData2DQuadratic \
+    --data.parent=IntegratorData \
+    --mesh=Mesh2DQuadratic \
+    --quadrature=Quadrature2DQuadratic \
+    --material=ElasticPlaneStrain \
+    --solution=Solution2DQuadratic
+
+
+  # 3-D ----------------------------------------------------------------
+
+  python ElasticityImplicit.py \
+    --data.namespace=pylith,feassemble \
+    --data.object=ElasticityImplicitData3DLinear \
+    --data.parent=IntegratorData \
+    --mesh=Mesh3DLinear \
+    --quadrature=Quadrature3DLinear \
+    --material=ElasticIsotropic3D \
+    --solution=Solution3DLinear
+
+  python ElasticityImplicit.py \
+    --data.namespace=pylith,feassemble \
+    --data.object=ElasticityImplicitData3DQuadratic \
+    --data.parent=IntegratorData \
+    --mesh=Mesh3DQuadratic \
+    --quadrature=Quadrature3DQuadratic \
+    --material=ElasticIsotropic3D \
+    --solution=Solution3DQuadratic
+
+fi
+
+
 # End of file 



More information about the cig-commits mailing list