[cig-commits] r16001 - in short/3D/PyLith/branches/pylith-friction: libsrc/feassemble unittests/libtests/feassemble unittests/libtests/feassemble/data

brad at geodynamics.org brad at geodynamics.org
Wed Nov 18 16:50:56 PST 2009


Author: brad
Date: 2009-11-18 16:50:54 -0800 (Wed, 18 Nov 2009)
New Revision: 16001

Added:
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeform.py
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.hh
Modified:
   short/3D/PyLith/branches/pylith-friction/libsrc/feassemble/IntegratorElasticityLgDeform.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/Makefile.am
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DLinear.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DQuadratic.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DLinear.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DQuadratic.hh
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DLinear.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DQuadratic.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DLinear.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DQuadratic.cc
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/IntegratorElasticityLgDeform.py
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/feutils.py
   short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/generate.sh
Log:
Fixed test data for integrate residual test for large deformations. Removed debugging output.

Modified: short/3D/PyLith/branches/pylith-friction/libsrc/feassemble/IntegratorElasticityLgDeform.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/feassemble/IntegratorElasticityLgDeform.cc	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/feassemble/IntegratorElasticityLgDeform.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -338,9 +338,6 @@
       l11 += basisDeriv[iQuad*numBasis+kBasis  ] * disp[kBasis  ]; 
     for (int iBasis=0; iBasis < numBasis; ++iBasis) {
       const double N1 = wt * (1.0 + l11) * basisDeriv[iQuad*numBasis+iBasis  ];
-      std::cout << "N1: " << N1
-		<< ", s11: " << s11
-		<< std::endl;
       _cellVector[iBasis*spaceDim  ] -= N1*s11;
     } // for
   } // for
@@ -558,7 +555,7 @@
     const int iC = iQuad*numConsts;
     const double C1111 = elasticConsts[iC+0];
     const double C1122 = elasticConsts[iC+1];
-    const double C1112 = elasticConsts[iC+2] / 2.0;
+    const double C1112 = elasticConsts[iC+2] / 2.0; // 2*mu -> mu
     const double C2222 = elasticConsts[iC+3];
     const double C2212 = elasticConsts[iC+4] / 2.0;
     const double C1212 = elasticConsts[iC+5] / 2.0;
@@ -566,7 +563,7 @@
     const int iS = iQuad*tensorSize;
     const double s11 = stress[iS+0];
     const double s22 = stress[iS+1];
-    const double s12 = stress[iS+2] * 0.5; // WHY 0.5!!!!
+    const double s12 = stress[iS+2];
 
     double l11 = 0.0;
     double l12 = 0.0;
@@ -607,9 +604,6 @@
 	  (l11+1)*Nip*(l12*Njq*C1122 + 
 		       ((l11+1)*Njq+l12*Njp)*C1112 + 
 		       (l11+1)*Njp*C1111);
-
-
-
 	const double Ki0j1 =
 	  l12*Niq*((l22+1.0)*Njq*C2222 + 
 		   (l21*Njq+(l22+1.0)*Njp)*C2212 + 
@@ -645,15 +639,6 @@
 
 	const int jBlock = (jB);
 	const int jBlock1 = (jB+1);
-	std::cout << "s11: " << s11
-		  << ", s12: " << s12
-		  << ", s22: " << s22
-		  << ", Knl: " << Knl
-		  << ", Ki0j0: " << Ki0j0
-		  << ", Ki0j1: " << Ki0j1
-		  << ", Ki1j0: " << Ki1j0
-		  << ", Ki1j1: " << Ki1j1
-		  << std::endl;
 	_cellMatrix[iBlock +jBlock ] += Ki0j0 + Knl;
 	_cellMatrix[iBlock +jBlock1] += Ki0j1;
 	_cellMatrix[iBlock1+jBlock ] += Ki1j0;
@@ -662,13 +647,6 @@
     } // for
   } // for
   PetscLogFlops(numQuadPts*(1+numBasis*(2+numBasis*(3*11+4))));
-
-  std::cout << "cellMatrix: ";
-  for (int i=0; i < numBasis*spaceDim; ++i) {
-    for (int j=0; j < numBasis*spaceDim; ++j)
-      std::cout << "  " << _cellMatrix[i*numBasis*spaceDim+j];
-    std::cout << std::endl;
-  } // for
 } // _elasticityJacobian2D
 
 // ----------------------------------------------------------------------
@@ -1190,12 +1168,6 @@
     (*strain)[iStrain+2] =
       0.5 * (deform[iDeform  ]*deform[iDeform+1] + 
 	     deform[iDeform+2]*deform[iDeform+3]);
-      std::cout << "iQuad: " << iQuad
-		<< ", strain:"
-		<< "  " << (*strain)[iStrain  ]
-		<< "  " << (*strain)[iStrain+1]
-		<< "  " << (*strain)[iStrain+2]
-		<< std::endl;
   } // for
 } // _calcTotalStrain2D
   
@@ -1273,30 +1245,10 @@
     for (int iBasis=0, iQ=iQuad*numBasis*dim; iBasis < numBasis; ++iBasis)
       for (int iDim=0, indexD=0; iDim < dim; ++iDim)
 	for (int jDim=0; jDim < dim; ++jDim, ++indexD)
-	  {
 	  (*deform)[iQuad*deformSize+indexD] += 
 	    basisDeriv[iQ+iBasis*dim+jDim] *
 	    (vertices[iBasis*dim+iDim] + disp[iBasis*dim+iDim]);
-	  std::cout << "vertex: " << vertices[iBasis*dim+iDim]
-		    << ", disp: " << disp[iBasis*dim+iDim]
-		    << ", basisDeriv: " << basisDeriv[iQ+iBasis*dim+jDim]
-		    << std::endl;
-	  }
 
-  for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
-    std::cout << "\n\niQuad: " << iQuad
-	      << ", deformation tensor: "
-	      << std::endl;
-    for (int iDim=0; iDim < dim; ++iDim) {
-      std::cout << "  ";
-      for (int jDim=0; jDim < dim; ++jDim) {
-	std::cout << "  " << (*deform)[iQuad*deformSize+iDim*dim+jDim];
-      }
-      std::cout << std::endl;
-    }
-  }
-  
-		    
 } // _calcDeformation
   
 

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/Makefile.am	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/Makefile.am	2009-11-19 00:50:54 UTC (rev 16001)
@@ -72,6 +72,8 @@
 	TestElasticityImplicitLgDeform1DQuadratic.cc \
 	TestElasticityImplicitLgDeform2DLinear.cc \
 	TestElasticityImplicitLgDeform2DQuadratic.cc \
+	TestElasticityImplicitLgDeform3DLinear.cc \
+	TestElasticityImplicitLgDeform3DQuadratic.cc \
 	test_feassemble.cc
 
 
@@ -103,6 +105,8 @@
 	TestElasticityImplicitLgDeform1DQuadratic.hh \
 	TestElasticityImplicitLgDeform2DLinear.hh \
 	TestElasticityImplicitLgDeform2DQuadratic.hh \
+	TestElasticityImplicitLgDeform3DLinear.hh \
+	TestElasticityImplicitLgDeform3DQuadratic.hh \
 	TestGeometryPoint1D.hh \
 	TestGeometryPoint2D.hh \
 	TestGeometryPoint3D.hh \
@@ -166,6 +170,8 @@
 	data/ElasticityImplicitLgDeformData1DQuadratic.cc \
 	data/ElasticityImplicitLgDeformData2DLinear.cc \
 	data/ElasticityImplicitLgDeformData2DQuadratic.cc \
+	data/ElasticityImplicitLgDeformData3DLinear.cc \
+	data/ElasticityImplicitLgDeformData3DQuadratic.cc \
 	data/QuadratureData.cc \
 	data/QuadratureData1DLinear.cc \
 	data/QuadratureData1DQuadratic.cc \
@@ -220,6 +226,8 @@
 	data/ElasticityImplicitLgDeformData1DQuadratic.hh \
 	data/ElasticityImplicitLgDeformData2DLinear.hh \
 	data/ElasticityImplicitLgDeformData2DQuadratic.hh \
+	data/ElasticityImplicitLgDeformData3DLinear.hh \
+	data/ElasticityImplicitLgDeformData3DQuadratic.hh \
 	data/QuadratureData.hh \
 	data/QuadratureData1DLinear.hh \
 	data/QuadratureData1DQuadratic.hh \

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -166,7 +166,7 @@
   const double* valsE = _data->valsResidual;
   const int sizeE = _data->spaceDim * _data->numVertices;
 
-#if 1 // DEBUGGING
+#if 0 // DEBUGGING
   residual.view("RESIDUAL");
   std::cout << "RESIDUAL EXPECTED\n";
   for (int i=0; i < sizeE; ++i)

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DLinear.hh	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DLinear.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -18,8 +18,8 @@
  * C++ unit testing for ElasticityImplicitLgDeform with 1-D linear cells.
  */
 
-#if !defined(pylith_feassemble_testelasticityimplicit1dlinear_hh)
-#define pylith_feassemble_testelasticityimplicit1dlinear_hh
+#if !defined(pylith_feassemble_testelasticityimplicitlgdeform1dlinear_hh)
+#define pylith_feassemble_testelasticityimplicitlgdeform1dlinear_hh
 
 #include "TestElasticityImplicitLgDeform.hh" // ISA TestElasticityImplicitLgDeform
 
@@ -54,7 +54,7 @@
 
 }; // class TestElasticityImplicitLgDeform1DLinear
 
-#endif // pylith_feassemble_testelasticityimplicit1dlinear_hh
+#endif // pylith_feassemble_testelasticityimplicitlgdeform1dlinear_hh
 
 
 // End of file 

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DQuadratic.hh	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform1DQuadratic.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -18,8 +18,8 @@
  * C++ unit testing for ElasticityImplicitLgDeform with 1-D quadratic cells.
  */
 
