pde22_eq.adb running differential equation to solve d^2u/dx^2 + d^2u/dy^2 = c(x,y) Uxx(X,Y) := 2^16 * 12*X^2 * (1-X)^4 * Y^4 * (1-Y)^4 - 32*X^3 * (1-X)^3 * Y^4 * (1-Y)^4 + 12*X^4 * (1-X)^2 * Y^4 * (1-Y)^4; Uyy(X,Y) := 2^16 * 12*X^4 * (1-X)^4 * Y^2 * (1-Y)^4 - 32*X^4 * (1-X)^4 * Y^3 * (1-Y)^3 + 12*X^4 * (1-X)^4 * Y^4 * (1-Y)^2; c(x,y) := Uxx(x,y) + Uyy(x,y); uniform grid on rectangle 0,1 to 0,1 known Solution, for testing method u(x,y) = 2^16*x^4*(1-x)^4*y^4*(1-y)4 xg( 1)= 0.00000000000000E+00 xg( 2)= 1.11111111111111E-01 xg( 3)= 2.22222222222222E-01 xg( 4)= 3.33333333333333E-01 xg( 5)= 4.44444444444444E-01 xg( 6)= 5.55555555555556E-01 xg( 7)= 6.66666666666667E-01 xg( 8)= 7.77777777777778E-01 xg( 9)= 8.88888888888889E-01 xg( 10)= 1.00000000000000E+00 yg( 1)= 0.00000000000000E+00 yg( 2)= 1.11111111111111E-01 yg( 3)= 2.22222222222222E-01 yg( 4)= 3.33333333333333E-01 yg( 5)= 4.44444444444444E-01 yg( 6)= 5.55555555555556E-01 yg( 7)= 6.66666666666667E-01 yg( 8)= 7.77777777777778E-01 yg( 9)= 8.88888888888889E-01 yg( 10)= 1.00000000000000E+00 xmin= 0.000, xmax= 1.000, hx= 0.111, nx= 10 ymin= 0.000, ymax= 1.000, hy= 0.111, ny= 10 u(0.5,0.5)= 1.000000 c(0.5,0.5)= -64.000000 internal cells zeroed matrix initialized check_soln against PDE check soln against PDE max error= 1.46917478183184E-11 exact solution u, computed us, error xg( 1)= 0.000, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 2)= 0.111, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 3)= 0.222, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 4)= 0.333, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 5)= 0.444, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 6)= 0.556, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 7)= 0.667, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 8)= 0.778, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 9)= 0.889, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 2)= 0.111, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 2)= 0.111, yg( 2)= 0.111, u= 0.00059, us= 0.00059, err= 4.72942278855669E-12 xg( 2)= 0.111, yg( 3)= 0.222, u= 0.00557, us= 0.00557, err= 7.68390754627538E-12 xg( 2)= 0.111, yg( 4)= 0.333, u= 0.01521, us= 0.01521, err= 1.13233320560725E-11 xg( 2)= 0.111, yg( 5)= 0.444, u= 0.02318, us= 0.02318, err= 1.32520972751719E-11 xg( 2)= 0.111, yg( 6)= 0.556, u= 0.02318, us= 0.02318, err= 1.10202124576269E-11 xg( 2)= 0.111, yg( 7)= 0.667, u= 0.01521, us= 0.01521, err= 4.62607312821787E-12 xg( 2)= 0.111, yg( 8)= 0.778, u= 0.00557, us= 0.00557, err= 2.88549818474055E-12 xg( 2)= 0.111, yg( 9)= 0.889, u= 0.00059, us= 0.00059, err= 7.84688510684631E-12 xg( 2)= 0.111, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 3)= 0.222, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 3)= 0.222, yg( 2)= 0.111, u= 0.00557, us= 0.00557, err= 7.68235149931743E-12 xg( 3)= 0.222, yg( 3)= 0.222, u= 0.05219, us= 0.05219, err= 6.04811165071713E-12 xg( 3)= 0.222, yg( 4)= 0.333, u= 0.14263, us= 0.14263, err= 4.65912834842711E-12 xg( 3)= 0.222, yg( 5)= 0.444, u= 0.21739, us= 0.21739, err= 2.14625180421004E-12 xg( 3)= 0.222, yg( 6)= 0.556, u= 0.21739, us= 0.21739, err= 2.27759835731006E-12 xg( 3)= 0.222, yg( 7)= 0.667, u= 0.14263, us= 0.14263, err= 9.20571736515944E-12 xg( 3)= 0.222, yg( 8)= 0.778, u= 0.05219, us= 0.05219, err= 1.68110385976986E-11 xg( 3)= 0.222, yg( 9)= 0.889, u= 0.00557, us= 0.00557, err= 2.53207645564472E-11 xg( 3)= 0.222, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 4)= 0.333, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 4)= 0.333, yg( 2)= 0.111, u= 0.01521, us= 0.01521, err= 1.13257658688741E-11 xg( 4)= 0.333, yg( 3)= 0.222, u= 0.14263, us= 0.14263, err= 4.65893400518769E-12 xg( 4)= 0.333, yg( 4)= 0.333, u= 0.38974, us= 0.38974, err= 1.29335425832697E-13 xg( 4)= 0.333, yg( 5)= 0.444, u= 0.59403, us= 0.59403, err= 5.43719886822447E-12 xg( 4)= 0.333, yg( 6)= 0.556, u= 0.59403, us= 0.59403, err= 1.17191738084610E-11 xg( 4)= 0.333, yg( 7)= 0.667, u= 0.38974, us= 0.38974, err= 2.06534921543683E-11 xg( 4)= 0.333, yg( 8)= 0.778, u= 0.14263, us= 0.14263, err= 3.04940114094010E-11 xg( 4)= 0.333, yg( 9)= 0.889, u= 0.01521, us= 0.01521, err= 4.76150296533872E-11 xg( 4)= 0.333, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 5)= 0.444, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 5)= 0.444, yg( 2)= 0.111, u= 0.02318, us= 0.02318, err= 1.32522638103197E-11 xg( 5)= 0.444, yg( 3)= 0.222, u= 0.21739, us= 0.21739, err= 2.14647386236749E-12 xg( 5)= 0.444, yg( 4)= 0.333, u= 0.59403, us= 0.59403, err= 5.43819790631631E-12 xg( 5)= 0.444, yg( 5)= 0.444, u= 0.90540, us= 0.90540, err= 1.28140412235071E-11 xg( 5)= 0.444, yg( 6)= 0.556, u= 0.90540, us= 0.90540, err= 2.01903629449066E-11 xg( 5)= 0.444, yg( 7)= 0.667, u= 0.59403, us= 0.59403, err= 3.01456320301284E-11 xg( 5)= 0.444, yg( 8)= 0.778, u= 0.21739, us= 0.21739, err= 4.10584985200422E-11 xg( 5)= 0.444, yg( 9)= 0.889, u= 0.02318, us= 0.02318, err= 6.47033909063162E-11 xg( 5)= 0.444, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 6)= 0.556, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 6)= 0.556, yg( 2)= 0.111, u= 0.02318, us= 0.02318, err= 1.10242404889263E-11 xg( 6)= 0.556, yg( 3)= 0.222, u= 0.21739, us= 0.21739, err= 2.27737631270514E-12 xg( 6)= 0.556, yg( 4)= 0.333, u= 0.59403, us= 0.59403, err= 1.17200618242504E-11 xg( 6)= 0.556, yg( 5)= 0.444, u= 0.90540, us= 0.90540, err= 2.01912511775364E-11 xg( 6)= 0.556, yg( 6)= 0.556, u= 0.90540, us= 0.90540, err= 2.75664626759112E-11 xg( 6)= 0.556, yg( 7)= 0.667, u= 0.59403, us= 0.59403, err= 3.64267187919452E-11 xg( 6)= 0.556, yg( 8)= 0.778, u= 0.21739, us= 0.21739, err= 4.54787404702848E-11 xg( 6)= 0.556, yg( 9)= 0.889, u= 0.02318, us= 0.02318, err= 6.69275631415929E-11 xg( 6)= 0.556, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 7)= 0.667, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 7)= 0.667, yg( 2)= 0.111, u= 0.01521, us= 0.01521, err= 4.62435227914157E-12 xg( 7)= 0.667, yg( 3)= 0.222, u= 0.14263, us= 0.14263, err= 9.20380225754702E-12 xg( 7)= 0.667, yg( 4)= 0.333, u= 0.38974, us= 0.38974, err= 2.06554350446614E-11 xg( 7)= 0.667, yg( 5)= 0.444, u= 0.59403, us= 0.59403, err= 3.01470754826907E-11 xg( 7)= 0.667, yg( 6)= 0.556, u= 0.59403, us= 0.59403, err= 3.64261637888531E-11 xg( 7)= 0.667, yg( 7)= 0.667, u= 0.38974, us= 0.38974, err= 4.11742627297838E-11 xg( 7)= 0.667, yg( 8)= 0.778, u= 0.14263, us= 0.14263, err= 4.43446184991442E-11 xg( 7)= 0.667, yg( 9)= 0.889, u= 0.01521, us= 0.01521, err= 5.42998558172424E-11 xg( 7)= 0.667, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 8)= 0.778, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 8)= 0.778, yg( 2)= 0.111, u= 0.00557, us= 0.00557, err= 2.86777278068654E-12 xg( 8)= 0.778, yg( 3)= 0.222, u= 0.05219, us= 0.05219, err= 1.68078120154215E-11 xg( 8)= 0.778, yg( 4)= 0.333, u= 0.14263, us= 0.14263, err= 3.04924570700615E-11 xg( 8)= 0.778, yg( 5)= 0.444, u= 0.21739, us= 0.21739, err= 4.10599973346779E-11 xg( 8)= 0.778, yg( 6)= 0.556, u= 0.21739, us= 0.21739, err= 4.54797674130300E-11 xg( 8)= 0.778, yg( 7)= 0.667, u= 0.14263, us= 0.14263, err= 4.43440356185038E-11 xg( 8)= 0.778, yg( 8)= 0.778, u= 0.05219, us= 0.05219, err= 3.96472557949857E-11 xg( 8)= 0.778, yg( 9)= 0.889, u= 0.00557, us= 0.00557, err= 3.58413248116118E-11 xg( 8)= 0.778, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 9)= 0.889, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 9)= 0.889, yg( 2)= 0.111, u= 0.00059, us= 0.00059, err= 7.82842721543399E-12 xg( 9)= 0.889, yg( 3)= 0.222, u= 0.00557, us= 0.00557, err= 2.53141578620890E-11 xg( 9)= 0.889, yg( 4)= 0.333, u= 0.01521, us= 0.01521, err= 4.76157304782834E-11 xg( 9)= 0.889, yg( 5)= 0.444, u= 0.02318, us= 0.02318, err= 6.47076409788323E-11 xg( 9)= 0.889, yg( 6)= 0.556, u= 0.02318, us= 0.02318, err= 6.69293499067731E-11 xg( 9)= 0.889, yg( 7)= 0.667, u= 0.01521, us= 0.01521, err= 5.42959058510406E-11 xg( 9)= 0.889, yg( 8)= 0.778, u= 0.00557, us= 0.00557, err= 3.58383211370662E-11 xg( 9)= 0.889, yg( 9)= 0.889, u= 0.00059, us= 0.00059, err= 2.03516806533084E-11 xg( 9)= 0.889, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 1)= 0.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 2)= 0.111, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 3)= 0.222, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 4)= 0.333, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 5)= 0.444, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 6)= 0.556, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 7)= 0.667, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 8)= 0.778, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 9)= 0.889, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 xg( 10)= 1.000, yg( 10)= 1.000, u= 0.00000, us= 0.00000, err= 0.00000000000000E+00 avg_error= 2.34564032941322E-11, max_error= 6.69293499067731E-11 writing pde22_eq_ada.dat finished writing pde22_eq_ada.dat finished pde22_eq.adb in 0.056952000 seconds