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

brad at geodynamics.org brad at geodynamics.org
Wed Mar 24 17:15:05 PDT 2010


Author: brad
Date: 2010-03-24 17:15:03 -0700 (Wed, 24 Mar 2010)
New Revision: 16454

Modified:
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataHex8.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataQuad4.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTri3.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/data/absorbingdampers.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc
Log:
Updated unit tests associated with bugfix for missing dispIncr term in integrating residual.

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataHex8.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataHex8.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataHex8.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -122,17 +122,17 @@
   7.5e+06,  1.25e+07,  7.5e+06,
 };
 const double pylith::bc::AbsorbingDampersDataHex8::_valsResidual[] = {
-   -2.75000007e+06,    1.25000003e+06,   -5.50000014e+06,
+   -1.77500004e+07,   -9.16666682e+06,   -4.30000010e+07,
     0.00000000e+00,    0.00000000e+00,    0.00000000e+00,
-   -7.50000018e+06,    2.50000005e+06,   -1.50000004e+07,
+   -4.35000010e+07,   -1.50000003e+07,   -1.02000002e+08,
     0.00000000e+00,    0.00000000e+00,    0.00000000e+00,
-   -4.75000010e+06,    1.25000003e+06,   -9.50000021e+06,
+   -2.57500005e+07,   -5.83333344e+06,   -5.90000012e+07,
     0.00000000e+00,    0.00000000e+00,    0.00000000e+00,
-   -4.25000008e+06,    1.25000002e+06,   -8.50000015e+06,
+   -2.37500004e+07,   -6.66666681e+06,   -5.50000010e+07,
     0.00000000e+00,    0.00000000e+00,    0.00000000e+00,
-   -1.05000002e+07,    2.50000005e+06,   -2.10000004e+07,
+   -5.55000010e+07,   -1.00000002e+07,   -1.26000002e+08,
     0.00000000e+00,    0.00000000e+00,    0.00000000e+00,
-   -6.25000011e+06,    1.25000003e+06,   -1.25000002e+07,
+   -3.17500006e+07,   -3.33333343e+06,   -7.10000013e+07,
     0.00000000e+00,    0.00000000e+00,    0.00000000e+00,
 };
 const double pylith::bc::AbsorbingDampersDataHex8::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataLine2.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -67,9 +67,9 @@
   17.5e+6,
 };
 const double pylith::bc::AbsorbingDampersDataLine2::_valsResidual[] = {
-  12.5e+6*(1.0-1.1)/0.5,
+  -12.5e+6*(1.1+1.2-1.0)/0.5,
   0.0,
-  17.5e+6*(1.2-1.5)/0.5,
+  -17.5e+6*(1.5+1.8-1.2)/0.5,
 };
 const double pylith::bc::AbsorbingDampersDataLine2::_valsJacobian[] = {
   12.5e+6/0.5, 0.0, 0.0,

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataQuad4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataQuad4.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataQuad4.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -78,12 +78,12 @@
   1.25e+07, 7.5e+06,
 };
 const double pylith::bc::AbsorbingDampersDataQuad4::_valsResidual[] = {
-  -3.75000000e+06,    7.50000000e+05,
-  -3.75000000e+06,    7.50000000e+05,
+  -3.75000000e+07,   -2.92500000e+07,
+  -3.75000000e+07,   -2.92500000e+07,
   0.0, 0.0, 
   0.0, 0.0,
-  -1.37500000e+07,   -6.75000000e+06,
-  -1.37500000e+07,   -6.75000000e+06,
+  -7.75000000e+07,   -5.02500000e+07,
+  -7.75000000e+07,   -5.02500000e+07,
 };
 const double pylith::bc::AbsorbingDampersDataQuad4::_valsJacobian[] = {
   1.25e+07, 0.0, // 0x

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTet4.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -73,10 +73,10 @@
   1.25e+07,  7.5e+06,  7.5e+06
 };
 const double pylith::bc::AbsorbingDampersDataTet4::_valsResidual[] = {
-  -1.11111111e+06,    4.16666667e+05,   -1.33333333e+06,
+  -8.19444444e+06, -4.58333333e+06, -1.23333333e+07,
   0.0,              0.0,             0.0,
-  -1.11111111e+06,    4.16666667e+05,   -1.33333333e+06,
-  -1.11111111e+06,    4.16666667e+05,   -1.33333333e+06,
+  -8.19444444e+06, -4.58333333e+06, -1.23333333e+07,
+  -8.19444444e+06, -4.58333333e+06, -1.23333333e+07,
   0.0,              0.0,             0.0,  
 };
 const double pylith::bc::AbsorbingDampersDataTet4::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTri3.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/AbsorbingDampersDataTri3.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -72,9 +72,9 @@
 };
 const double pylith::bc::AbsorbingDampersDataTri3::_valsResidual[] = {
   0.0, 0.0,
-  -6.00000000e+06,   -1.00000000e+06,
+  -4.20000000e+07,   -1.30000000e+07,
   0.0, 0.0,
-  -6.00000000e+06,   -1.00000000e+06,
+  -4.20000000e+07,   -1.30000000e+07,
 };
 const double pylith::bc::AbsorbingDampersDataTri3::_valsJacobian[] = {
   0.0, 0.0, // 0x

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/absorbingdampers.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/absorbingdampers.py	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/absorbingdampers.py	2010-03-25 00:15:03 UTC (rev 16454)
@@ -31,16 +31,16 @@
   edgeLen = 2.0**0.5
   N0 = 0.5
   N1 = 0.5
-  dispX = 0.5*(N0+N1)*(N0*(1.1-1.3)+N1*(1.3-1.7)) / (2.0*dt)
-  dispY = 0.5*(N0+N1)*(N0*(1.8-2.1)+N1*(2.2-2.3)) / (2.0*dt)
+  velX = 0.5*(N0+N1)*(N0*(1.3+1.5-1.1)+N1*(1.7+2.1-1.3)) / (2.0*dt)
+  velY = 0.5*(N0+N1)*(N0*(2.1+2.4-1.8)+N1*(2.3+2.4-2.2)) / (2.0*dt)
   normal = [0.5**0.5, -0.5**0.5]
 
   constNormal = density*vp
   constTangential = density*vs
   dampingConsts = [abs(constNormal*normal[0] - constTangential*normal[1]),
                    abs(constNormal*normal[1] + constTangential*normal[0])]
-  residualX = dampingConsts[0]*dispX*edgeLen
-  residualY = dampingConsts[1]*dispY*edgeLen
+  residualX = -dampingConsts[0]*velX*edgeLen
+  residualY = -dampingConsts[1]*velY*edgeLen
   residual = [residualX, residualY,
               residualX, residualY]
 
@@ -78,12 +78,12 @@
   dt = 0.25
   N0 = 0.5
   N1 = 0.5
-  disp1X = 0.5*(N0+N1)*(N0*(1.1-1.3) + N1*(1.0-1.1)) / (2.0*dt)
-  disp1Y = 0.5*(N0+N1)*(N0*(1.8-2.1) + N1*(2.4-2.0)) / (2.0*dt)
+  vel1X = 0.5*(N0+N1)*(N0*(1.3+1.5-1.1) + N1*(1.1+1.2-1.0)) / (2.0*dt)
+  vel1Y = 0.5*(N0+N1)*(N0*(2.1+2.4-1.8) + N1*(2.0+1.6-2.4)) / (2.0*dt)
   normal1 = [-1.0, 0.0]
 
-  disp2X = 0.5*(N0+N1)*(N0*(1.4-1.9) + N1*(1.5-2.1)) / (2.0*dt)
-  disp2Y = 0.5*(N0+N1)*(N0*(2.4-2.4) + N1*(1.6-2.5)) / (2.0*dt)
+  vel2X = 0.5*(N0+N1)*(N0*(1.9+2.4-1.4) + N1*(2.1+2.7-1.5)) / (2.0*dt)
+  vel2Y = 0.5*(N0+N1)*(N0*(2.4+2.4-2.4) + N1*(2.5+3.4-1.6)) / (2.0*dt)
   normal2 = [1.0, 0.0]
 
   edgeLen = 2.0
@@ -94,10 +94,10 @@
                    abs(constNormal*normal1[1] + constTangential*normal1[0]),
                    abs(constNormal*normal2[0] - constTangential*normal2[1]),
                    abs(constNormal*normal2[1] + constTangential*normal2[0])]