-#if !defined(pylith_feassemble_testelasticityimplicit1dquadratic_hh)
-#define pylith_feassemble_testelasticityimplicit1dquadratic_hh
+#if !defined(pylith_feassemble_testelasticityimplicitlgdeform1dquadratic_hh)
+#define pylith_feassemble_testelasticityimplicitlgdeform1dquadratic_hh
 
 #include "TestElasticityImplicitLgDeform.hh" // ISA TestElasticityImplicitLgDeform
 
@@ -54,7 +54,7 @@
 
 }; // class TestElasticityImplicitLgDeform1DQuadratic
 
-#endif // pylith_feassemble_testelasticityimplicit1dquadratic_hh
+#endif // pylith_feassemble_testelasticityimplicitlgdeform1dquadratic_hh
 
 
 // End of file 

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DLinear.hh	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DLinear.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -18,8 +18,8 @@
  * C++ unit testing for ElasticityImplicitLgDeform with 2-D linear cells.
  */
 
-#if !defined(pylith_feassemble_testelasticityimplicit2dlinear_hh)
-#define pylith_feassemble_testelasticityimplicit2dlinear_hh
+#if !defined(pylith_feassemble_testelasticityimplicitlgdeform2dlinear_hh)
+#define pylith_feassemble_testelasticityimplicitlgdeform2dlinear_hh
 
 #include "TestElasticityImplicitLgDeform.hh" // ISA TestElasticityImplicitLgDeform
 
@@ -54,7 +54,7 @@
 
 }; // class TestElasticityImplicitLgDeform2DLinear
 
-#endif // pylith_feassemble_testelasticityimplicit2dlinear_hh
+#endif // pylith_feassemble_testelasticityimplicitlgdeform2dlinear_hh
 
 
 // End of file 

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DQuadratic.hh	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform2DQuadratic.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -18,8 +18,8 @@
  * C++ unit testing for ElasticityImplicitLgDeform with 2-D quadratic cells.
  */
 
-#if !defined(pylith_feassemble_testelasticityimplicit2dquadratic_hh)
-#define pylith_feassemble_testelasticityimplicit2dquadratic_hh
+#if !defined(pylith_feassemble_testelasticityimplicitlgdeform2dquadratic_hh)
+#define pylith_feassemble_testelasticityimplicitlgdeform2dquadratic_hh
 
 #include "TestElasticityImplicitLgDeform.hh" // ISA TestElasticityImplicitLgDeform
 
@@ -54,7 +54,7 @@
 
 }; // class TestElasticityImplicitLgDeform2DQuadratic
 
