[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