pde2sin_eq.adb running differential equation to solve du/dx + du/dy = c(x,y) c(x,y)=0 uniform grid on rectangle 0,2Pi to 0,2Pi known Solution, for testing method u(x,y) = sin(x-y) do not make nx=ny, this creates a singular matrix xg( 1)= 0.00000000000000E+00 xg( 2)= 5.23598775598299E-01 xg( 3)= 1.04719755119660E+00 xg( 4)= 1.57079632679490E+00 xg( 5)= 2.09439510239320E+00 xg( 6)= 2.61799387799149E+00 xg( 7)= 3.14159265358979E+00 xg( 8)= 3.66519142918809E+00 xg( 9)= 4.18879020478639E+00 xg( 10)= 4.71238898038469E+00 xg( 11)= 5.23598775598299E+00 xg( 12)= 5.75958653158129E+00 xg( 13)= 6.28318530717959E+00 yg( 1)= 0.00000000000000E+00 yg( 2)= 5.71198664289053E-01 yg( 3)= 1.14239732857811E+00 yg( 4)= 1.71359599286716E+00 yg( 5)= 2.28479465715621E+00 yg( 6)= 2.85599332144527E+00 yg( 7)= 3.42719198573432E+00 yg( 8)= 3.99839065002337E+00 yg( 9)= 4.56958931431243E+00 yg( 10)= 5.14078797860148E+00 yg( 11)= 5.71198664289053E+00 yg( 12)= 6.28318530717959E+00 xmin= 0.000, xmax= 6.283, hx= 0.524, nx= 13 ymin= 0.000, ymax= 6.283, hy= 0.571, ny= 12 internal cells zeroed matrix initialized check_soln against PDE check_soln max error= 8.07859334983618E-12 exact solution u, computed us, error xg( 1)= 0.000, yg( 1)= 0.000, u= 0.000, us= 0.000, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 2)= 0.571, u= -0.541, us= -0.541, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 3)= 1.142, u= -0.910, us= -0.910, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 4)= 1.714, u= -0.990, us= -0.990, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 5)= 2.285, u= -0.756, us= -0.756, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 6)= 2.856, u= -0.282, us= -0.282, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 7)= 3.427, u= 0.282, us= 0.282, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 8)= 3.998, u= 0.756, us= 0.756, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 9)= 4.570, u= 0.990, us= 0.990, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 10)= 5.141, u= 0.910, us= 0.910, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 11)= 5.712, u= 0.541, us= 0.541, err= 0.00000000000000E+00 xg( 1)= 0.000, yg( 12)= 6.283, u= 0.000, us= 0.000, err= 0.00000000000000E+00 xg( 2)= 0.524, yg( 1)= 0.000, u= 0.500, us= 0.500, err= 0.00000000000000E+00 xg( 2)= 0.524, yg( 2)= 0.571, u= -0.048, us= -0.048, err= 7.45316905368526E-06 xg( 2)= 0.524, yg( 3)= 1.142, u= -0.580, us= -0.580, err= 8.82850093844034E-05 xg( 2)= 0.524, yg( 4)= 1.714, u= -0.928, us= -0.928, err= 1.34998103483386E-04 xg( 2)= 0.524, yg( 5)= 2.285, u= -0.982, us= -0.982, err= 1.35539816091157E-04 xg( 2)= 0.524, yg( 6)= 2.856, u= -0.724, us= -0.724, err= 9.37552079368631E-05 xg( 2)= 0.524, yg( 7)= 3.427, u= -0.236, us= -0.236, err= 2.52478340114770E-05 xg( 2)= 0.524, yg( 8)= 3.998, u= 0.327, us= 0.327, err= 5.01006761734479E-05 xg( 2)= 0.524, yg( 9)= 4.570, u= 0.786, us= 0.786, err= 1.11733483912690E-04 xg( 2)= 0.524, yg( 10)= 5.141, u= 0.995, us= 0.995, err= 1.40457724552845E-04 xg( 2)= 0.524, yg( 11)= 5.712, u= 0.889, us= 0.889, err= 1.25155508582386E-04 xg( 2)= 0.524, yg( 12)= 6.283, u= 0.500, us= 0.500, err= 0.00000000000000E+00 xg( 3)= 1.047, yg( 1)= 0.000, u= 0.866, us= 0.866, err= 0.00000000000000E+00 xg( 3)= 1.047, yg( 2)= 0.571, u= 0.458, us= 0.458, err= 7.03677463835262E-05 xg( 3)= 1.047, yg( 3)= 1.142, u= -0.095, us= -0.095, err= 1.41066184678046E-05 xg( 3)= 1.047, yg( 4)= 1.714, u= -0.618, us= -0.618, err= 9.05722964250621E-05 xg( 3)= 1.047, yg( 5)= 2.285, u= -0.945, us= -0.945, err= 1.34079373555918E-04 xg( 3)= 1.047, yg( 6)= 2.856, u= -0.972, us= -0.972, err= 1.31710296557119E-04 xg( 3)= 1.047, yg( 7)= 3.427, u= -0.690, us= -0.690, err= 8.85439280560174E-05 xg( 3)= 1.047, yg( 8)= 3.998, u= -0.189, us= -0.189, err= 2.03103499930302E-05 xg( 3)= 1.047, yg( 9)= 4.570, u= 0.372, us= 0.372, err= 5.35238039520158E-05 xg( 3)= 1.047, yg( 10)= 5.141, u= 0.815, us= 0.814, err= 1.12308480959444E-04 xg( 3)= 1.047, yg( 11)= 5.712, u= 0.999, us= 0.999, err= 1.40590374190563E-04 xg( 3)= 1.047, yg( 12)= 6.283, u= 0.866, us= 0.866, err= 0.00000000000000E+00 xg( 4)= 1.571, yg( 1)= 0.000, u= 1.000, us= 1.000, err= 0.00000000000000E+00 xg( 4)= 1.571, yg( 2)= 0.571, u= 0.841, us= 0.841, err= 1.23895122777551E-04 xg( 4)= 1.571, yg( 3)= 1.142, u= 0.415, us= 0.415, err= 6.13276412484987E-05 xg( 4)= 1.571, yg( 4)= 1.714, u= -0.142, us= -0.142, err= 2.12899284579571E-05 xg( 4)= 1.571, yg( 5)= 2.285, u= -0.655, us= -0.655, err= 9.62311455812159E-05 xg( 4)= 1.571, yg( 6)= 2.856, u= -0.959, us= -0.959, err= 1.35900874703054E-04 xg( 4)= 1.571, yg( 7)= 3.427, u= -0.959, us= -0.959, err= 1.29525223679927E-04 xg( 4)= 1.571, yg( 8)= 3.998, u= -0.655, us= -0.655, err= 8.33686942725009E-05 xg( 4)= 1.571, yg( 9)= 4.570, u= -0.142, us= -0.142, err= 1.36407862673660E-05 xg( 4)= 1.571, yg( 10)= 5.141, u= 0.415, us= 0.415, err= 5.93979169667413E-05 xg( 4)= 1.571, yg( 11)= 5.712, u= 0.841, us= 0.841, err= 1.18979184650758E-04 xg( 4)= 1.571, yg( 12)= 6.283, u= 1.000, us= 1.000, err= 0.00000000000000E+00 xg( 5)= 2.094, yg( 1)= 0.000, u= 0.866, us= 0.866, err= 0.00000000000000E+00 xg( 5)= 2.094, yg( 2)= 0.571, u= 0.999, us= 0.999, err= 1.40791857613842E-04 xg( 5)= 2.094, yg( 3)= 1.142, u= 0.815, us= 0.814, err= 1.17848376763763E-04 xg( 5)= 2.094, yg( 4)= 1.714, u= 0.372, us= 0.372, err= 5.53526330637211E-05 xg( 5)= 2.094, yg( 5)= 2.285, u= -0.189, us= -0.189, err= 2.82406899052290E-05 xg( 5)= 2.094, yg( 6)= 2.856, u= -0.690, us= -0.690, err= 1.01070358835109E-04 xg( 5)= 2.094, yg( 7)= 3.427, u= -0.972, us= -0.972, err= 1.37140116000523E-04 xg( 5)= 2.094, yg( 8)= 3.998, u= -0.945, us= -0.945, err= 1.27092256626105E-04 xg( 5)= 2.094, yg( 9)= 4.570, u= -0.618, us= -0.618, err= 7.82475861842435E-05 xg( 5)= 2.094, yg( 10)= 5.141, u= -0.095, us= -0.095, err= 7.80345156034534E-06 xg( 5)= 2.094, yg( 11)= 5.712, u= 0.458, us= 0.458, err= 6.73364460294645E-05 xg( 5)= 2.094, yg( 12)= 6.283, u= 0.866, us= 0.866, err= 0.00000000000000E+00 xg( 6)= 2.618, yg( 1)= 0.000, u= 0.500, us= 0.500, err= 0.00000000000000E+00 xg( 6)= 2.618, yg( 2)= 0.571, u= 0.889, us= 0.889, err= 1.18932602826582E-04 xg( 6)= 2.618, yg( 3)= 1.142, u= 0.995, us= 0.995, err= 1.38738572513009E-04 xg( 6)= 2.618, yg( 4)= 1.714, u= 0.786, us= 0.786, err= 1.14244256341767E-04 xg( 6)= 2.618, yg( 5)= 2.285, u= 0.327, us= 0.327, err= 4.86695865725695E-05 xg( 6)= 2.618, yg( 6)= 2.856, u= -0.236, us= -0.236, err= 3.51708955992347E-05 xg( 6)= 2.618, yg( 7)= 3.427, u= -0.724, us= -0.724, err= 1.05741650399227E-04 xg( 6)= 2.618, yg( 8)= 3.998, u= -0.982, us= -0.982, err= 1.38033673263371E-04 xg( 6)= 2.618, yg( 9)= 4.570, u= -0.928, us= -0.928, err= 1.24226481701739E-04 xg( 6)= 2.618, yg( 10)= 5.141, u= -0.580, us= -0.580, err= 7.30504935255727E-05 xg( 6)= 2.618, yg( 11)= 5.712, u= -0.048, us= -0.048, err= 2.74685651863171E-08 xg( 6)= 2.618, yg( 12)= 6.283, u= 0.500, us= 0.500, err= 0.00000000000000E+00 xg( 7)= 3.142, yg( 1)= 0.000, u= 0.000, us= 0.000, err= 0.00000000000000E+00 xg( 7)= 3.142, yg( 2)= 0.571, u= 0.541, us= 0.541, err= 6.73341862982291E-05 xg( 7)= 3.142, yg( 3)= 1.142, u= 0.910, us= 0.910, err= 1.21248891137293E-04 xg( 7)= 3.142, yg( 4)= 1.714, u= 0.990, us= 0.990, err= 1.38650991036604E-04 xg( 7)= 3.142, yg( 5)= 2.285, u= 0.756, us= 0.756, err= 1.10146400216449E-04 xg( 7)= 3.142, yg( 6)= 2.856, u= 0.282, us= 0.282, err= 4.19969883357907E-05 xg( 7)= 3.142, yg( 7)= 3.427, u= -0.282, us= -0.282, err= 4.19968988304986E-05 xg( 7)= 3.142, yg( 8)= 3.998, u= -0.756, us= -0.756, err= 1.10146379998621E-04 xg( 7)= 3.142, yg( 9)= 4.570, u= -0.990, us= -0.990, err= 1.38651031514225E-04 xg( 7)= 3.142, yg( 10)= 5.141, u= -0.910, us= -0.910, err= 1.21248924241590E-04 xg( 7)= 3.142, yg( 11)= 5.712, u= -0.541, us= -0.541, err= 6.73341682269069E-05 xg( 7)= 3.142, yg( 12)= 6.283, u= -0.000, us= -0.000, err= 0.00000000000000E+00 xg( 8)= 3.665, yg( 1)= 0.000, u= -0.500, us= -0.500, err= 0.00000000000000E+00 xg( 8)= 3.665, yg( 2)= 0.571, u= 0.048, us= 0.048, err= 2.74274180589451E-08 xg( 8)= 3.665, yg( 3)= 1.142, u= 0.580, us= 0.580, err= 7.30505064977516E-05 xg( 8)= 3.665, yg( 4)= 1.714, u= 0.928, us= 0.928, err= 1.24226445511022E-04 xg( 8)= 3.665, yg( 5)= 2.285, u= 0.982, us= 0.982, err= 1.38033635514900E-04 xg( 8)= 3.665, yg( 6)= 2.856, u= 0.724, us= 0.724, err= 1.05741677334570E-04 xg( 8)= 3.665, yg( 7)= 3.427, u= 0.236, us= 0.236, err= 3.51709884511275E-05 xg( 8)= 3.665, yg( 8)= 3.998, u= -0.327, us= -0.327, err= 4.86695009352944E-05 xg( 8)= 3.665, yg( 9)= 4.570, u= -0.786, us= -0.786, err= 1.14244242763073E-04 xg( 8)= 3.665, yg( 10)= 5.141, u= -0.995, us= -0.995, err= 1.38738615300116E-04 xg( 8)= 3.665, yg( 11)= 5.712, u= -0.889, us= -0.889, err= 1.18932631919311E-04 xg( 8)= 3.665, yg( 12)= 6.283, u= -0.500, us= -0.500, err= 0.00000000000000E+00 xg( 9)= 4.189, yg( 1)= 0.000, u= -0.866, us= -0.866, err= 0.00000000000000E+00 xg( 9)= 4.189, yg( 2)= 0.571, u= -0.458, us= -0.458, err= 6.73364284805023E-05 xg( 9)= 4.189, yg( 3)= 1.142, u= 0.095, us= 0.095, err= 7.80349231924160E-06 xg( 9)= 4.189, yg( 4)= 1.714, u= 0.618, us= 0.618, err= 7.82475949211436E-05 xg( 9)= 4.189, yg( 5)= 2.285, u= 0.945, us= 0.945, err= 1.27092217807157E-04 xg( 9)= 4.189, yg( 6)= 2.856, u= 0.972, us= 0.972, err= 1.37140081505338E-04 xg( 9)= 4.189, yg( 7)= 3.427, u= 0.690, us= 0.690, err= 1.01070392492630E-04 xg( 9)= 4.189, yg( 8)= 3.998, u= 0.189, us= 0.189, err= 2.82407855327349E-05 xg( 9)= 4.189, yg( 9)= 4.570, u= -0.372, us= -0.372, err= 5.53525518056097E-05 xg( 9)= 4.189, yg( 10)= 5.141, u= -0.815, us= -0.814, err= 1.17848369642681E-04 xg( 9)= 4.189, yg( 11)= 5.712, u= -0.999, us= -0.999, err= 1.40791902504489E-04 xg( 9)= 4.189, yg( 12)= 6.283, u= -0.866, us= -0.866, err= 0.00000000000000E+00 xg( 10)= 4.712, yg( 1)= 0.000, u= -1.000, us= -1.000, err= 0.00000000000000E+00 xg( 10)= 4.712, yg( 2)= 0.571, u= -0.841, us= -0.841, err= 1.18979212545556E-04 xg( 10)= 4.712, yg( 3)= 1.142, u= -0.415, us= -0.415, err= 5.93978949828822E-05 xg( 10)= 4.712, yg( 4)= 1.714, u= 0.142, us= 0.142, err= 1.36408262716992E-05 xg( 10)= 4.712, yg( 5)= 2.285, u= 0.655, us= 0.655, err= 8.33686988627180E-05 xg( 10)= 4.712, yg( 6)= 2.856, u= 0.959, us= 0.959, err= 1.29525182326784E-04 xg( 10)= 4.712, yg( 7)= 3.427, u= 0.959, us= 0.959, err= 1.35900844009385E-04 xg( 10)= 4.712, yg( 8)= 3.998, u= 0.655, us= 0.655, err= 9.62311859322718E-05 xg( 10)= 4.712, yg( 9)= 4.570, u= 0.142, us= 0.142, err= 2.12900262156757E-05 xg( 10)= 4.712, yg( 10)= 5.141, u= -0.415, us= -0.415, err= 6.13275647453060E-05 xg( 10)= 4.712, yg( 11)= 5.712, u= -0.841, us= -0.841, err= 1.23895122881801E-04 xg( 10)= 4.712, yg( 12)= 6.283, u= -1.000, us= -1.000, err= 0.00000000000000E+00 xg( 11)= 5.236, yg( 1)= 0.000, u= -0.866, us= -0.866, err= 0.00000000000000E+00 xg( 11)= 5.236, yg( 2)= 0.571, u= -0.999, us= -0.999, err= 1.40590420272368E-04 xg( 11)= 5.236, yg( 3)= 1.142, u= -0.815, us= -0.814, err= 1.12308503932179E-04 xg( 11)= 5.236, yg( 4)= 1.714, u= -0.372, us= -0.372, err= 5.35237787574472E-05 xg( 11)= 5.236, yg( 5)= 2.285, u= 0.189, us= 0.189, err= 2.03103889614142E-05 xg( 11)= 5.236, yg( 6)= 2.856, u= 0.690, us= 0.690, err= 8.85439282424239E-05 xg( 11)= 5.236, yg( 7)= 3.427, u= 0.972, us= 0.972, err= 1.31710253244766E-04 xg( 11)= 5.236, yg( 8)= 3.998, u= 0.945, us= 0.945, err= 1.34079347049565E-04 xg( 11)= 5.236, yg( 9)= 4.570, u= 0.618, us= 0.618, err= 9.05723434940775E-05 xg( 11)= 5.236, yg( 10)= 5.141, u= 0.095, us= 0.095, err= 1.41067179248583E-05 xg( 11)= 5.236, yg( 11)= 5.712, u= -0.458, us= -0.458, err= 7.03676755270388E-05 xg( 11)= 5.236, yg( 12)= 6.283, u= -0.866, us= -0.866, err= 0.00000000000000E+00 xg( 12)= 5.760, yg( 1)= 0.000, u= -0.500, us= -0.500, err= 0.00000000000000E+00 xg( 12)= 5.760, yg( 2)= 0.571, u= -0.889, us= -0.889, err= 1.25155508704067E-04 xg( 12)= 5.760, yg( 3)= 1.142, u= -0.995, us= -0.995, err= 1.40457771370950E-04 xg( 12)= 5.760, yg( 4)= 1.714, u= -0.786, us= -0.786, err= 1.11733504210787E-04 xg( 12)= 5.760, yg( 5)= 2.285, u= -0.327, us= -0.327, err= 5.01006482454547E-05 xg( 12)= 5.760, yg( 6)= 2.856, u= 0.236, us= 0.236, err= 2.52478720943472E-05 xg( 12)= 5.760, yg( 7)= 3.427, u= 0.724, us= 0.724, err= 9.37552042975520E-05 xg( 12)= 5.760, yg( 8)= 3.998, u= 0.982, us= 0.982, err= 1.35539771284443E-04 xg( 12)= 5.760, yg( 9)= 4.570, u= 0.928, us= 0.928, err= 1.34998080829840E-04 xg( 12)= 5.760, yg( 10)= 5.141, u= 0.580, us= 0.580, err= 8.82850621519715E-05 xg( 12)= 5.760, yg( 11)= 5.712, u= 0.048, us= 0.048, err= 7.45327156427555E-06 xg( 12)= 5.760, yg( 12)= 6.283, u= -0.500, us= -0.500, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 1)= 0.000, u= -0.000, us= -0.000, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 2)= 0.571, u= -0.541, us= -0.541, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 3)= 1.142, u= -0.910, us= -0.910, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 4)= 1.714, u= -0.990, us= -0.990, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 5)= 2.285, u= -0.756, us= -0.756, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 6)= 2.856, u= -0.282, us= -0.282, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 7)= 3.427, u= 0.282, us= 0.282, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 8)= 3.998, u= 0.756, us= 0.756, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 9)= 4.570, u= 0.990, us= 0.990, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 10)= 5.141, u= 0.910, us= 0.910, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 11)= 5.712, u= 0.541, us= 0.541, err= 0.00000000000000E+00 xg( 13)= 6.283, yg( 12)= 6.283, u= 0.000, us= 0.000, err= 0.00000000000000E+00 avg_error= 8.81733339422353E-05, max_error= 1.40791902504489E-04