-  residual1X = dampingConsts[0]*disp1X*edgeLen
-  residual1Y = dampingConsts[1]*disp1Y*edgeLen
-  residual2X = dampingConsts[2]*disp2X*edgeLen
-  residual2Y = dampingConsts[3]*disp2Y*edgeLen
+  residual1X = -dampingConsts[0]*vel1X*edgeLen
+  residual1Y = -dampingConsts[1]*vel1Y*edgeLen
+  residual2X = -dampingConsts[2]*vel2X*edgeLen
+  residual2Y = -dampingConsts[3]*vel2Y*edgeLen
   residual = [residual1X, residual1Y,
               residual1X, residual1Y,
               residual2X, residual2Y,
@@ -119,9 +119,9 @@
   print "damping constants:"
   for v in dampingConsts:
       print "  %16.8e" % v
-  print "disp:"
-  print "  disp1: ",disp1X,"  ",disp1Y
-  print "  disp2: ",disp2X,"  ",disp2Y
+  print "vel:"
+  print "  vel1: ",vel1X,"  ",vel1Y
+  print "  vel2: ",vel2X,"  ",vel2Y
   print "values for residual:"
   for v in residual:
       print "  %16.8e" % v
@@ -145,9 +145,9 @@
   N0 = 1.0/3.0
   N1 = 1.0/3.0
   N2 = 1.0/3.0
-  dispX = (N0+N1+N2)/3.0 * (N0*(1.3-1.7)+N1*(1.2-1.5)+N2*(1.0-1.1)) / (2.0*dt)
-  dispY = (N0+N1+N2)/3.0 * (N0*(2.2-2.3)+N1*(2.4-2.2)+N2*(2.4-2.0)) / (2.0*dt)
-  dispZ = (N0+N1+N2)/3.0 * (N0*(3.6-4.4)+N1*(3.4-4.0)+N2*(3.0-3.2)) / (2.0*dt)
+  velX = (N0+N1+N2)/3.0 * (N0*(1.7+2.1-1.3)+N1*(1.5+1.8-1.2)+N2*(1.1+1.2-1.0)) / (2.0*dt)
+  velY = (N0+N1+N2)/3.0 * (N0*(2.3+2.4-2.2)+N1*(2.2+2.0-2.4)+N2*(2.0+1.6-2.4)) / (2.0*dt)
+  velZ = (N0+N1+N2)/3.0 * (N0*(4.4+5.2-3.6)+N1*(4.0+4.6-3.4)+N2*(3.2+3.4-3.0)) / (2.0*dt)
   normal = [-1.0, 0.0, 0.0]
   tangent1 = [0.0, -1.0, 0.0]
   tangent2 = [0.0, 0.0, 1.0]
@@ -163,9 +163,9 @@
                    abs(constNormal*normal[2] +
                        constTangential*tangent1[2] +
                        constTangential*tangent2[2])]
