Update to OrdinaryDiffEq.jl v7 and related SciML packages#2910
Update to OrdinaryDiffEq.jl v7 and related SciML packages#2910github-actions[bot] wants to merge 68 commits into
Conversation
5d38e62 to
4a12427
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2910 +/- ##
==========================================
- Coverage 97.13% 97.08% -0.06%
==========================================
Files 625 626 +1
Lines 48514 48557 +43
==========================================
+ Hits 47122 47137 +15
- Misses 1392 1420 +28
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
JoshuaLampert
left a comment
There was a problem hiding this comment.
Needs dependencies like SummationByPartsOperators.jl to be updated first.
|
We need jlchan/StartUpDG.jl#219 to be merged and released before. |
Co-authored-by: Copilot <copilot@github.com>
I bisected this discrepancy to this PR: SciML/OrdinaryDiffEq.jl#3441, which first landed in OrdinaryDiffEqCore.jl v3.33.0. Using the commit directly before that PR: julia> include("examples/tree_2d_dgsem/elixir_advection_restart_amr.jl");
[...]
julia> analysis_callback(sol)
(l2 = [8.018497923389368e-5], linf = [0.0007307237754662355])
(run_v3_32) pkg> st
Status `~/.julia/dev/Trixi/run_v3_32/Project.toml`
[7d9f7c33] Accessors v0.1.44
[bbf590c4] OrdinaryDiffEqCore v3.32.0 `https://github.com/SciML/OrdinaryDiffEq.jl.git:lib/OrdinaryDiffEqCore#97f41902`
⌃ [b0944070] OrdinaryDiffEqLowStorageRK v1.15.0
[a7f1ee26] Trixi v0.16.8-DEV `..`
Info Packages marked with ⌃ have new versions available and may be upgradable.With the commit from the PR: julia> include("examples/tree_2d_dgsem/elixir_advection_restart_amr.jl");
[...]
julia> analysis_callback(sol)
(l2 = [8.018498574373939e-5], linf = [0.0007307237754662355])
(run_v6) pkg> st
Status `~/.julia/dev/Trixi/run_v6/Project.toml`
[7d9f7c33] Accessors v0.1.44
[bbf590c4] OrdinaryDiffEqCore v3.32.0 `https://github.com/SciML/OrdinaryDiffEq.jl.git:lib/OrdinaryDiffEqCore#1864296`
⌃ [b0944070] OrdinaryDiffEqLowStorageRK v1.15.0
[a7f1ee26] Trixi v0.16.8-DEV `..`
Info Packages marked with ⌃ have new versions available and may be upgradable.These L2-error values are exactly the two values in https://github.com/trixi-framework/Trixi.jl/pull/2910/changes#diff-0d913e7961860bd3a9c595d68dbd7a7b09ea17758afc8c814b9e45a454a04796R77. So this has nothing to do with restarting, controllers, or the v7 updates of the SciML packages, but is simply a coincidence. It didn't surface before since we currently restrict OrdinaryDiffEqCore.jl to v3.31. Looking at the changes of that PR, I think we can simply use the new value. Do you agree, @ranocha? |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
Coverage reports are relatively bad with this PR, but that is expected because there are some error messages, which are not covered and the OrdinaryDiffEqCore.jl <v4 paths are not reported to be covered by codecov and coveralls because they are only covered by the Downgrade job, which does not contribute to the coverage reports since it is in a different actions file. I double-checked that the downgrade job indeed goes into the methods it should by introducing debug statements. |
|
Are there any changes that would make sense to pull out into its own PR? I wish stacked PRs would be in general availability https://github.github.com/gh-stack/ |
|
Yes, I think we could if it helps reviewing since many changes are related to fixing deprecations, but it would also be a bit of work to split the PR manually now. |
Thanks for debugging this! I agree that we can modify the value in this case. |
| # Trixi automatically initializes MPI, this causes issues if precompilation occurs under MPI. | ||
| # The below MPI test uses different compilation flags and thus we want to ensure that precompilation is done with the same flags. | ||
| run(`$(Base.julia_cmd()) --threads=1 --check-bounds=yes -e "using Trixi, OrdinaryDiffEqCore"`) | ||
|
|
This pull request changes the compat entry for the
RecursiveArrayToolspackage from3.37to3.37, 4.This keeps the compat entries for earlier versions.
Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass before you merge this pull request.
Closes #2918, closes #2919, closes #2949, closes #2950, closes #2960, closes #2961, closes #2962, closes #2963, closes #2965, closes #2966, closes #2967, closes #2968, closes #2969, closes #2970, closes #2971, closes #2972, closes #2973, closes #2981, closes #2983, closes #2984.
Also closes #2938 and closes #2941.
The required changes, which keep backwards compatibility with older versions from the SciML ecosystem are:
u_modified!byderivative_discontinuity!. Done in Replaceu_modified!byderivative_discontinuity!#2996.stage_limiter!a kwarg #2995.VectorOfArrayofSVectorsnow returns the underlying floating values, not theSVector, fixed by replacingubyparent(u)threadis now passed asFastBroadcast.Serial()/FastBroadcast.Threaded()instead ofTrue()/False(). Done in ReplaceTrixi.True()byTrixi.Threaded()#2997.sol.destatstosol.stats(sol.destatsis already deprecated from some time and we changed almost all occurrences already in follow SciMLBase update destats -> stats #1372). Done in Replace deprecateddestatsbystats#2994.PIDControllerconstructor, which only acceptsbeta1,beta2,beta3, has (accidentally) another default value for (the algorithm dependent)qsteady_max. We can go back to the previous behavior by also passing the ode algorithm to the constructor of thePIDController. See below for a discussion about this.Note that I used Claude to help me with refactoring some parts, but I reviewed the code and adapted it.