fem_check_abc_la.adb running solve a1(x,y) uxx(x,y) + b1(x,y) uxy(x,y) + c1(x,y) uyy(x,y) + d1(x,y) ux(x,y) + e1(x,y) uy(x,y) + f1(x,y) u(x,y) = c(x,y) boundary conditions computed using u(x) user provides a1,b1,c1,d1,e1,f1,c,u in abc_la.adb user provides nx,ny,xmin,xmax,ymin,ymax in abc_la.ads analytic solution may be given by u(x) with ifcheck>0 Gauss-Legendre integration used xmin= -1.00, xmax= 1.00, ymin= -1.00, ymax= 1.00 nx= 6, ny= 5 x grid and analytic solution at ymin i= 1, Ua( -1.00000, -1.00000)= -10.00000 i= 2, Ua( -0.60000, -1.00000)= -5.29600 i= 3, Ua( -0.20000, -1.00000)= -2.12800 i= 4, Ua( 0.20000, -1.00000)= -0.11200 i= 5, Ua( 0.60000, -1.00000)= 1.13600 i= 6, Ua( 1.00000, -1.00000)= 2.00000 y grid and analytic solution at xmin ii= 1, Ua( -1.00000, -1.00000)= -10.00000 ii= 2, Ua( -1.00000, -0.50000)= -2.75000 ii= 3, Ua( -1.00000, 0.00000)= 1.00000 ii= 4, Ua( -1.00000, 0.50000)= 2.75000 ii= 5, Ua( -1.00000, 1.00000)= 4.00000 solution at i= 1, x=-1.000, ii= 1, y=-1.000 is -10.000 solution at i= 1, x=-1.000, ii= 2, y=-0.500 is -2.750 solution at i= 1, x=-1.000, ii= 3, y= 0.000 is 1.000 solution at i= 1, x=-1.000, ii= 4, y= 0.500 is 2.750 solution at i= 1, x=-1.000, ii= 5, y= 1.000 is 4.000 solution at i= 2, x=-0.600, ii= 1, y=-1.000 is -5.296 solution at i= 2, x=-0.600, ii= 2, y=-0.500 is 0.794 solution at i= 2, x=-0.600, ii= 3, y= 0.000 is 4.184 solution at i= 2, x=-0.600, ii= 4, y= 0.500 is 6.374 solution at i= 2, x=-0.600, ii= 5, y= 1.000 is 8.864 solution at i= 3, x=-0.200, ii= 1, y=-1.000 is -2.128 solution at i= 3, x=-0.200, ii= 2, y=-0.500 is 3.282 solution at i= 3, x=-0.200, ii= 3, y= 0.000 is 6.792 solution at i= 3, x=-0.200, ii= 4, y= 0.500 is 9.902 solution at i= 3, x=-0.200, ii= 5, y= 1.000 is 14.112 solution at i= 4, x= 0.200, ii= 1, y=-1.000 is -0.112 solution at i= 4, x= 0.200, ii= 2, y=-0.500 is 5.098 solution at i= 4, x= 0.200, ii= 3, y= 0.000 is 9.208 solution at i= 4, x= 0.200, ii= 4, y= 0.500 is 13.718 solution at i= 4, x= 0.200, ii= 5, y= 1.000 is 20.128 solution at i= 5, x= 0.600, ii= 1, y=-1.000 is 1.136 solution at i= 5, x= 0.600, ii= 2, y=-0.500 is 6.626 solution at i= 5, x= 0.600, ii= 3, y= 0.000 is 11.816 solution at i= 5, x= 0.600, ii= 4, y= 0.500 is 18.206 solution at i= 5, x= 0.600, ii= 5, y= 1.000 is 27.296 solution at i= 6, x= 1.000, ii= 1, y=-1.000 is 2.000 solution at i= 6, x= 1.000, ii= 2, y=-0.500 is 8.250 solution at i= 6, x= 1.000, ii= 3, y= 0.000 is 15.000 solution at i= 6, x= 1.000, ii= 4, y= 0.500 is 23.750 solution at i= 6, x= 1.000, ii= 5, y= 1.000 is 36.000 boundary i= 1, x=-1.000, ii= 1, y=-1.000 is -1.00000000000000E+01 boundary i= 1, x=-1.000, ii= 5, y= 1.000 is 4.00000000000000E+00 boundary i= 2, x=-0.600, ii= 1, y=-1.000 is -5.29600000000000E+00 boundary i= 2, x=-0.600, ii= 5, y= 1.000 is 8.86400000000000E+00 boundary i= 3, x=-0.200, ii= 1, y=-1.000 is -2.12800000000000E+00 boundary i= 3, x=-0.200, ii= 5, y= 1.000 is 1.41120000000000E+01 boundary i= 4, x= 0.200, ii= 1, y=-1.000 is -1.11999999999998E-01 boundary i= 4, x= 0.200, ii= 5, y= 1.000 is 2.01280000000000E+01 boundary i= 5, x= 0.600, ii= 1, y=-1.000 is 1.13600000000000E+00 boundary i= 5, x= 0.600, ii= 5, y= 1.000 is 2.72960000000000E+01 boundary i= 6, x= 1.000, ii= 1, y=-1.000 is 2.00000000000000E+00 boundary i= 6, x= 1.000, ii= 5, y= 1.000 is 3.60000000000000E+01 boundary i= 1, x=-1.000, ii= 1, y=-1.000 is -1.00000000000000E+01 boundary i= 6, x= 1.000, ii= 1, y=-1.000 is 2.00000000000000E+00 boundary i= 1, x=-1.000, ii= 2, y=-0.500 is -2.75000000000000E+00 boundary i= 6, x= 1.000, ii= 2, y=-0.500 is 8.25000000000000E+00 boundary i= 1, x=-1.000, ii= 3, y= 0.000 is 1.00000000000000E+00 boundary i= 6, x= 1.000, ii= 3, y= 0.000 is 1.50000000000000E+01 boundary i= 1, x=-1.000, ii= 4, y= 0.500 is 2.75000000000000E+00 boundary i= 6, x= 1.000, ii= 4, y= 0.500 is 2.37500000000000E+01 boundary i= 1, x=-1.000, ii= 5, y= 1.000 is 4.00000000000000E+00 boundary i= 6, x= 1.000, ii= 5, y= 1.000 is 3.60000000000000E+01 calling gaulegf npx= 48 calling gaulegf npy= 48 compute stiffness matrix solution ug computed Galerkin, Ua analytic, error ug( 1, 1)=-10.00000, Ua=-10.00000, err= -0.00000 ug( 1, 2)= -2.75000, Ua= -2.75000, err= -0.00000 ug( 1, 3)= 1.00000, Ua= 1.00000, err= 0.00000 ug( 1, 4)= 2.75000, Ua= 2.75000, err= 0.00000 ug( 1, 5)= 4.00000, Ua= 4.00000, err= 0.00000 ug( 2, 1)= -5.29600, Ua= -5.29600, err= -0.00000 ug( 2, 2)= 0.79400, Ua= 0.79400, err= -0.00000 ug( 2, 3)= 4.18400, Ua= 4.18400, err= 0.00000 ug( 2, 4)= 6.37400, Ua= 6.37400, err= -0.00000 ug( 2, 5)= 8.86400, Ua= 8.86400, err= 0.00000 ug( 3, 1)= -2.12800, Ua= -2.12800, err= -0.00000 ug( 3, 2)= 3.28200, Ua= 3.28200, err= 0.00000 ug( 3, 3)= 6.79200, Ua= 6.79200, err= 0.00000 ug( 3, 4)= 9.90200, Ua= 9.90200, err= 0.00000 ug( 3, 5)= 14.11200, Ua= 14.11200, err= 0.00000 ug( 4, 1)= -0.11200, Ua= -0.11200, err= 0.00000 ug( 4, 2)= 5.09800, Ua= 5.09800, err= 0.00000 ug( 4, 3)= 9.20800, Ua= 9.20800, err= 0.00000 ug( 4, 4)= 13.71800, Ua= 13.71800, err= 0.00000 ug( 4, 5)= 20.12800, Ua= 20.12800, err= 0.00000 ug( 5, 1)= 1.13600, Ua= 1.13600, err= -0.00000 ug( 5, 2)= 6.62600, Ua= 6.62600, err= 0.00000 ug( 5, 3)= 11.81600, Ua= 11.81600, err= 0.00000 ug( 5, 4)= 18.20600, Ua= 18.20600, err= 0.00000 ug( 5, 5)= 27.29600, Ua= 27.29600, err= 0.00000 ug( 6, 1)= 2.00000, Ua= 2.00000, err= 0.00000 ug( 6, 2)= 8.25000, Ua= 8.25000, err= 0.00000 ug( 6, 3)= 15.00000, Ua= 15.00000, err= 0.00000 ug( 6, 4)= 23.75000, Ua= 23.75000, err= 0.00000 ug( 6, 5)= 36.00000, Ua= 36.00000, err= 0.00000 maxerr= 1.70530256582424E-13, avgerr= 3.01943655263888E-14 end fem_check_abc_la.adb