-  residualX = dampingConsts[0]*dispX*area
-  residualY = dampingConsts[1]*dispY*area
-  residualZ = dampingConsts[2]*dispZ*area
+  residualX = -dampingConsts[0]*velX*area
+  residualY = -dampingConsts[1]*velY*area
+  residualZ = -dampingConsts[2]*velZ*area
   residual = [residualX, residualY, residualZ,
               residualX, residualY, residualZ,
               residualX, residualY, residualZ]
@@ -245,6 +245,18 @@
            [2.9,  0.5,  6.8],
            [3.1,  0.3,  7.2],
            [3.3,  0.1,  7.6]]
+  dispIncr = [[1.2,  1.1,  3.4],
+              [1.5,  1.0,  4.0],
+              [1.8,  0.9,  4.6],
+              [2.1,  0.8,  5.2],
+              [2.4,  0.7,  5.8],
+              [2.7,  0.6,  6.4],
+              [3.0,  0.5,  7.0],
+              [3.3,  0.4,  7.6],
+              [3.6,  0.3,  8.2],
+              [3.9,  0.2,  8.8],
+              [4.2,  0.1,  9.4],
+              [4.5,  0.0, 10.0]]
   normal = [0.0, 1.0, 0.0]
   tangent1 = [-1.0, 0.0, 0.0]
   tangent2 = [0.0, 0.0, 1.0]