-#endif // pylith_feassemble_testelasticityimplicit2dquadratic_hh
+#endif // pylith_feassemble_testelasticityimplicitlgdeform2dquadratic_hh
 
 
 // End of file 

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.cc	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,49 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicitLgDeform3DLinear.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitLgDeformData3DLinear.hh"
+
+#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicitLgDeform3DLinear );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicitLgDeform3DLinear::setUp(void)
+{ // setUp
+  TestElasticityImplicitLgDeform::setUp();
+
+  _data = new ElasticityImplicitLgDeformData3DLinear();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(0 != _material);
+  
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
+		       std::string(_data->matType));
+} // setUp
+
+
+// End of file 

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.hh	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DLinear.hh
+ *
+ * @brief C++ TestElasticityImplicitLgDeform object
+ *
+ * C++ unit testing for ElasticityImplicitLgDeform with 1-D linear cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicitlgdeform3dlinear_hh)
+#define pylith_feassemble_testelasticityimplicitlgdeform3dlinear_hh
+
+#include "TestElasticityImplicitLgDeform.hh" // ISA TestElasticityImplicitLgDeform
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicitLgDeform3DLinear;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicitLgDeform
+class pylith::feassemble::TestElasticityImplicitLgDeform3DLinear :
+  public TestElasticityImplicitLgDeform
+{ // class TestElasticityImplicitLgDeform3DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicitLgDeform3DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityImplicitLgDeform3DLinear
+
+#endif // pylith_feassemble_testelasticityimplicitlgdeform3dlinear_hh
+
+
+// End of file 

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.cc	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,49 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityImplicitLgDeform3DQuadratic.hh" // Implementation of class methods
+
+#include "data/ElasticityImplicitLgDeformData3DQuadratic.hh"
+
+#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityImplicitLgDeform3DQuadratic );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityImplicitLgDeform3DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityImplicitLgDeform::setUp();
+
+  _data = new ElasticityImplicitLgDeformData3DQuadratic();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(0 != _quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(0 != _material);
+  
+  CPPUNIT_ASSERT(0 != _data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
+		       std::string(_data->matType));
+} // setUp
+
+
+// End of file 

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.hh	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/feassemble/TestElasticityImplicitLgDeform3DQuadratic.hh
+ *
+ * @brief C++ TestElasticityImplicitLgDeform object
+ *
+ * C++ unit testing for ElasticityImplicitLgDeform with 1-D quadratic cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityimplicitlgdeform3dquadratic_hh)
+#define pylith_feassemble_testelasticityimplicitlgdeform3dquadratic_hh
+
+#include "TestElasticityImplicitLgDeform.hh" // ISA TestElasticityImplicitLgDeform
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityImplicitLgDeform3DQuadratic;
+  } // feassemble
+} // pylith
+
+/// C++ unit testing for ElasticityImplicitLgDeform
+class pylith::feassemble::TestElasticityImplicitLgDeform3DQuadratic :
+  public TestElasticityImplicitLgDeform
+{ // class TestElasticityImplicitLgDeform3DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityImplicitLgDeform3DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityImplicitLgDeform3DQuadratic
+
+#endif // pylith_feassemble_testelasticityimplicitlgdeform3dquadratic_hh
+
+
+// End of file 

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeform.py
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeform.py	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeform.py	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file unittests/libtests/feassemble/data/ElasticityImplicitLgDeform.py
+
+## @brief Python application for generating C++ data files for testing
+## C++ ElasticityImplicitLgDeform object.
+
+from ElasticityImplicit import ElasticityImplicit
+
+import numpy
+
+# ----------------------------------------------------------------------
+
+# ElasticityImplicitLgDeform class
+class ElasticityImplicitLgDeform(ElasticityImplicit):
+  """
+  Python application for generating C++ data files for testing C++
+  ElasticityImplicitLgDeform object.
+  """
+  
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+  
+  def __init__(self, name="elasticityimplicitlgdeform"):
+    """
+    Constructor.
+    """
+    ElasticityImplicit.__init__(self, name)
+    return
+  
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def calculateResidual(self, integrator):
+    """
+    Calculate contribution to residual of operator for integrator.
+
+    {r} = -[K]{u(t)}
+    """
+    import feutils
+
+    residual = numpy.zeros( (integrator.spaceDim*integrator.numVertices, 1),
+                            dtype=numpy.float64)
+
+    # Matrix of elasticity values
+    D = integrator._calculateElasticityMat()
+    
+    for cell in integrator.cells:
+      cellR = numpy.zeros( (integrator.spaceDim*integrator.numBasis, 1),
+                           dtype=numpy.float64)
+      vertices = integrator.vertices[cell, :]
+      (jacobian, jacobianInv, jacobianDet, basisDeriv) = \
+          feutils.calculateJacobian(integrator.quadrature, vertices)
+      fieldTpdt = integrator.fieldT + integrator.fieldTIncr
+      for iQuad in xrange(integrator.numQuadPts):
+        wt = integrator.quadWts[iQuad] * jacobianDet[iQuad]
+        BL0 = integrator._calculateBasisDerivMatLinear0(basisDeriv, iQuad)
+        BL1 = integrator._calculateBasisDerivMatLinear1(basisDeriv, iQuad, fieldTpdt)
+        BL = BL0 + BL1
+        strain = integrator._calculateStrain(basisDeriv, iQuad, fieldTpdt)
+        S = numpy.dot(D, strain.transpose())
+        print "BL:",BL.shape
+        print "S:",S.shape
+        cellR -= wt * numpy.dot(BL.transpose(), S)
+        print "S",S
+        print cellR
+      feutils.assembleVec(residual, cellR, cell, integrator.spaceDim)
+
+    return residual
+
+
+# FACTORY //////////////////////////////////////////////////////////////
+def formulation():
+  return ElasticityImplicitLgDeform()
+
+
+# End of file 

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DLinear.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DLinear.cc	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DLinear.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -89,8 +89,8 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData1DLinear::_valsResidual[] = {
-  8.78400000e+10,
- -8.78400000e+10,
+  6.04800000e+10,
+ -6.04800000e+10,
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData1DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DQuadratic.cc	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData1DQuadratic.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -103,9 +103,9 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData1DQuadratic::_valsResidual[] = {
-  7.41034403e+11,
-  1.71509070e+12,
- -2.45612510e+12,
+  3.54626283e+11,
+  3.31341344e+11,
+ -6.85967627e+11,
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData1DQuadratic::_valsJacobian[] = {

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DLinear.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DLinear.cc	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DLinear.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -94,30 +94,30 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData2DLinear::_valsResidual[] = {
- -9.10308020e+11,  2.62469069e+12,
-  2.75564148e+11, -2.72579014e+12,
-  6.34743872e+11,  1.01099452e+11,
+ -3.65540787e+11,  1.05895913e+12,
+  9.00343192e+10, -1.09679715e+12,
+  2.75506468e+11,  3.78380237e+10,
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData2DLinear::_valsJacobian[] = {
-  4.43599494e+11, -1.48699027e+11,
- -2.83545181e+11,  8.77736676e+10,
- -1.60054314e+11,  6.09253592e+10,
- -1.48699027e+11,  7.63805884e+11,
-  9.16706846e+10, -6.31084845e+11,
-  5.70283422e+10, -1.32721039e+11,
- -2.83545181e+11,  9.16706846e+10,
-  2.78913924e+11, -2.94466026e+10,
-  4.63125675e+09, -6.22240820e+10,
-  8.77736676e+10, -6.31084845e+11,
- -2.94466026e+10,  6.53761252e+11,
- -5.83270649e+10, -2.26764071e+10,
- -1.60054314e+11,  5.70283422e+10,
-  4.63125675e+09, -5.83270649e+10,
-  1.55423057e+11,  1.29872276e+09,
-  6.09253592e+10, -1.32721039e+11,
- -6.22240820e+10, -2.26764071e+10,
-  1.29872276e+09,  1.55397446e+11,
+  4.36313261e+11, -1.48699027e+11,
+ -2.81223194e+11,  8.77736676e+10,
+ -1.55090067e+11,  6.09253592e+10,
+ -1.48699027e+11,  7.56519651e+11,
+  9.16706846e+10, -6.28762859e+11,
+  5.70283422e+10, -1.27756792e+11,
+ -2.81223194e+11,  9.16706846e+10,
+  2.80835568e+11, -2.94466026e+10,
+  3.87626315e+08, -6.22240820e+10,
+  8.77736676e+10, -6.28762859e+11,
+ -2.94466026e+10,  6.55682896e+11,
+ -5.83270649e+10, -2.69200376e+10,
+ -1.55090067e+11,  5.70283422e+10,
+  3.87626315e+08, -5.83270649e+10,
+  1.54702440e+11,  1.29872276e+09,
+  6.09253592e+10, -1.27756792e+11,
+ -6.22240820e+10, -2.69200376e+10,
+  1.29872276e+09,  1.54676830e+11,
 };
 
 pylith::feassemble::ElasticityImplicitLgDeformData2DLinear::ElasticityImplicitLgDeformData2DLinear(void)

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DQuadratic.cc	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData2DQuadratic.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -164,87 +164,87 @@
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData2DQuadratic::_valsResidual[] = {
-  3.39737351e+12,  5.19317954e+12,
- -1.80774474e+12, -2.22000685e+12,
-  2.65665681e+12,  3.51432165e+12,
-  4.77718113e+12,  3.87082081e+12,
- -7.52685354e+12, -1.20475569e+13,
- -1.49661316e+12,  1.68924177e+12,
+  1.03829775e+12,  1.76362384e+12,
+ -7.52244241e+11, -8.27609561e+11,
+  8.03865887e+11,  1.06221366e+12,
+  1.48071362e+12,  7.67069459e+11,
+ -2.20475628e+12, -3.81077823e+12,
+ -3.65876743e+11,  1.04548083e+12,
 };
 
 const double pylith::feassemble::ElasticityImplicitLgDeformData2DQuadratic::_valsJacobian[] = {
-  1.21091900e+12,  5.56624427e+11,
-  5.95878737e+10,  2.82688919e+10,
-  6.89616587e+11,  3.46233237e+11,
-  9.22245444e+11,  3.73904122e+11,
- -1.91462842e+12, -9.41768992e+11,
- -9.67740481e+11, -3.63261686e+11,
-  5.56624427e+11,  1.75937634e+12,
-  2.55818801e+10,  1.13588035e+11,
-  3.45077232e+11,  7.71442168e+11,
-  3.77747140e+11,  6.23361467e+11,
- -9.44649933e+11, -2.62213755e+12,
- -3.60380746e+11, -6.45630459e+11,
-  5.95878737e+10,  2.55818801e+10,
-  5.73354183e+11,  2.59713039e+11,
- -8.46433708e+09, -2.59165131e+10,
- -4.03504796e+11, -1.36798725e+11,
-  8.32134883e+10,  6.73297341e+10,
- -3.04186412e+11, -1.89909415e+11,
-  2.82688919e+10,  1.13588035e+11,
-  2.59713039e+11,  5.80155308e+11,
- -2.66709077e+10, -3.33303021e+10,
- -1.27273335e+11, -1.82757062e+11,
-  6.53971169e+10,  1.67214691e+11,
- -1.99434806e+11, -6.44870669e+11,
-  6.89616587e+11,  3.45077232e+11,
- -8.46433708e+09, -2.66709077e+10,
-  9.46393649e+11,  4.11776807e+11,
-  4.22061375e+11,  3.08031050e+11,
- -1.66893291e+12, -8.05938575e+11,
- -3.80674362e+11, -2.32275605e+11,
-  3.46233237e+11,  7.71442168e+11,
- -2.59165131e+10, -3.33303021e+10,
-  4.11776807e+11,  9.71896809e+11,
-  3.13343794e+11,  2.71248445e+11,
- -8.11251320e+11, -1.81414784e+12,
- -2.34186006e+11, -1.67109284e+11,
-  9.22245444e+11,  3.77747140e+11,
- -4.03504796e+11, -1.27273335e+11,
-  4.22061375e+11,  3.13343794e+11,
-  2.67767840e+12,  8.66541719e+11,
- -1.76517544e+12, -9.28979272e+11,
- -1.85330498e+12, -5.01380046e+11,
-  3.73904122e+11,  6.23361467e+11,
- -1.36798725e+11, -1.82757062e+11,
-  3.08031050e+11,  2.71248445e+11,
-  8.66541719e+11,  2.75987489e+12,
- -9.20742130e+11, -1.59282386e+12,
- -4.90936036e+11, -1.87890388e+12,
- -1.91462842e+12, -9.44649933e+11,
-  8.32134883e+10,  6.53971169e+10,
- -1.66893291e+12, -8.11251320e+11,
- -1.76517544e+12, -9.20742130e+11,
-  4.09293769e+12,  2.04726998e+12,
-  1.17258560e+12,  5.63976291e+11,
- -9.41768992e+11, -2.62213755e+12,
-  6.73297341e+10,  1.67214691e+11,
- -8.05938575e+11, -1.81414784e+12,
- -9.28979272e+11, -1.59282386e+12,
-  2.04726998e+12,  5.59980472e+12,
-  5.62087130e+11,  2.62089836e+11,
- -9.67740481e+11, -3.60380746e+11,
- -3.04186412e+11, -1.99434806e+11,
- -3.80674362e+11, -2.34186006e+11,
- -1.85330498e+12, -4.90936036e+11,
-  1.17258560e+12,  5.62087130e+11,
-  2.33332064e+12,  7.22850462e+11,
- -3.63261686e+11, -6.45630459e+11,
- -1.89909415e+11, -6.44870669e+11,
- -2.32275605e+11, -1.67109284e+11,
- -5.01380046e+11, -1.87890388e+12,
-  5.63976291e+11,  2.62089836e+11,
-  7.22850462e+11,  3.07442446e+12,
+  1.18059576e+12,  5.56624427e+11,
+  2.17020537e+10,  2.82688919e+10,
+  7.03170548e+11,  3.46233237e+11,
+  9.30815156e+11,  3.73904122e+11,
+ -1.97360381e+12, -9.41768992e+11,
+ -8.62679703e+11, -3.63261686e+11,
+  5.56624427e+11,  1.72905310e+12,
+  2.55818801e+10,  7.57022146e+10,
+  3.45077232e+11,  7.84996129e+11,
+  3.77747140e+11,  6.31931179e+11,
+ -9.44649933e+11, -2.68111294e+12,
+ -3.60380746e+11, -5.40569680e+11,
+  2.17020537e+10,  2.55818801e+10,
+  5.70555199e+11,  2.59713039e+11,
+ -2.96119462e+10, -2.59165131e+10,
+ -4.24956826e+11, -1.36798725e+11,
+  1.42337474e+11,  6.73297341e+10,
+ -2.80025954e+11, -1.89909415e+11,
+  2.82688919e+10,  7.57022146e+10,
+  2.59713039e+11,  5.77356324e+11,
+ -2.66709077e+10, -5.44779112e+10,
+ -1.27273335e+11, -2.04209092e+11,
+  6.53971169e+10,  2.26338676e+11,
+ -1.99434806e+11, -6.20710212e+11,
+  7.03170548e+11,  3.45077232e+11,
+ -2.96119462e+10, -2.66709077e+10,
+  9.20384196e+11,  4.11776807e+11,
+  4.71950241e+11,  3.08031050e+11,
+ -1.68844719e+12, -8.05938575e+11,
+ -3.77445853e+11, -2.32275605e+11,
+  3.46233237e+11,  7.84996129e+11,
+ -2.59165131e+10, -5.44779112e+10,
+  4.11776807e+11,  9.45887355e+11,
+  3.13343794e+11,  3.21137311e+11,
+ -8.11251320e+11, -1.83366211e+12,
+ -2.34186006e+11, -1.63880774e+11,
+  9.30815156e+11,  3.77747140e+11,
+ -4.24956826e+11, -1.27273335e+11,
+  4.71950241e+11,  3.13343794e+11,
+  2.66933376e+12,  8.66541719e+11,
+ -1.81944099e+12, -9.28979272e+11,
+ -1.82770134e+12, -5.01380046e+11,
+  3.73904122e+11,  6.31931179e+11,
+ -1.36798725e+11, -2.04209092e+11,
+  3.08031050e+11,  3.21137311e+11,
+  8.66541719e+11,  2.75153025e+12,
+ -9.20742130e+11, -1.64708940e+12,
+ -4.90936036e+11, -1.85330024e+12,
+ -1.97360381e+12, -9.44649933e+11,
+  1.42337474e+11,  6.53971169e+10,
+ -1.68844719e+12, -8.11251320e+11,
+ -1.81944099e+12, -9.20742130e+11,
+  4.26074832e+12,  2.04726998e+12,
+  1.07840620e+12,  5.63976291e+11,
+ -9.41768992e+11, -2.68111294e+12,
+  6.73297341e+10,  2.26338676e+11,
+ -8.05938575e+11, -1.83366211e+12,
+ -9.28979272e+11, -1.64708940e+12,
+  2.04726998e+12,  5.76761534e+12,
+  5.62087130e+11,  1.67910439e+11,
+ -8.62679703e+11, -3.60380746e+11,
+ -2.80025954e+11, -1.99434806e+11,
+ -3.77445853e+11, -2.34186006e+11,
+ -1.82770134e+12, -4.90936036e+11,
+  1.07840620e+12,  5.62087130e+11,
+  2.26944665e+12,  7.22850462e+11,
+ -3.63261686e+11, -5.40569680e+11,
+ -1.89909415e+11, -6.20710212e+11,
+ -2.32275605e+11, -1.63880774e+11,
+ -5.01380046e+11, -1.85330024e+12,
+  5.63976291e+11,  1.67910439e+11,
+  7.22850462e+11,  3.01055047e+12,
 };
 
 pylith::feassemble::ElasticityImplicitLgDeformData2DQuadratic::ElasticityImplicitLgDeformData2DQuadratic(void)

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.cc	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,192 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application integratorelasticitylgdeform.
+
+#include "ElasticityImplicitLgDeformData3DLinear.hh"
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_spaceDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_cellDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_numVertices = 4;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_numBasis = 4;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_numQuadPts = 1;
+
+const char* pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_matType = "ElasticIsotropic3D";
+
+const char* pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_matDBFilename = "data/elasticisotropic3d.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_matLabel = "elastic isotropic 3-D";
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_gravityVec[] = {
+  0.00000000e+00,  0.00000000e+00, -1.00000000e+08,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_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::ElasticityImplicitLgDeformData3DLinear::_cells[] = {
+0,1,2,3,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+  1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00,  1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00,  1.00000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_quadPts[] = {
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_quadWts[] = {
+  1.33333333e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_basis[] = {
+  2.50000000e-01,  2.50000000e-01,  2.50000000e-01,
+  2.50000000e-01,};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_basisDerivRef[] = {
+ -5.00000000e-01, -5.00000000e-01, -5.00000000e-01,
+  5.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  5.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  5.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_fieldTIncr[] = {
+  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::ElasticityImplicitLgDeformData3DLinear::_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::ElasticityImplicitLgDeformData3DLinear::_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::ElasticityImplicitLgDeformData3DLinear::_valsResidual[] = {
+  2.79474210e+11,  1.80174876e+12,  1.26556850e+12,
+  6.44632598e+11,  4.29759382e+12,  2.88601168e+12,
+ -1.13174893e+12, -6.94850554e+12, -4.65500318e+12,
+  2.07642124e+11,  8.49162957e+11,  5.03422995e+11,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::_valsJacobian[] = {
+  2.94874367e+11,  6.16951570e+10,  3.89461610e+10,
+  5.48150595e+11,  1.11804684e+11,  7.10898629e+10,
+ -9.45152856e+11, -2.08621385e+11, -1.32482083e+11,
+  1.02127894e+11,  3.51215443e+10,  2.24460592e+10,
+  6.16951570e+10,  6.57018660e+11,  2.71425583e+11,
+  1.11804684e+11,  1.23922444e+12,  4.97844328e+11,
+ -2.08621385e+11, -2.12462667e+12, -8.51891691e+11,
+  3.51215443e+10,  2.28383572e+11,  8.26217801e+10,
+  3.89461610e+10,  2.71425583e+11,  4.77828353e+11,
+  7.10898629e+10,  4.97844328e+11,  8.73012939e+11,
+ -1.32482083e+11, -8.51891691e+11, -1.49263907e+12,
+  2.24460592e+10,  8.26217801e+10,  1.41797778e+11,
+  5.48150595e+11,  1.11804684e+11,  7.10898629e+10,
+  1.41837229e+12,  2.89096417e+11,  1.70605497e+11,
+ -2.25396787e+12, -4.94966564e+11, -2.95400181e+11,
+  2.87444987e+11,  9.40654624e+10,  5.37048209e+10,
+  1.11804684e+11,  1.23922444e+12,  4.97844328e+11,
+  2.89096417e+11,  3.27225597e+12,  1.26969767e+12,
+ -4.94966564e+11, -5.16973245e+12, -1.99940566e+12,
+  9.40654624e+10,  6.58252043e+11,  2.31863658e+11,
+  7.10898629e+10,  4.97844328e+11,  8.73012939e+11,
+  1.70605497e+11,  1.26969767e+12,  2.20481950e+12,
+ -2.95400181e+11, -1.99940566e+12, -3.47904176e+12,
+  5.37048209e+10,  2.31863658e+11,  4.01209317e+11,
+ -9.45152856e+11, -2.08621385e+11, -1.32482083e+11,
+ -2.25396787e+12, -4.94966564e+11, -2.95400181e+11,
+  3.68810232e+12,  8.67069202e+11,  5.19506826e+11,
+ -4.88981593e+11, -1.63481253e+11, -9.16245619e+10,
+ -2.08621385e+11, -2.12462667e+12, -8.51891691e+11,
+ -4.94966564e+11, -5.16973245e+12, -1.99940566e+12,
+  8.67069202e+11,  8.39475093e+12,  3.23896409e+12,
+ -1.63481253e+11, -1.10039182e+12, -3.87666745e+11,
+ -1.32482083e+11, -8.51891691e+11, -1.49263907e+12,
+ -2.95400181e+11, -1.99940566e+12, -3.47904176e+12,
+  5.19506826e+11,  3.23896409e+12,  5.64558477e+12,
+ -9.16245619e+10, -3.87666745e+11, -6.73903937e+11,
+  1.02127894e+11,  3.51215443e+10,  2.24460592e+10,
+  2.87444987e+11,  9.40654624e+10,  5.37048209e+10,
+ -4.88981593e+11, -1.63481253e+11, -9.16245619e+10,
+  9.94087115e+10,  3.42942460e+10,  1.54736818e+10,
+  3.51215443e+10,  2.28383572e+11,  8.26217801e+10,
+  9.40654624e+10,  6.58252043e+11,  2.31863658e+11,
+ -1.63481253e+11, -1.10039182e+12, -3.87666745e+11,
+  3.42942460e+10,  2.13756204e+11,  7.31813067e+10,
+  2.24460592e+10,  8.26217801e+10,  1.41797778e+11,
+  5.37048209e+10,  2.31863658e+11,  4.01209317e+11,
+ -9.16245619e+10, -3.87666745e+11, -6.73903937e+11,
+  1.54736818e+10,  7.31813067e+10,  1.30896842e+11,
+};
+
+pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::ElasticityImplicitLgDeformData3DLinear(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;
+  gravityVec = const_cast<double*>(_gravityVec);
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  verticesRef = const_cast<double*>(_verticesRef);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDerivRef = const_cast<double*>(_basisDerivRef);
+  fieldTIncr = const_cast<double*>(_fieldTIncr);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitLgDeformData3DLinear::~ElasticityImplicitLgDeformData3DLinear(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.hh	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DLinear.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application integratorelasticitylgdeform.
+
+#if !defined(pylith_feassemble_elasticityimplicitlgdeformdata3dlinear_hh)
+#define pylith_feassemble_elasticityimplicitlgdeformdata3dlinear_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitLgDeformData3DLinear;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitLgDeformData3DLinear : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitLgDeformData3DLinear(void);
+
+  /// Destructor
+  ~ElasticityImplicitLgDeformData3DLinear(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 _gravityVec[];
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _verticesRef[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDerivRef[];
+
+  static const double _fieldTIncr[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitlgdeformdata3dlinear_hh
+
+// End of file

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.cc	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.cc	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,531 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application integratorelasticitylgdeform.
+
+#include "ElasticityImplicitLgDeformData3DQuadratic.hh"
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_spaceDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_cellDim = 3;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_numVertices = 10;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_numCells = 1;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_numBasis = 10;
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_numQuadPts = 4;
+
+const char* pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_matType = "ElasticIsotropic3D";
+
+const char* pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_matDBFilename = "data/elasticisotropic3d.spatialdb";
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_matId = 0;
+
+const char* pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_matLabel = "elastic isotropic 3-D";
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_dt =   1.00000000e-02;
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_gravityVec[] = {
+  0.00000000e+00,  0.00000000e+00, -1.00000000e+08,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_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,
+  1.50000000e+00, -5.00000000e-01, -2.50000000e-01,
+  2.50000000e-01, -5.00000000e-01, -5.00000000e-01,
+  7.50000000e-01, -2.00000000e+00, -7.50000000e-01,
+ -1.50000000e-01, -7.50000000e-01,  5.00000000e-01,
+  1.10000000e+00, -7.50000000e-01,  7.50000000e-01,
+  6.00000000e-01,  7.50000000e-01,  1.00000000e+00,
+};
+
+const int pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_cells[] = {
+0,1,2,3,4,5,6,7,8,9,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+  1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00,  1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00,  1.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00,  0.00000000e+00, -1.00000000e+00,
+  0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -1.00000000e+00,  0.00000000e+00,
+ -1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_quadPts[] = {
+ -8.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+  5.00000000e-01, -8.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01,  5.00000000e-01, -8.00000000e-01,
+ -8.00000000e-01, -8.00000000e-01,  5.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_quadWts[] = {
+  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,  3.33333333e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_basis[] = {
+  2.80000000e-01, -8.00000000e-02, -8.00000000e-02,
+ -8.00000000e-02,  4.00000000e-02,  2.80000000e-01,
+  2.80000000e-01,  2.80000000e-01,  4.00000000e-02,
+  4.00000000e-02, -4.50000000e-02,  3.75000000e-01,
+ -8.00000000e-02, -8.00000000e-02,  3.00000000e-01,
+  2.00000000e-02,  1.50000000e-01,  2.00000000e-02,
+  3.00000000e-01,  4.00000000e-02, -4.50000000e-02,
+ -8.00000000e-02,  3.75000000e-01, -8.00000000e-02,
+  3.00000000e-01,  1.50000000e-01,  2.00000000e-02,
+  2.00000000e-02,  4.00000000e-02,  3.00000000e-01,
+ -4.50000000e-02, -8.00000000e-02, -8.00000000e-02,
+  3.75000000e-01,  4.00000000e-02,  2.00000000e-02,
+  2.00000000e-02,  1.50000000e-01,  3.00000000e-01,
+  3.00000000e-01,};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_basisDerivRef[] = {
+ -9.00000000e-01, -9.00000000e-01, -9.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01,  1.20000000e+00, -2.00000000e-01,
+  1.20000000e+00, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01,  1.20000000e+00,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+  1.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  2.00000000e-01,  1.50000000e+00,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.40000000e+00, -1.50000000e+00, -1.50000000e+00,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  1.50000000e+00,
+  0.00000000e+00,  2.00000000e-01,  2.00000000e-01,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  1.00000000e+00,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00, -3.00000000e-01,
+  1.50000000e+00,  2.00000000e-01,  0.00000000e+00,
+ -1.50000000e+00, -1.40000000e+00, -1.50000000e+00,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -2.00000000e-01, -2.00000000e-01, -1.00000000e-01,
+  2.00000000e-01,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  2.00000000e-01,  1.50000000e+00,
+  4.00000000e-01,  4.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01,  0.00000000e+00,  0.00000000e+00,
+  0.00000000e+00, -3.00000000e-01,  0.00000000e+00,
+  0.00000000e+00,  0.00000000e+00,  1.00000000e+00,
+  2.00000000e-01,  2.00000000e-01,  0.00000000e+00,
+ -2.00000000e-01, -1.00000000e-01, -2.00000000e-01,
+ -1.00000000e-01, -2.00000000e-01, -2.00000000e-01,
+ -1.50000000e+00, -1.50000000e+00, -1.40000000e+00,
+  1.50000000e+00,  0.00000000e+00,  2.00000000e-01,
+  0.00000000e+00,  1.50000000e+00,  2.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_fieldTIncr[] = {
+  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::ElasticityImplicitLgDeformData3DQuadratic::_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::ElasticityImplicitLgDeformData3DQuadratic::_fieldTmdt[] = {
+  2.00000000e-01, -3.00000000e-01, -1.00000000e-01,
+ -4.00000000e-01,  2.00000000e-01,  3.00000000e-01,
+ -5.00000000e-01,  2.00000000e-01,  2.00000000e-01,
+ -3.00000000e-01, -8.00000000e-01, -3.00000000e-01,
+ -5.00000000e-01, -9.00000000e-01,  4.00000000e-01,
+ -3.00000000e-01, -6.00000000e-01, -8.00000000e-01,
+  9.00000000e-01,  5.00000000e-01, -2.00000000e-01,
+ -7.00000000e-01, -2.00000000e-01, -9.00000000e-01,
+ -5.00000000e-01, -8.00000000e-01,  4.00000000e-01,
+ -4.00000000e-01,  5.00000000e-01, -7.00000000e-01,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_valsResidual[] = {
+  2.83531193e+11,  6.85360097e+11, -7.35048936e+11,
+  8.17609945e+11, -2.46059924e+11,  5.76994362e+11,
+ -1.61369461e+12, -3.33728123e+11, -1.98412259e+12,
+ -3.86612970e+11,  1.55209617e+12, -1.57307404e+12,
+ -8.25945978e+11, -2.06081757e+11, -8.11681780e+11,
+  2.39916408e+12,  1.36233180e+12,  2.44278998e+12,
+ -1.83049591e+12, -1.27565741e+12,  3.52648635e+11,
+  2.60556997e+11, -1.53217232e+12,  1.40244034e+12,
+ -8.95741060e+11,  3.53530714e+12, -4.18558562e+12,
+  1.79162831e+12, -3.54139567e+12,  4.51463965e+12,
+};
+
+const double pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::_valsJacobian[] = {
+  4.65661925e+11,  1.45207670e+11,  8.48382894e+10,
+  1.24772472e+11,  7.41894782e+10, -4.42698676e+10,
+  7.18213188e+10,  5.09242305e+09,  4.05530373e+10,
+  9.25950209e+10,  3.01383081e+09,  4.41940539e+10,
+  1.40659877e+11,  7.81646933e+09,  8.55770103e+10,
+  7.55814313e+10,  1.00158408e+11, -5.39884553e+09,
+ -7.04119227e+11, -2.55717104e+11, -3.23748072e+10,
+ -3.27406977e+11, -3.58266405e+10, -1.14846242e+11,
+  1.90099476e+11, -7.46675761e+10,  1.18407263e+10,
+ -1.29665315e+11,  3.07330418e+10, -7.01133548e+10,
+  1.45207670e+11,  4.17879082e+11,  2.69285551e+10,
+  7.41894782e+10,  7.12501045e+10,  1.69326571e+10,
+  5.09242305e+09,  7.79843128e+10,  1.24078373e+09,
+  3.01383081e+09,  1.26067202e+11, -2.62782048e+10,
+  7.81646933e+09,  1.18102474e+11,  2.96832254e+10,
+  1.00158408e+11,  2.69890946e+10,  6.52474095e+10,
+ -2.55717104e+11, -5.58070068e+11, -2.09279922e+10,
+ -3.58266405e+10, -4.64117178e+11,  6.84864638e+10,
+ -7.46675761e+10,  3.28253126e+11, -2.44433188e+11,
+  3.07330418e+10, -1.44338150e+11,  8.31202909e+10,
+  8.48382894e+10,  2.69285551e+10,  4.15301734e+11,
+ -4.42698676e+10,  1.69326571e+10,  7.33047953e+10,
+  4.05530373e+10,  1.24078373e+09,  1.27489728e+11,
+  4.41940539e+10, -2.62782048e+10,  1.51395370e+11,
+  8.55770103e+10,  2.96832254e+10,  2.11321369e+11,
+ -5.39884553e+09,  6.52474095e+10, -1.46463462e+11,
+ -3.23748072e+10, -2.09279922e+10, -5.59853491e+11,
+ -1.14846242e+11,  6.84864638e+10, -5.09095160e+11,
+  1.18407263e+10, -2.44433188e+11,  4.97279724e+11,
+ -7.01133548e+10,  8.31202909e+10, -2.60680607e+11,
+  1.24772472e+11,  7.41894782e+10, -4.42698676e+10,
+  3.18994605e+11,  6.08636475e+10, -5.28381253e+10,
+ -5.95541375e+10,  1.26084960e+10, -4.24114682e+10,
+ -8.37120894e+10,  2.17101919e+10, -9.24436085e+08,
+ -2.46254169e+11, -4.29845346e+10, -4.41618213e+10,
+  3.69282312e+11,  1.07296224e+11,  1.48157570e+11,
+ -5.47553983e+11, -1.78849586e+11,  9.36194643e+10,
+  7.95730371e+10, -7.67652780e+10,  4.79024142e+10,
+ -2.15276680e+11,  8.00666055e+10, -1.77270676e+11,
+  2.59728633e+11, -5.81352446e+10,  7.21969464e+10,
+  7.41894782e+10,  7.12501045e+10,  1.69326571e+10,
+  6.08636475e+10,  3.25267756e+11, -1.22309091e+11,
+  1.26084960e+10, -5.31861531e+10,  1.29709419e+10,
+  2.17101919e+10, -1.52532444e+11,  1.00603438e+11,
+ -4.29845346e+10, -2.62321656e+11,  6.79528717e+10,
+  1.07296224e+11,  3.27288566e+11,  5.30178659e+10,
+ -1.78849586e+11, -4.32757567e+11,  7.65998486e+10,
+ -7.67652780e+10,  1.29553761e+11, -1.26591592e+11,
+  8.00666055e+10, -3.89057716e+11,  1.34140735e+11,
+ -5.81352446e+10,  4.36495348e+11, -2.13317675e+11,
+ -4.42698676e+10,  1.69326571e+10,  7.33047953e+10,
+ -5.28381253e+10, -1.22309091e+11,  4.88759132e+11,
+ -4.24114682e+10,  1.29709419e+10, -6.74464625e+10,
+ -9.24436085e+08,  1.00603438e+11, -1.98419387e+11,
+ -4.41618213e+10,  6.79528717e+10, -3.98133382e+11,
+  1.48157570e+11,  5.30178659e+10,  3.01368983e+11,
+  9.36194643e+10,  7.65998486e+10, -5.77601119e+11,
+  4.79024142e+10, -1.26591592e+11,  1.94445962e+11,
+ -1.77270676e+11,  1.34140735e+11, -2.74232321e+11,
+  7.21969464e+10, -2.13317675e+11,  4.57953800e+11,
+  7.18213188e+10,  5.09242305e+09,  4.05530373e+10,
+ -5.95541375e+10,  1.26084960e+10, -4.24114682e+10,
+  1.10135125e+12,  3.25720553e+11,  3.62390508e+11,
+  2.94017649e+11,  1.23894657e+10,  8.94735240e+10,
+  1.34408493e+10, -4.81163047e+10,  1.60257602e+11,
+ -6.81749121e+11, -2.46273575e+11, -2.38131042e+11,
+  1.52813392e+11,  6.38089974e+10,  2.92728877e+10,
+ -1.19071391e+10,  6.22561142e+10, -3.62572653e+10,
+  2.38104621e+11, -5.73710641e+10, -4.42540169e+09,
+ -1.11833868e+12, -1.30115106e+11, -3.60722383e+11,
+  5.09242305e+09,  7.79843128e+10,  1.24078373e+09,
+  1.26084960e+10, -5.31861531e+10,  1.29709419e+10,
+  3.25720553e+11,  1.09654928e+12,  1.25558927e+11,
+  1.23894657e+10,  4.02203557e+11, -1.25992638e+11,
+ -4.81163047e+10, -2.03145182e+11,  1.24652000e+11,
+ -2.46273575e+11, -6.32348620e+11, -1.80580051e+11,
+  6.38089974e+10,  9.79869768e+10,  3.14800157e+10,
+  6.22561142e+10, -2.38293966e+10,  8.52080054e+10,
+ -5.73710641e+10,  4.92506284e+11, -2.94720961e+11,
+ -1.30115106e+11, -1.25472106e+12,  2.20182976e+11,
+  4.05530373e+10,  1.24078373e+09,  1.27489728e+11,
+ -4.24114682e+10,  1.29709419e+10, -6.74464625e+10,
+  3.62390508e+11,  1.25558927e+11,  1.03669910e+12,
+  8.94735240e+10, -1.25992638e+11,  4.11450418e+11,
+  1.60257602e+11,  1.24652000e+11, -3.17810955e+09,
+ -2.38131042e+11, -1.80580051e+11, -6.28819588e+11,
+  2.92728877e+10,  3.14800157e+10,  3.14543861e+10,
+ -3.62572653e+10,  8.52080054e+10, -1.29228969e+11,
+ -4.42540169e+09, -2.94720961e+11,  5.35392012e+11,
+ -3.60722383e+11,  2.20182976e+11, -1.31381251e+12,
+  9.25950209e+10,  3.01383081e+09,  4.41940539e+10,
+ -8.37120894e+10,  2.17101919e+10, -9.24436085e+08,
+  2.94017649e+11,  1.23894657e+10,  8.94735240e+10,
+  4.97528833e+11, -1.14626728e+10,  6.59882894e+10,
+  6.65491224e+10,  8.47757035e+09,  1.31257632e+10,
+  7.66331934e+10,  8.55959553e+10, -3.73685357e+07,
+ -3.56709943e+10, -2.76429617e+10, -6.19572817e+10,
+ -3.22925718e+11, -5.74029189e+09, -8.83327493e+10,
+  3.17445492e+11, -1.22169413e+11,  1.00263616e+11,
+ -9.02460510e+11,  3.58283248e+10, -1.61793411e+11,
+  3.01383081e+09,  1.26067202e+11, -2.62782048e+10,
+  2.17101919e+10, -1.52532444e+11,  1.00603438e+11,
+  1.23894657e+10,  4.02203557e+11, -1.25992638e+11,
+ -1.14626728e+10,  8.65931363e+11, -3.82661325e+11,
+  8.47757035e+09, -1.28217470e+10,  1.35369129e+10,
+  8.55959553e+10,  3.26503144e+10,  1.22944799e+11,
+ -2.76429617e+10, -3.20097931e+10, -5.88793091e+10,
+ -5.74029189e+09, -4.10305623e+11,  1.11266648e+11,
+ -1.22169413e+11,  7.48622075e+11, -4.24857358e+11,
+  3.58283248e+10, -1.56780490e+12,  6.70317037e+11,
+  4.41940539e+10, -2.62782048e+10,  1.51395370e+11,
+ -9.24436085e+08,  1.00603438e+11, -1.98419387e+11,
+  8.94735240e+10, -1.25992638e+11,  4.11450418e+11,
+  6.59882894e+10, -3.82661325e+11,  8.70711287e+11,
+  1.31257632e+10,  1.35369129e+10,  9.07016473e+10,
+ -3.73685357e+07,  1.22944799e+11, -5.25010034e+10,
+ -6.19572817e+10, -5.88793091e+10,  1.08121328e+10,
+ -8.83327493e+10,  1.11266648e+11, -5.16970075e+11,
+  1.00263616e+11, -4.24857358e+11,  7.55013813e+11,
+ -1.61793411e+11,  6.70317037e+11, -1.52219420e+12,
+  1.40659877e+11,  7.81646933e+09,  8.55770103e+10,
+ -2.46254169e+11, -4.29845346e+10, -4.41618213e+10,
+  1.34408493e+10, -4.81163047e+10,  1.60257602e+11,
+  6.65491224e+10,  8.47757035e+09,  1.31257632e+10,
+  1.16270901e+12,  1.84156516e+11,  1.94618725e+11,
+ -5.72995180e+11, -7.97684286e+10, -3.20409939e+11,
+  2.64947735e+10,  1.68329992e+10, -9.87964535e+09,
+ -2.49889410e+11, -3.10663177e+10, -7.33658238e+10,
+ -1.71088244e+11, -6.30056465e+10,  1.74314405e+11,
+ -1.69626626e+11,  4.76576773e+10, -1.80076276e+11,
+  7.81646933e+09,  1.18102474e+11,  2.96832254e+10,
+ -4.29845346e+10, -2.62321656e+11,  6.79528717e+10,
+ -4.81163047e+10, -2.03145182e+11,  1.24652000e+11,
+  8.47757035e+09, -1.28217470e+10,  1.35369129e+10,
+  1.84156516e+11,  1.16609381e+12, -2.28629589e+11,
+ -7.97684286e+10, -4.65673799e+11, -9.51163063e+10,
+  1.68329992e+10,  7.30677747e+10, -6.02206307e+10,
+ -3.10663177e+10, -2.30487506e+11,  7.81937180e+09,
+ -6.30056465e+10, -2.28430845e+11,  1.98763507e+11,
+  4.76576773e+10,  4.56166756e+10, -5.84413625e+10,
+  8.55770103e+10,  2.96832254e+10,  2.11321369e+11,
+ -4.41618213e+10,  6.79528717e+10, -3.98133382e+11,
+  1.60257602e+11,  1.24652000e+11, -3.17810955e+09,
+  1.31257632e+10,  1.35369129e+10,  9.07016473e+10,
+  1.94618725e+11, -2.28629589e+11,  1.70825144e+12,
+ -3.20409939e+11, -9.51163063e+10, -7.97801243e+11,
+ -9.87964535e+09, -6.02206307e+10,  7.70360435e+10,
+ -7.33658238e+10,  7.81937180e+09, -2.93644299e+11,
+  1.74314405e+11,  1.98763507e+11, -4.10328847e+11,
+ -1.80076276e+11, -5.84413625e+10, -1.84224621e+11,
+  7.55814313e+10,  1.00158408e+11, -5.39884553e+09,
+  3.69282312e+11,  1.07296224e+11,  1.48157570e+11,
+ -6.81749121e+11, -2.46273575e+11, -2.38131042e+11,
+  7.66331934e+10,  8.55959553e+10, -3.73685357e+07,
+ -5.72995180e+11, -7.97684286e+10, -3.20409939e+11,
+  2.45592464e+12,  8.72069906e+11,  7.29084849e+11,
+ -9.75215619e+11, -4.34128069e+11, -2.56910788e+11,
+ -5.51910015e+11, -3.31945132e+11, -1.04698326e+11,
+ -5.96253782e+11, -1.03426849e+11, -1.13624994e+11,
+  4.00702141e+11,  3.04215606e+10,  1.61968884e+11,
+  1.00158408e+11,  2.69890946e+10,  6.52474095e+10,
+  1.07296224e+11,  3.27288566e+11,  5.30178659e+10,
+ -2.46273575e+11, -6.32348620e+11, -1.80580051e+11,
+  8.55959553e+10,  3.26503144e+10,  1.22944799e+11,
+ -7.97684286e+10, -4.65673799e+11, -9.51163063e+10,
+  8.72069906e+11,  2.27130607e+12,  5.76476353e+11,
+ -4.34128069e+11, -7.36984695e+11, -2.23203143e+11,
+ -3.31945132e+11, -4.91827419e+11, -3.22783678e+11,
+ -1.03426849e+11, -7.11586437e+11,  1.31379586e+11,
+  3.04215606e+10,  3.80186919e+11, -1.27382836e+11,
+ -5.39884553e+09,  6.52474095e+10, -1.46463462e+11,
+  1.48157570e+11,  5.30178659e+10,  3.01368983e+11,
+ -2.38131042e+11, -1.80580051e+11, -6.28819588e+11,
+ -3.73685357e+07,  1.22944799e+11, -5.25010034e+10,
+ -3.20409939e+11, -9.51163063e+10, -7.97801243e+11,
+  7.29084849e+11,  5.76476353e+11,  2.14357815e+12,
+ -2.56910788e+11, -2.23203143e+11, -4.02976629e+11,
+ -1.04698326e+11, -3.22783678e+11, -2.22817271e+11,
+ -1.13624994e+11,  1.31379586e+11, -7.44361231e+11,
+  1.61968884e+11, -1.27382836e+11,  5.50793300e+11,
+ -7.04119227e+11, -2.55717104e+11, -3.23748072e+10,
+ -5.47553983e+11, -1.78849586e+11,  9.36194643e+10,
+  1.52813392e+11,  6.38089974e+10,  2.92728877e+10,
+ -3.56709943e+10, -2.76429617e+10, -6.19572817e+10,
+  2.64947735e+10,  1.68329992e+10, -9.87964535e+09,
+ -9.75215619e+11, -4.34128069e+11, -2.56910788e+11,
+  1.89896017e+12,  6.56740815e+11, -8.16178375e+10,
+  3.38393444e+11,  1.64966431e+11,  1.12967809e+11,
+ -3.12949675e+10,  2.44157356e+10,  1.92718403e+11,
+ -1.22806992e+11, -3.04272562e+10,  1.41617951e+10,
+ -2.55717104e+11, -5.58070068e+11, -2.09279922e+10,
+ -1.78849586e+11, -4.32757567e+11,  7.65998486e+10,
+  6.38089974e+10,  9.79869768e+10,  3.14800157e+10,
+ -2.76429617e+10, -3.20097931e+10, -5.88793091e+10,
+  1.68329992e+10,  7.30677747e+10, -6.02206307e+10,
+ -4.34128069e+11, -7.36984695e+11, -2.23203143e+11,
+  6.56740815e+11,  1.40195492e+12, -6.50991546e+10,
+  1.64966431e+11,  4.34421272e+11,  6.47670884e+10,
+  2.44157356e+10, -1.07992730e+11,  2.24564280e+11,
+ -3.04272562e+10, -1.39616091e+11,  3.09189976e+10,
+ -3.23748072e+10, -2.09279922e+10, -5.59853491e+11,
+  9.36194643e+10,  7.65998486e+10, -5.77601119e+11,
+  2.92728877e+10,  3.14800157e+10,  3.14543861e+10,
+ -6.19572817e+10, -5.88793091e+10,  1.08121328e+10,
+ -9.87964535e+09, -6.02206307e+10,  7.70360435e+10,
+ -2.56910788e+11, -2.23203143e+11, -4.02976629e+11,
+ -8.16178375e+10, -6.50991546e+10,  1.51957659e+12,
+  1.12967809e+11,  6.47670884e+10,  3.90219017e+11,
+  1.92718403e+11,  2.24564280e+11, -4.04297886e+11,
+  1.41617951e+10,  3.09189976e+10, -8.43690419e+10,
+ -3.27406977e+11, -3.58266405e+10, -1.14846242e+11,
+  7.95730371e+10, -7.67652780e+10,  4.79024142e+10,
+ -1.19071391e+10,  6.22561142e+10, -3.62572653e+10,
+ -3.22925718e+11, -5.74029189e+09, -8.83327493e+10,
+ -2.49889410e+11, -3.10663177e+10, -7.33658238e+10,
+ -5.51910015e+11, -3.31945132e+11, -1.04698326e+11,
+  3.38393444e+11,  1.64966431e+11,  1.12967809e+11,
+  1.31141204e+12,  1.23926458e+11,  3.32914096e+11,
+ -6.26226600e+11,  2.47475905e+11, -2.25050603e+11,
+  3.60887342e+11, -1.17281247e+11,  1.48766690e+11,
+ -3.58266405e+10, -4.64117178e+11,  6.84864638e+10,
+ -7.67652780e+10,  1.29553761e+11, -1.26591592e+11,
+  6.22561142e+10, -2.38293966e+10,  8.52080054e+10,
+ -5.74029189e+09, -4.10305623e+11,  1.11266648e+11,
+ -3.10663177e+10, -2.30487506e+11,  7.81937180e+09,
+ -3.31945132e+11, -4.91827419e+11, -3.22783678e+11,
+  1.64966431e+11,  4.34421272e+11,  6.47670884e+10,
+  1.23926458e+11,  1.60701662e+12, -2.64550313e+11,
+  2.47475905e+11, -9.92458260e+11,  6.53136619e+11,
+ -1.17281247e+11,  4.42033730e+11, -2.76758613e+11,
+ -1.14846242e+11,  6.84864638e+10, -5.09095160e+11,
+  4.79024142e+10, -1.26591592e+11,  1.94445962e+11,
+ -3.62572653e+10,  8.52080054e+10, -1.29228969e+11,
+ -8.83327493e+10,  1.11266648e+11, -5.16970075e+11,
+ -7.33658238e+10,  7.81937180e+09, -2.93644299e+11,
+ -1.04698326e+11, -3.22783678e+11, -2.22817271e+11,
+  1.12967809e+11,  6.47670884e+10,  3.90219017e+11,
+  3.32914096e+11, -2.64550313e+11,  1.69650893e+12,
+ -2.25050603e+11,  6.53136619e+11, -1.33623672e+12,
+  1.48766690e+11, -2.76758613e+11,  7.26818588e+11,
+  1.90099476e+11, -7.46675761e+10,  1.18407263e+10,
+ -2.15276680e+11,  8.00666055e+10, -1.77270676e+11,
+  2.38104621e+11, -5.73710641e+10, -4.42540169e+09,
+  3.17445492e+11, -1.22169413e+11,  1.00263616e+11,
+ -1.71088244e+11, -6.30056465e+10,  1.74314405e+11,
+ -5.96253782e+11, -1.03426849e+11, -1.13624994e+11,
+ -3.12949675e+10,  2.44157356e+10,  1.92718403e+11,
+ -6.26226600e+11,  2.47475905e+11, -2.25050603e+11,
+  1.97967373e+12, -2.24128696e+11,  2.63978666e+11,
+ -1.08518305e+12,  2.92810999e+11, -2.22744142e+11,
+ -7.46675761e+10,  3.28253126e+11, -2.44433188e+11,
+  8.00666055e+10, -3.89057716e+11,  1.34140735e+11,
+ -5.73710641e+10,  4.92506284e+11, -2.94720961e+11,
+ -1.22169413e+11,  7.48622075e+11, -4.24857358e+11,
+ -6.30056465e+10, -2.28430845e+11,  1.98763507e+11,
+ -1.03426849e+11, -7.11586437e+11,  1.31379586e+11,
+  2.44157356e+10, -1.07992730e+11,  2.24564280e+11,
+  2.47475905e+11, -9.92458260e+11,  6.53136619e+11,
+ -2.24128696e+11,  3.09010212e+12, -1.54522896e+12,
+  2.92810999e+11, -2.22995762e+12,  1.16725574e+12,
+  1.18407263e+10, -2.44433188e+11,  4.97279724e+11,
+ -1.77270676e+11,  1.34140735e+11, -2.74232321e+11,
+ -4.42540169e+09, -2.94720961e+11,  5.35392012e+11,
+  1.00263616e+11, -4.24857358e+11,  7.55013813e+11,
+  1.74314405e+11,  1.98763507e+11, -4.10328847e+11,
+ -1.13624994e+11,  1.31379586e+11, -7.44361231e+11,
+  1.92718403e+11,  2.24564280e+11, -4.04297886e+11,
+ -2.25050603e+11,  6.53136619e+11, -1.33623672e+12,
+  2.63978666e+11, -1.54522896e+12,  3.55709452e+12,
+ -2.22744142e+11,  1.16725574e+12, -2.17532306e+12,
+ -1.29665315e+11,  3.07330418e+10, -7.01133548e+10,
+  2.59728633e+11, -5.81352446e+10,  7.21969464e+10,
+ -1.11833868e+12, -1.30115106e+11, -3.60722383e+11,
+ -9.02460510e+11,  3.58283248e+10, -1.61793411e+11,
+ -1.69626626e+11,  4.76576773e+10, -1.80076276e+11,
+  4.00702141e+11,  3.04215606e+10,  1.61968884e+11,
+ -1.22806992e+11, -3.04272562e+10,  1.41617951e+10,
+  3.60887342e+11, -1.17281247e+11,  1.48766690e+11,
+ -1.08518305e+12,  2.92810999e+11, -2.22744142e+11,
+  2.50676306e+12, -1.01492749e+11,  5.98355251e+11,
+  3.07330418e+10, -1.44338150e+11,  8.31202909e+10,
+ -5.81352446e+10,  4.36495348e+11, -2.13317675e+11,
+ -1.30115106e+11, -1.25472106e+12,  2.20182976e+11,
+  3.58283248e+10, -1.56780490e+12,  6.70317037e+11,
+  4.76576773e+10,  4.56166756e+10, -5.84413625e+10,
+  3.04215606e+10,  3.80186919e+11, -1.27382836e+11,
+ -3.04272562e+10, -1.39616091e+11,  3.09189976e+10,
+ -1.17281247e+11,  4.42033730e+11, -2.76758613e+11,
+  2.92810999e+11, -2.22995762e+12,  1.16725574e+12,
+ -1.01492749e+11,  4.03210515e+12, -1.49589456e+12,
+ -7.01133548e+10,  8.31202909e+10, -2.60680607e+11,
+  7.21969464e+10, -2.13317675e+11,  4.57953800e+11,
+ -3.60722383e+11,  2.20182976e+11, -1.31381251e+12,
+ -1.61793411e+11,  6.70317037e+11, -1.52219420e+12,
+ -1.80076276e+11, -5.84413625e+10, -1.84224621e+11,
+  1.61968884e+11, -1.27382836e+11,  5.50793300e+11,
+  1.41617951e+10,  3.09189976e+10, -8.43690419e+10,
+  1.48766690e+11, -2.76758613e+11,  7.26818588e+11,
+ -2.22744142e+11,  1.16725574e+12, -2.17532306e+12,
+  5.98355251e+11, -1.49589456e+12,  3.80503835e+12,
+};
+
+pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::ElasticityImplicitLgDeformData3DQuadratic(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;
+  gravityVec = const_cast<double*>(_gravityVec);
+  vertices = const_cast<double*>(_vertices);
+  cells = const_cast<int*>(_cells);
+  verticesRef = const_cast<double*>(_verticesRef);
+  quadPts = const_cast<double*>(_quadPts);
+  quadWts = const_cast<double*>(_quadWts);
+  basis = const_cast<double*>(_basis);
+  basisDerivRef = const_cast<double*>(_basisDerivRef);
+  fieldTIncr = const_cast<double*>(_fieldTIncr);
+  fieldT = const_cast<double*>(_fieldT);
+  fieldTmdt = const_cast<double*>(_fieldTmdt);
+  valsResidual = const_cast<double*>(_valsResidual);
+  valsJacobian = const_cast<double*>(_valsJacobian);
+} // constructor
+
+pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic::~ElasticityImplicitLgDeformData3DQuadratic(void)
+{}
+
+
+// End of file

Added: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.hh	                        (rev 0)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/ElasticityImplicitLgDeformData3DQuadratic.hh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+//                           Brad T. Aagaard
+//                        U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+// DO NOT EDIT THIS FILE
+// This file was generated from python application integratorelasticitylgdeform.
+
+#if !defined(pylith_feassemble_elasticityimplicitlgdeformdata3dquadratic_hh)
+#define pylith_feassemble_elasticityimplicitlgdeformdata3dquadratic_hh
+
+#include "IntegratorData.hh"
+
+namespace pylith {
+  namespace feassemble {
+     class ElasticityImplicitLgDeformData3DQuadratic;
+  } // pylith
+} // feassemble
+
+class pylith::feassemble::ElasticityImplicitLgDeformData3DQuadratic : public IntegratorData
+{
+
+public: 
+
+  /// Constructor
+  ElasticityImplicitLgDeformData3DQuadratic(void);
+
+  /// Destructor
+  ~ElasticityImplicitLgDeformData3DQuadratic(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 _gravityVec[];
+
+  static const double _vertices[];
+
+  static const int _cells[];
+
+  static const double _verticesRef[];
+
+  static const double _quadPts[];
+
+  static const double _quadWts[];
+
+  static const double _basis[];
+
+  static const double _basisDerivRef[];
+
+  static const double _fieldTIncr[];
+
+  static const double _fieldT[];
+
+  static const double _fieldTmdt[];
+
+  static const double _valsResidual[];
+
+  static const double _valsJacobian[];
+
+};
+
+#endif // pylith_feassemble_elasticityimplicitlgdeformdata3dquadratic_hh
+
+// End of file

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/IntegratorElasticityLgDeform.py
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/IntegratorElasticityLgDeform.py	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/IntegratorElasticityLgDeform.py	2009-11-19 00:50:54 UTC (rev 16001)
@@ -70,14 +70,10 @@
         BL1 = self._calculateBasisDerivMatLinear1(basisDeriv, iQuad, fieldTpdt)
         BL = BL0 + BL1
         cellK[:] += wt * numpy.dot(numpy.dot(BL.transpose(), D), BL)
-        print "Kl",wt * numpy.dot(numpy.dot(BL.transpose(), D), BL)
         BNL = self._calculateBasisDerivMatNonlinear(basisDeriv, iQuad)
         strain = self._calculateStrain(basisDeriv, iQuad, fieldTpdt)
         S = self._calculateStress(strain, D)
-        print "strain",strain
-        print "S",S
         cellK[:] += wt * numpy.dot(numpy.dot(BNL.transpose(), S), BNL)
-        print "K",cellK
       feutils.assembleMat(K, cellK, cell, self.spaceDim)
     return K
 
@@ -227,11 +223,55 @@
 
   def _calculateStrain(self, basisDeriv, iQuad, disp):
     """
-    Calculte Green-Lagrange strain.
+    Calculte Green-Lagrange strain. Shear strains are twice the
+    Green-Lagrance values for compatibility with computing the strains
+    using the B matrix in the infinitesimal strain case.
     """
     if 3 == self.spaceDim:
       strain = numpy.zeros( (1,6), dtype=numpy.float64)
 
+      l11 = 0.0
+      l12 = 0.0
+      l13 = 0.0
+      l21 = 0.0
+      l22 = 0.0
+      l23 = 0.0
+      l31 = 0.0
+      l32 = 0.0
+      l33 = 0.0
+      for kBasis in xrange(self.numBasis):
+        l11 += basisDeriv[iQuad, kBasis, 0]*disp[kBasis*self.spaceDim  ]
+        l12 += basisDeriv[iQuad, kBasis, 1]*disp[kBasis*self.spaceDim  ]
+        l13 += basisDeriv[iQuad, kBasis, 2]*disp[kBasis*self.spaceDim  ]
+        l21 += basisDeriv[iQuad, kBasis, 0]*disp[kBasis*self.spaceDim+1]
+        l22 += basisDeriv[iQuad, kBasis, 1]*disp[kBasis*self.spaceDim+1]
+        l23 += basisDeriv[iQuad, kBasis, 2]*disp[kBasis*self.spaceDim+1]
+        l31 += basisDeriv[iQuad, kBasis, 0]*disp[kBasis*self.spaceDim+2]
+        l32 += basisDeriv[iQuad, kBasis, 1]*disp[kBasis*self.spaceDim+2]
+        l33 += basisDeriv[iQuad, kBasis, 2]*disp[kBasis*self.spaceDim+2]
+      strain[0, 0] = 0.5*(l11*l11 + l21*l21 + l31*l31)
+      strain[0, 1] = 0.5*(l12*l12 + l22*l22 + l32*l32)
+      strain[0, 2] = 0.5*(l13*l13 + l23*l23 + l33*l33)
+      strain[0, 3] = (l11*l12 + l21*l22 + l31*l32) # Use 2*e12 (D has mu)
+      strain[0, 4] = (l12*l13 + l22*l23 + l32*l33)
+      strain[0, 5] = (l11*l13 + l21*l23 + l31*l33)
+      for iBasis in xrange(self.numBasis):
+        strain[0, 0] += \
+            basisDeriv[iQuad, iBasis, 0]*disp[iBasis*self.spaceDim  ]
+        strain[0, 1] += \
+            basisDeriv[iQuad, iBasis, 1]*disp[iBasis*self.spaceDim+1]
+        strain[0, 2] += \
+            basisDeriv[iQuad, iBasis, 2]*disp[iBasis*self.spaceDim+2]
+        strain[0, 3] += \
+            (basisDeriv[iQuad, iBasis, 0]*disp[iBasis*self.spaceDim+1] +
+             basisDeriv[iQuad, iBasis, 1]*disp[iBasis*self.spaceDim  ])
+        strain[0, 4] += \
+            (basisDeriv[iQuad, iBasis, 1]*disp[iBasis*self.spaceDim+2] +
+             basisDeriv[iQuad, iBasis, 2]*disp[iBasis*self.spaceDim+1])
+        strain[0, 5] += \
+            (basisDeriv[iQuad, iBasis, 0]*disp[iBasis*self.spaceDim+2] +
+             basisDeriv[iQuad, iBasis, 2]*disp[iBasis*self.spaceDim  ])
+
     elif 2 == self.spaceDim:
       strain = numpy.zeros( (1,3), dtype=numpy.float64)
       l11 = 0.0
@@ -245,15 +285,15 @@
         l22 += basisDeriv[iQuad, kBasis, 1]*disp[kBasis*self.spaceDim+1]
       strain[0, 0] = 0.5*(l11*l11 + l21*l21)
       strain[0, 1] = 0.5*(l12*l12 + l22*l22)
-      strain[0, 2] = 0.5*(l11*l12 + l21*l22)
+      strain[0, 2] = (l11*l12 + l21*l22) # Use 2*e12 (D has mu, not 2*mu)
       for iBasis in xrange(self.numBasis):
         strain[0, 0] += \
             basisDeriv[iQuad, iBasis, 0]*disp[iBasis*self.spaceDim  ]
         strain[0, 1] += \
             basisDeriv[iQuad, iBasis, 1]*disp[iBasis*self.spaceDim+1]
         strain[0, 2] += \
-            0.5*(basisDeriv[iQuad, iBasis, 0]*disp[iBasis*self.spaceDim+1] +
-                 basisDeriv[iQuad, iBasis, 1]*disp[iBasis*self.spaceDim  ])
+            (basisDeriv[iQuad, iBasis, 0]*disp[iBasis*self.spaceDim+1] +
+             basisDeriv[iQuad, iBasis, 1]*disp[iBasis*self.spaceDim  ])
 
     elif 1 == self.spaceDim:
       strain = numpy.zeros( (1,1), dtype=numpy.float64)

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/feutils.py
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/feutils.py	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/feutils.py	2009-11-19 00:50:54 UTC (rev 16001)
@@ -139,7 +139,7 @@
   """
   Assemble cell vector into global vector.
   """
-  (nrows,) = cellVec.shape
+  (nrows,ncols) = cellVec.shape
   for iR in xrange(nrows/fiberDim):
     ibeginL = iR * fiberDim
     iendL = ibeginL + fiberDim

Modified: short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/generate.sh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/generate.sh	2009-11-18 23:05:45 UTC (rev 16000)
+++ short/3D/PyLith/branches/pylith-friction/unittests/libtests/feassemble/data/generate.sh	2009-11-19 00:50:54 UTC (rev 16001)
@@ -341,7 +341,7 @@
   # 1-D ----------------------------------------------------------------
 
   python IntegratorElasticityLgDeform.py \
-    --formulation=ElasticityImplicit \
+    --formulation=ElasticityImplicitLgDeform \
     --data.namespace=pylith,feassemble \
     --data.object=ElasticityImplicitLgDeformData1DLinear \
     --data.parent=IntegratorData \
@@ -351,7 +351,7 @@
     --solution=Solution1DLinear
 
   python IntegratorElasticityLgDeform.py \
-    --formulation=ElasticityImplicit \
+    --formulation=ElasticityImplicitLgDeform \
     --data.namespace=pylith,feassemble \
     --data.object=ElasticityImplicitLgDeformData1DQuadratic \
     --data.parent=IntegratorData \
@@ -385,7 +385,7 @@
   # 2-D ----------------------------------------------------------------
 
   python IntegratorElasticityLgDeform.py \
-    --formulation=ElasticityImplicit \
+    --formulation=ElasticityImplicitLgDeform \
     --data.namespace=pylith,feassemble \
     --data.object=ElasticityImplicitLgDeformData2DLinear \
     --data.parent=IntegratorData \
@@ -395,7 +395,7 @@
     --solution=Solution2DLinear
 
   python IntegratorElasticityLgDeform.py \
-    --formulation=ElasticityImplicit \
+    --formulation=ElasticityImplicitLgDeform \
     --data.namespace=pylith,feassemble \
     --data.object=ElasticityImplicitLgDeformData2DQuadratic \
     --data.parent=IntegratorData \
@@ -429,9 +429,8 @@
 
   # 3-D ----------------------------------------------------------------
 
-if (( 0 )); then
   python IntegratorElasticityLgDeform.py \
-    --formulation=ElasticityImplicit \
+    --formulation=ElasticityImplicitLgDeform \
     --data.namespace=pylith,feassemble \
     --data.object=ElasticityImplicitLgDeformData3DLinear \
     --data.parent=IntegratorData \
@@ -441,7 +440,7 @@
     --solution=Solution3DLinear
 
   python IntegratorElasticityLgDeform.py \
-    --formulation=ElasticityImplicit \
+    --formulation=ElasticityImplicitLgDeform \
     --data.namespace=pylith,feassemble \
     --data.object=ElasticityImplicitLgDeformData3DQuadratic \
     --data.parent=IntegratorData \
@@ -471,7 +470,6 @@
     --material=ElasticIsotropic3D \
     --solution=Solution3DQuadratic
 fi
-fi
 
 fi
 



More information about the CIG-COMMITS mailing list