Skip to content

Fix SBDF order ramp, history-shift timing, and dt-change reset - #4366

Open
niy-ati wants to merge 1 commit into
SciML:masterfrom
niy-ati:fix/sbdf-convergence-order-4329
Open

Fix SBDF order ramp, history-shift timing, and dt-change reset#4366
niy-ati wants to merge 1 commit into
SciML:masterfrom
niy-ati:fix/sbdf-convergence-order-4329

Conversation

@niy-ati

@niy-ati niy-ati commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

SBDF (SBDF2/3/4) is a fixed-coefficient IMEX multistep method and requires a uniform step-size history. Three issues combined to make it silently run below its nominal convergence order:

  • The bootstrap counter allowed the higher-order formula to be used one step before enough trusted history existed.
  • The buffer history shift was gated on the bootstrap counter instead of the algorithm order, so high-order runs could skip a needed shift during ramp-up.
  • No reset occurred when dt changed, so the fixed-coefficient formula was silently applied across a non-uniform step history (e.g. on a clipped final step), inflating the error by orders of magnitude.

Fixes #4329.

Test plan

  • Added an SBDF convergence testset measuring empirical order for pure-BDF and genuine IMEX splits, out-of-place and in-place, across SBDF2/SBDF3/SBDF4.
  • Verified against both reproducers from the issue.
  • Checked the ARK variant, a tstops-forced mid-integration dt change, reinit! + re-solve consistency, and in-place order-4 correctness.
  • Confirmed no allocation or type-stability change relative to the unpatched baseline.

SBDF (SBDF2/3/4) is a fixed-coefficient IMEX multistep method and
requires a uniform step-size history. Three issues combined to make
it silently run below its nominal convergence order:

- The bootstrap counter allowed the higher-order formula one step
  before enough trusted history existed.
- The buffer history shift was gated on the bootstrap counter instead
  of the algorithm order, so high-order runs could skip a needed
  shift during ramp-up.
- No reset occurred when dt changed, so the fixed-coefficient formula
  was silently applied across a non-uniform step history (e.g. on a
  clipped final step), inflating the error by orders of magnitude.

Fixes SciML#4329.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SBDF solvers do not achieve expected convergence order

1 participant