@@ -269,25 +281,25 @@
       N1 = b[1]
       N2 = b[2]
       N3 = b[3]
-      d0x = (dispTmdt[cell[0]][0] - dispT[cell[0]][0])/(2.0*dt)
-      d0y = (dispTmdt[cell[0]][1] - dispT[cell[0]][1])/(2.0*dt)
-      d0z = (dispTmdt[cell[0]][2] - dispT[cell[0]][2])/(2.0*dt)
-      d1x = (dispTmdt[cell[1]][0] - dispT[cell[1]][0])/(2.0*dt)
-      d1y = (dispTmdt[cell[1]][1] - dispT[cell[1]][1])/(2.0*dt)
-      d1z = (dispTmdt[cell[1]][2] - dispT[cell[1]][2])/(2.0*dt)
-      d2x = (dispTmdt[cell[2]][0] - dispT[cell[2]][0])/(2.0*dt)
-      d2y = (dispTmdt[cell[2]][1] - dispT[cell[2]][1])/(2.0*dt)
-      d2z = (dispTmdt[cell[2]][2] - dispT[cell[2]][2])/(2.0*dt)
-      d3x = (dispTmdt[cell[3]][0] - dispT[cell[3]][0])/(2.0*dt)
-      d3y = (dispTmdt[cell[3]][1] - dispT[cell[3]][1])/(2.0*dt)
-      d3z = (dispTmdt[cell[3]][2] - dispT[cell[3]][2])/(2.0*dt)
-      dispX = N0*d0x + N1*d1x + N2*d2x + N3*d3x
-      dispY = N0*d0y + N1*d1y + N2*d2y + N3*d3y
-      dispZ = N0*d0z + N1*d1z + N2*d2z + N3*d3z
+      d0x = (dispT[cell[0]][0] + dispIncr[cell[0]][0] - dispTmdt[cell[0]][0])/(2.0*dt)
+      d0y = (dispT[cell[0]][1] + dispIncr[cell[0]][1] - dispTmdt[cell[0]][1])/(2.0*dt)
+      d0z = (dispT[cell[0]][2] + dispIncr[cell[0]][2] - dispTmdt[cell[0]][2])/(2.0*dt)
+      d1x = (dispT[cell[1]][0] + dispIncr[cell[1]][0] - dispTmdt[cell[1]][0])/(2.0*dt)
+      d1y = (dispT[cell[1]][1] + dispIncr[cell[1]][1] - dispTmdt[cell[1]][1])/(2.0*dt)
+      d1z = (dispT[cell[1]][2] + dispIncr[cell[1]][2] - dispTmdt[cell[1]][2])/(2.0*dt)
+      d2x = (dispT[cell[2]][0] + dispIncr[cell[2]][0] - dispTmdt[cell[2]][0])/(2.0*dt)
+      d2y = (dispT[cell[2]][1] + dispIncr[cell[2]][1] - dispTmdt[cell[2]][1])/(2.0*dt)
+      d2z = (dispT[cell[2]][2] + dispIncr[cell[2]][2] - dispTmdt[cell[2]][2])/(2.0*dt)
+      d3x = (dispT[cell[3]][0] + dispIncr[cell[3]][0] - dispTmdt[cell[3]][0])/(2.0*dt)
+      d3y = (dispT[cell[3]][1] + dispIncr[cell[3]][1] - dispTmdt[cell[3]][1])/(2.0*dt)
+      d3z = (dispT[cell[3]][2] + dispIncr[cell[3]][2] - dispTmdt[cell[3]][2])/(2.0*dt)
+      velX = N0*d0x + N1*d1x + N2*d2x + N3*d3x
+      velY = N0*d0y + N1*d1y + N2*d2y + N3*d3y
+      velZ = N0*d0z + N1*d1z + N2*d2z + N3*d3z
 
