I’m assuming the difference between “master” and “patched” is the CVodeSetSensErrCon switch @bbbales2 mentioned above. In that case, there are a misconception and a fallacy in this reply. Let’s first talk about the fallacy.
Harmonic oscillator is not supposed to be solved by either bdf or adams, simply rk45 would do. So I don’t care which BDF implementation does a better job on this problem. More importantly, using benchmark from this model as proof that “master” gets us “an additional order of precision” for all the problems is simply wrong, especially when apply this claim to stiff problems that BDF is supposed tackle. I’ll show a counter example in a sec.
Now the misconception:
Given a method, nothing brings us an “additional order of precision” except possibly tuning tolerances. Trying to achieve “additional order of precision” by checking sensitivity error control in general practice is hopeless.
So I think using a nicely behaved oscillation problem to show BDF & Adams are to be more accurate in “master” and then bumping up tolerance in another stiff problem in order to match wall-time performance between “master” & “patch” is bad practice of benchmarking.
Counterexample of “additional order of precision”. The example can be so trivial it doesn’t even need to be coupled:
Analytical solution at t=1 is:
Since the problem is stiff, we solve is using BDF. Old version with rtol = 1.E-9, atol = 1.E-13 gives us
y1: 3.059026e-07
y2: 2.061165e-09
y3: 9.358256e-14
if new version really gives “additional order of precision”, we should be able to get similar accuracy with rtol=1.E-8, atol=1.E-12, and yet we get
y1: 3.05904e-07
y2: 2.061223e-09
y3: 9.361747e-14
which loses 1-2 significant figures compared to previous tolerance. This trivial example shows the “additional order of precision” claim is simply wrong.