Skip to content

Commit

Permalink
Merge pull request #2560 from SciML/linear_interp
Browse files Browse the repository at this point in the history
Refactor & Generalize: System for opting alg into linear interpolation
  • Loading branch information
ChrisRackauckas authored Dec 18, 2024
2 parents 4b29bab + 42b98fc commit 8a8b0d4
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
3 changes: 3 additions & 0 deletions lib/OrdinaryDiffEqCore/src/alg_utils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -444,3 +444,6 @@ function Base.show(io::IO, ::MIME"text/plain", alg::OrdinaryDiffEqAlgorithm)
end
print(io, ")")
end

# Defaults in the current system: currently opt out DAEAlgorithms until complete
default_linear_interpolation(alg, prob) = alg isa DAEAlgorithm || prob isa DiscreteProblem
4 changes: 1 addition & 3 deletions lib/OrdinaryDiffEqCore/src/solve.jl
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ function DiffEqBase.__init(
saveat isa Number || prob.tspan[1] in saveat,
save_end = nothing,
callback = nothing,
dense = save_everystep &&
!(alg isa DAEAlgorithm) && !(prob isa DiscreteProblem) &&
isempty(saveat),
dense = save_everystep && isempty(saveat) && !default_linear_interpolation(prob, alg),
calck = (callback !== nothing && callback !== CallbackSet()) ||
(dense) || !isempty(saveat), # and no dense output
dt = isdiscretealg(alg) && isempty(tstops) ?
Expand Down

0 comments on commit 8a8b0d4

Please sign in to comment.