Propagate interp/dense to DiffEqArrays from solution callables#1297
Merged
ChrisRackauckas merged 1 commit intoApr 1, 2026
Merged
Conversation
Contributor
Author
Updated — now delegates full plotting to RecursiveArrayTools v4Plotting delegation
Interpolation propagation
Compat
Depends on SciML/RecursiveArrayTools.jl#547 (RecursiveArrayTools v4.0) |
6 tasks
ChrisRackauckas-Claude
pushed a commit
to ChrisRackauckas-Claude/RecursiveArrayTools.jl
that referenced
this pull request
Mar 30, 2026
SciMLBase can't resolve against RAT v4 until the companion SciMLBase PR (SciML/SciMLBase.jl#1297) is merged. Move it out of the main test deps into the downstream test Project.toml. - Remove SciMLBase from [extras] and [targets] in Project.toml - Add SciMLBase and ForwardDiff to test/downstream/Project.toml - Move adjoints.jl to test/downstream/ (uses ODEProblem from SciMLBase) - Core tests now pass without SciMLBase dependency Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ChrisRackauckas-Claude
pushed a commit
to ChrisRackauckas-Claude/RecursiveArrayTools.jl
that referenced
this pull request
Mar 30, 2026
- docs/Project.toml: bump RecursiveArrayTools compat from "3" to "4" - test/jet_tests.jl: filter RecipesBase is_key_supported false positive (user recipe keywords like denseplot are dynamic, JET can't verify them) - test/adjoints.jl: remove loss6/ODEProblem (needs SciMLBase) from Core, keep in test/downstream/adjoints.jl (disabled until SciMLBase compat bump) - test/downstream/Project.toml: revert SciMLBase/ForwardDiff additions (can't resolve until SciML/SciMLBase.jl#1297 merges) Pre-existing failures NOT from our changes: - LTS @inferred sum(VA[VA[zeros(4,4)]]) — inference regression from AbstractArray subtyping, present since initial PR commits - GPU CuArray ambiguity — from AbstractVectorOfArray <: AbstractArray - Downstream SciMLBase resolution — expected until SciMLBase bumps compat Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
21c1535 to
21699e3
Compare
21699e3 to
c8c2bc6
Compare
DiffEqArray in RecursiveArrayTools v3.48+ has `interp` and `dense` fields plus a callable interface `da(t)`. This PR propagates interpolation data from ODE solutions to the DiffEqArrays they return, so that: - `augment` passes `interp`/`dense` from the solution - All callable methods that return `DiffEqArray(A.u, A.t, p, sol)` now also pass `interp = sol.interp, dense = sol.dense` - Returned DiffEqArrays are themselves callable: `sol([0,1])(0.5)` works Also adds plotting and callable interface docs to Solutions.md, referencing RecursiveArrayTools as the canonical source for plot recipe documentation. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
c8c2bc6 to
d8a335d
Compare
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
augmentand all ODE solution callable methods now passinterp = sol.interp, dense = sol.densewhen constructingDiffEqArrayresultsDiffEqArrayobjects are themselves callable:sol([0.0, 1.0])(0.5)worksSolutions.md, referencing RecursiveArrayTools as the canonical source for plot recipe docs3.48, 4(requiresinterp/densefields onDiffEqArray)Context
RecursiveArrayTools v3.48+ / v4 adds
interpanddensefields toDiffEqArraywith a callable interfaceda(t)and a plot recipe that supports dense interpolation. This is the complementary SciMLBase PR that propagates interpolation data from ODE solutions into theDiffEqArrayobjects they return, so downstream consumers get callable, plottable arrays.Test plan
Pkg.test()withGROUP=Core)DiffEqArraywithLinearInterpolationcallable workssol([0,1])(0.5)chained interpolation works🤖 Generated with Claude Code