jacobwilliams/rklib

Check results of order test

Closed this issue · 6 comments

See #31

Investigate the cases where this test is failing and see if there is some error.

Currently, the ones failing are:

    Method  Variable                      xf  Success
 ----------------------------------------------------
      rkr4         F   1.699041129050761E+00        F
      rkc5         F   1.555555555555555E+00        F
      rkl5         F   1.388888888888889E+00        F
    rklk5a         F   1.416666666666667E+00        F
     rko10         F   1.333333333333333E+00        F
     rkh10         F   1.333333333333333E+00        F
    rkdp65         T   1.423611111111112E+00        F
    rkv65e         T   9.999999999997726E-01        F
     rkv65         T   1.438888888888889E+00        F
   dverk65         T   1.450000000000000E+00        F
    rktp75         T   7.022258831547581E-01        F
    rktmy7         T   2.639828876496722E+00        F
    rkv76r         T   1.331980864835947E+00        F
   dverk78         T   1.000000000000023E+00        F
    rkdp85         T   1.076664947110369E+00        F
    rktp86         T   2.389109029661114E-01        F
    rkv87e         T   9.999999999999840E-01        F
    rkv87r         T   1.357836517333566E+00        F
    rkev87         T   1.351341629155199E+00        F
     rkk87         T   1.370168115647311E+00        F
    rkt98a         T   9.999999999999893E-01        F
    rkv98r         T   1.131299675056499E+00        F
     rks98         T   1.266647547720950E+00        F
    rkc108         T   1.333333333333333E+00        F
    rkb109         T   1.307444093579318E+00        F
  rks1110a         T   1.281633046469373E+00        F

I answer here the question asked in PR #31.

I came up with the test myself, so I cannot provide any reference that supports its validity. That said, the test is mathematically trivial and the fact that it works "exactly" for so many methods of different orders, does give me some comfort that the rationale must be correct. Furthermore, to the best of my knowledge, the order constraints (see Butcher) are another way of expressing that same consistency requirement.

Thus, IMO, any scheme that does not pass this test has inconsistent coefficients.

A partial answer is provided in my reported issue #34.

With the latest commit, we now only have the following three failing:

    Method  Variable                      xf  Success
 ----------------------------------------------------
    rktp75         T   7.022258831547581E-01        F
    rkdp85         T   6.423150741778192E-01        F
    rktp86         T   2.389109029661114E-01        F

Need to look into it more...maybe there are some more typos in these routines.

fixed rkdp85. Don't yet seen anything obvious in the other two.

fixed the other two. all pass now!

    Method  Variable                      xf  Success
 ----------------------------------------------------
     euler         F   1.000000000000000E+00        T                                               
  midpoint         F   1.000000000000000E+00        T                                               
      heun         F   1.000000000000000E+00        T                                               
   rkssp22         F   1.000000000000000E+00        T                                               
       rk3         F   1.000000000000000E+00        T                                               
   rkssp33         F   1.000000000000000E+00        T                                               
   rkssp53         F   1.000000000000002E+00        T                                               
       rk4         F   1.000000000000000E+00        T                                               
      rks4         F   1.000000000000000E+00        T                                               
      rkr4         F   9.999999999999999E-01        T                                               
    rkls44         F   1.000000000000000E+00        T                                               
    rkls54         F   1.000000000000000E+00        T                                               
   rkssp54         F   9.999999999999998E-01        T                                               
      rks5         F   1.000000000000000E+00        T                                               
       rk5         F   1.000000000000001E+00        T                                               
      rkc5         F   9.999999999999999E-01        T                                               
      rkl5         F   1.000000000000000E+00        T                                               
    rklk5a         F   9.999999999999997E-01        T                                               
    rklk5b         F   1.000000000000000E+00        T                                               
      rkb6         F   1.000000000000000E+00        T                                               
       rk7         F   1.000000000000000E+00        T                                               
    rk8_10         F   1.000000000000000E+00        T                                               
     rkcv8         F   9.999999999999998E-01        T                                               
    rk8_12         F   1.000000000000000E+00        T                                               
     rkz10         F   9.999999999999960E-01        T                                               
     rko10         F   1.000000000000000E+00        T                                               
     rkh10         F   9.999999999999998E-01        T                                               
    rkbs32         T   1.000000000000000E+00        T                                               
   rkssp43         T   1.000000000000000E+00        T                                               
     rkf45         T   1.000000000000000E+00        T                                               
    rkck54         T   9.999999999999999E-01        T                                               
    rkdp54         T   1.000000000000001E+00        T                                               
     rkt54         T   1.000000000000004E+00        T                                               
     rks54         T   1.000000000000004E+00        T                                               
    rkpp54         T   9.999999999999998E-01        T                                               
   rkpp54b         T   9.999999999999956E-01        T                                               
    rkbs54         T   1.000000000000000E+00        T                                               
    rkss54         T   1.000000000000000E+00        T                                               
    rkdp65         T   1.000000000000000E+00        T                                               
     rkc65         T   1.000000000000000E+00        T                                               
    rktp64         T   1.000000000000000E+00        T                                               
    rkv65e         T   9.999999999997726E-01        T                                               
    rkv65r         T   1.000000000000000E+00        T                                               
     rkv65         T   1.000000000000000E+00        T                                               
   dverk65         T   1.000000000000000E+00        T                                               
    rktf65         T   1.000000000000000E+00        T                                               
    rktp75         T   1.000000000000000E+00        T                                               
    rktmy7         T   9.999999999998863E-01        T                                               
   rktmy7s         T   1.000000000000000E+00        T                                               
    rkv76e         T   1.000000000000000E+00        T                                               
    rkv76r         T   1.000000000000000E+00        T                                               
    rkss76         T   1.000000000000001E+00        T                                               
     rkf78         T   1.000000000000000E+00        T                                               
     rkv78         T   9.999999999999999E-01        T                                               
   dverk78         T   1.000000000000023E+00        T                                               
    rkdp85         T   9.999999999999999E-01        T                                               
    rktp86         T   1.000000000000004E+00        T                                               
    rkdp87         T   9.999999999999996E-01        T                                               
    rkv87e         T   9.999999999999840E-01        T                                               
    rkv87r         T   9.999999999999999E-01        T                                               
    rkev87         T   1.000000000000005E+00        T                                               
     rkk87         T   9.999999999996811E-01        T                                               
     rkf89         T   1.000000000000000E+00        T                                               
     rkv89         T   1.000000000000000E+00        T                                               
    rkt98a         T   9.999999999999893E-01        T                                               
    rkv98e         T   1.000000000000000E+00        T                                               
    rkv98r         T   1.000000000000000E+00        T                                               
     rks98         T   9.999999999999998E-01        T                                               
    rkf108         T   9.999999999999998E-01        T                                               
    rkc108         T   9.999999999999998E-01        T                                               
    rkb109         T   9.999999999999964E-01        T                                               
  rks1110a         T   1.000000000000004E+00        T                                               
   rkf1210         T   9.999999999999994E-01        T                                               
    rko129         T   9.999999999999994E-01        T                                               
   rkf1412         T   9.999999999999997E-01        T