-      residualX = dampingConsts[0] * dispX * area * jacobianDet
-      residualY = dampingConsts[1] * dispY * area * jacobianDet
-      residualZ = dampingConsts[2] * dispZ * area * jacobianDet
+      residualX = -dampingConsts[0] * velX * area * jacobianDet
+      residualY = -dampingConsts[1] * velY * area * jacobianDet
+      residualZ = -dampingConsts[2] * velZ * area * jacobianDet
       residual[cell[0],:] += N0*numpy.array([residualX,residualY,residualZ])
       residual[cell[1],:] += N1*numpy.array([residualX,residualY,residualZ])
       residual[cell[2],:] += N2*numpy.array([residualX,residualY,residualZ])
@@ -355,8 +367,8 @@
 # ----------------------------------------------------------------------
 #calcTri3()
 #calcQuad4()
-calcTet4()
-#calcHex8()
+#calcTet4()
+calcHex8()
 
   
 # End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -20,6 +20,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES Mesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -209,7 +210,7 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields);
+  topology::Jacobian jacobian(fields.solution());
 
   const double t = 1.0;
   integrator.integrateJacobian(&jacobian, t, &fields);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -21,6 +21,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES SubMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -136,7 +137,7 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields);
+  topology::Jacobian jacobian(fields.solution());
 
   const double t = 1.0;
   integrator.integrateJacobian(&jacobian, t, &fields);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -21,6 +21,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES SubMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -190,7 +191,7 @@
   const int size = residualSection->sizeWithBC();
   CPPUNIT_ASSERT_EQUAL(sizeE, size);
 
-#if 0 // DEBUGGING
+#if 1 // DEBUGGING
   residual.view("RESIDUAL");
   std::cout << "EXPECTED RESIDUAL" << std::endl;
   for (int i=0; i < size; ++i)
@@ -218,7 +219,7 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields);
+  topology::Jacobian jacobian(fields.solution());
 
   const double t = 1.0;
   integrator.integrateJacobian(&jacobian, t, &fields);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -21,6 +21,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES SubMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -193,7 +194,7 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields);
+  topology::Jacobian jacobian(fields.solution());
 
   const double t = 1.0;
   //mesh->getSieve()->setDebug(10);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicitLgDeform.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -21,6 +21,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES SubMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields
 #include "pylith/topology/Jacobian.hh" // USES Jacobian
 
@@ -136,7 +137,7 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields);
+  topology::Jacobian jacobian(fields.solution());
 
   const double t = 1.0;
   integrator.integrateJacobian(&jacobian, t, &fields);

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -49,19 +49,6 @@
 } // testStableTimeStep
 
 // ----------------------------------------------------------------------
