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.
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