SciML / SciML/PDESystemLibrary.jl
advdiff3 example unstable under OrdinaryDiffEq v7.0.0 (blocks downgrade re-enable); expected unstable only on Julia ≥1.13
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 26
- Forks
- 6
- Avg merge
- 4h 21m
- Merged PRs (30d)
- 11
Description
After fixing the IfElse precompile bug (#52), the test suite runs on Julia 1.10 but advdiff3 fails (425 passed, 1 failed, 1 broken; deterministic over 2 runs):
Example: advdiff3: Test Failed at test/mol_test.jl:67
Expression: sol.retcode == SciMLBase.ReturnCode.Success
Evaluated: SciMLBase.ReturnCode.Unstable == SciMLBase.ReturnCode.Success
At t=1.137…, dt was forced below floating point epsilon. Aborting.
advdiff3is defined inlib/general_linear_system.jland does not useifelse— unrelated to the #52 fix.- The test file only adds
advdiff3toBROKEN_EXAMPLESforVERSION >= v"1.13-", so on Julia 1.10 it is expected to pass — it doesn't anymore. - The instability appears with the new solver stack: OrdinaryDiffEq v7.0.0, OrdinaryDiffEqBDF v2.2.0, SciMLBase v3.18.0. FBDF drives dt below epsilon on this dispersive advection-diffusion case.
This blocks re-enabling PDESystemLibrary's downgrade CI (the IfElse fix #52 is independent and lands first). Maintainer decision: either (a) investigate it as an OrdinaryDiffEq v7 stiff/dispersion regression, or (b) if the new behavior is correct, mark advdiff3 broken on ≤1.12 too (not just ≥1.13). I did not loosen the assertion. (Possibly related to the other ODE 7.0.0 issues #3721/#3722.)
From the SciML downgrade re-enablement pass.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with test/mol_test.jl:67 and the advdiff3 definition in lib/general_linear_system.jl. Reproduce the failure on Julia 1.10 with the listed OrdinaryDiffEq, OrdinaryDiffEqBDF, and SciMLBase versions, then compare behavior across the relevant Julia versions. Done means establishing whether this is a solver regression or expected behavior and either documenting the upstream finding or correcting the BROKEN_EXAMPLES version condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100