-// Test needJacobianDiag().
-void
-pylith::feassemble::TestIntegrator::testNeedJacobianDiag(void)
-{ // testNeedJacobianDiag
-  ElasticityExplicit integrator;
-
-  CPPUNIT_ASSERT_EQUAL(false, integrator.needJacobianDiag());
-
-  integrator._needJacobianDiag = true;
-  CPPUNIT_ASSERT_EQUAL(true, integrator.needJacobianDiag());
-} // testNeedJacobianDiag
-
-// ----------------------------------------------------------------------
 // Test needVelocity().
 void
 pylith::feassemble::TestIntegrator::testNeedVelocity(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh	2010-03-25 00:15:03 UTC (rev 16454)
@@ -42,7 +42,6 @@
 
   CPPUNIT_TEST( testTimeStep );
   CPPUNIT_TEST( testStableTimeStep );  
-  CPPUNIT_TEST( testNeedJacobianDiag );
   CPPUNIT_TEST( testNeedVelocity );
 
   CPPUNIT_TEST( testQuadrature );
@@ -66,9 +65,6 @@
   /// Test stableTimeStep().
   void testStableTimeStep(void);
 
-  /// Test needJacobianDiag().
-  void testNeedJacobianDiag(void);
-
   /// Test needVelocity().
   void testNeedVelocity(void);
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py	2010-03-25 00:15:03 UTC (rev 16454)
@@ -50,9 +50,9 @@
     K = integrator._calculateStiffnessMat()    
     M = integrator._calculateMassMat()
 
-    dispResult = integrator.fieldT - integrator.fieldTmdt
-    residual = 1.0/integrator.dt**2 * numpy.dot(M, dispResult) - \
-        numpy.dot(K, integrator.fieldT)
+    vel = (integrator.fieldT + integrator.fieldTIncr - integrator.fieldTmdt) / (2.0*integrator.dt)
+    acc = (integrator.fieldTIncr - integrator.fieldT + integrator.fieldTmdt) / (integrator.dt**2) 
+    residual = -numpy.dot(M, acc) - numpy.dot(K, integrator.fieldT)
     return residual.flatten()
 
 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -89,8 +89,8 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DLinear::_valsResidual[] = {
-  1.60042187e+10,
- -1.59957812e+10,
+  1.59634375e+10,
+ -1.60365625e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -103,9 +103,9 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsResidual[] = {
-  5.60018750e+10,
-  1.36000938e+11,
- -1.91994375e+11,
+  5.59837500e+10,
+  1.35994063e+11,
+ -1.92044375e+11,
 };
 
 const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -94,9 +94,9 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsResidual[] = {
- -1.66787702e+10,  3.09146039e+10,
- -2.30412532e+09, -2.72121717e+10,
-  1.89841559e+10, -3.70357797e+09,
+ -1.66799924e+10,  3.09147184e+10,
+ -2.30534754e+09, -2.72120571e+10,
+  1.89829337e+10, -3.70346338e+09,
 };
 
 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	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -164,12 +164,12 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsResidual[] = {
-  1.06595078e+10,  9.01579396e+10,
- -2.93254295e+10, -4.67249883e+09,
-  4.90758945e+09,  6.17199466e+10,
-  6.30081264e+10,  1.02122281e+11,
- -6.40775573e+10, -1.84807617e+11,
-  1.48314194e+10, -6.45195820e+10,
+  1.06623444e+10,  9.01607301e+10,
+ -2.93260132e+10, -4.67336895e+09,
+  4.90976768e+09,  6.17209354e+10,
+  6.30184682e+10,  1.02130214e+11,
+ -6.40804431e+10, -1.84811282e+11,
+  1.48296806e+10, -6.45192128e+10,
 };
 
 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	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -100,10 +100,10 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DLinear::_valsResidual[] = {
- -6.07582772e+09,  3.62539077e+10,  3.19640209e+09,
- -4.00897518e+09,  6.66855682e+10,  2.19195434e+10,
-  6.67380053e+09, -1.05592747e+11, -3.14998804e+10,
-  3.41301986e+09,  2.65427945e+09,  6.38292625e+09,
+ -6.07549147e+09,  3.62536555e+10,  3.19732678e+09,
+ -4.00863893e+09,  6.66853160e+10,  2.19204680e+10,
+  6.67413678e+09, -1.05592999e+11, -3.14989558e+10,
+  3.41335611e+09,  2.65402726e+09,  6.38385094e+09,
 };
 
 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	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -181,16 +181,16 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsResidual[] = {
-  2.17446982e+10, -9.08226289e+09,  2.06945299e+10,
-  6.22338118e+10, -2.47879968e+10,  7.42326275e+09,
- -4.60076154e+10, -5.34101030e+10, -3.15162055e+10,
- -1.00555635e+10,  4.19850265e+10, -3.87348834e+10,
- -8.43197122e+09,  6.33093784e+10, -3.41846873e+09,
-  6.62258554e+10,  1.09239192e+11, -3.72807133e+10,
- -9.59444688e+10, -5.29496681e+10, -2.51201133e+10,
- -1.25318752e+10, -6.06765547e+10,  1.03701057e+10,
- -3.24446843e+10,  5.14096428e+10,  7.32828558e+09,
-  5.52108169e+10, -6.50263642e+10,  9.02623199e+10,
+  2.17437265e+10, -9.08080342e+09,  2.06975762e+10,
+  6.22359327e+10, -2.47895200e+10,  7.41921437e+09,
+ -4.60088086e+10, -5.34117841e+10, -3.15185179e+10,
+ -1.00528639e+10,  4.19879745e+10, -3.87318303e+10,
+ -8.42948094e+09,  6.33090926e+10, -3.42127596e+09,
+  6.62259132e+10,  1.09240806e+11, -3.72784405e+10,
+ -9.59434641e+10, -5.29480086e+10, -2.51183364e+10,
+ -1.25307052e+10, -6.06736178e+10,  1.03739115e+10,
+ -3.24399696e+10,  5.14120021e+10,  7.32854437e+09,
+  5.52136379e+10, -6.50240950e+10,  9.02635706e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -89,8 +89,8 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsResidual[] = {
- -2.65245781e+11,
- -2.97245781e+11,
+ -2.65286562e+11,
+ -2.97286562e+11,
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -103,9 +103,9 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsResidual[] = {
- -3.77481250e+10,
-  4.22509375e+10,
- -5.66994375e+11,
+ -3.77662500e+10,
+  4.22440625e+10,
+ -5.67044375e+11,
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -94,9 +94,9 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsResidual[] = {
- -1.66787702e+10,  1.94562705e+10,
- -2.30412532e+09, -3.86705051e+10,
-  1.89841559e+10, -1.51619113e+10,
+ -1.66799924e+10,  1.94563851e+10,
+ -2.30534754e+09, -3.86703905e+10,
+  1.89829337e+10, -1.51617967e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -164,12 +164,12 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsResidual[] = {
-  1.06595078e+10,  4.79704396e+10,
- -2.93254295e+10, -4.45162488e+10,
-  4.90758945e+09,  2.18761966e+10,
-  6.30081264e+10, -1.22877719e+11,
- -6.40775573e+10, -2.36370117e+11,
-  1.48314194e+10, -1.16082082e+11,
+  1.06623444e+10,  4.79732301e+10,
+ -2.93260132e+10, -4.45171190e+10,
+  4.90976768e+09,  2.18771854e+10,
+  6.30184682e+10, -1.22869786e+11,
+ -6.40804431e+10, -2.36373782e+11,
+  1.48296806e+10, -1.16081713e+11,
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -100,10 +100,10 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsResidual[] = {
- -6.07582772e+09,  3.62539077e+10, -3.04285979e+10,
- -4.00897518e+09,  6.66855682e+10, -1.17054566e+10,
-  6.67380053e+09, -1.05592747e+11, -6.51248804e+10,
-  3.41301986e+09,  2.65427945e+09, -2.72420737e+10,
+ -6.07549147e+09,  3.62536555e+10, -3.04276732e+10,
+ -4.00863893e+09,  6.66853160e+10, -1.17045320e+10,
+  6.67413678e+09, -1.05592999e+11, -6.51239558e+10,
+  3.41335611e+09,  2.65402726e+09, -2.72411491e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsJacobian[] = {

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc	2010-03-25 00:14:12 UTC (rev 16453)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc	2010-03-25 00:15:03 UTC (rev 16454)
@@ -181,16 +181,16 @@
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsResidual[] = {
-  2.17446982e+10, -9.08226289e+09, -5.09583471e+09,
-  6.22338118e+10, -2.47879968e+10, -1.65884560e+10,
- -4.60076154e+10, -5.34101030e+10, -5.55279242e+10,
- -1.00555635e+10,  4.19850265e+10, -6.27466022e+10,
- -8.43197122e+09,  6.33093784e+10, -1.24366385e+11,
-  6.62258554e+10,  1.09239192e+11, -1.20877067e+11,
- -9.59444688e+10, -5.29496681e+10, -1.08716467e+11,
- -1.25318752e+10, -6.06765547e+10, -7.32262485e+10,
- -3.24446843e+10,  5.14096428e+10, -1.13619631e+11,
-  5.52108169e+10, -6.50263642e+10, -3.06855968e+10,
+  2.17437265e+10, -9.08080342e+09, -5.09278842e+09,
+  6.22359327e+10, -2.47895200e+10, -1.65925044e+10,
+ -4.60088086e+10, -5.34117841e+10, -5.55302367e+10,
+ -1.00528639e+10,  4.19879745e+10, -6.27435491e+10,
+ -8.42948094e+09,  6.33090926e+10, -1.24369193e+11,
+  6.62259132e+10,  1.09240806e+11, -1.20874795e+11,
+ -9.59434641e+10, -5.29480086e+10, -1.08714691e+11,
+ -1.25307052e+10, -6.06736178e+10, -7.32224427e+10,
+ -3.24399696e+10,  5.14120021e+10, -1.13619372e+11,
+  5.52136379e+10, -6.50240950e+10, -3.06843461e+10,
 };
 
 const double pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsJacobian[] = {



More information about the CIG-COMMITS mailing list