diff --git a/lib/OrdinaryDiffEqCore/src/alg_utils.jl b/lib/OrdinaryDiffEqCore/src/alg_utils.jl index d5f89349d6..3f662c98c4 100644 --- a/lib/OrdinaryDiffEqCore/src/alg_utils.jl +++ b/lib/OrdinaryDiffEqCore/src/alg_utils.jl @@ -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 \ No newline at end of file diff --git a/lib/OrdinaryDiffEqCore/src/solve.jl b/lib/OrdinaryDiffEqCore/src/solve.jl index 42fd07a5bf..f8540cfae8 100644 --- a/lib/OrdinaryDiffEqCore/src/solve.jl +++ b/lib/OrdinaryDiffEqCore/src/solve.jl @@ -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) ?