Skip to content

Commit 37a17be

Browse files
Add temporary initialization type definitions for testing
- DiffEqBase 6.190.2 is not yet available - Added local definitions of DefaultInit, BrownFullBasicInit, ShampineCollocationInit - These will be removed once DiffEqBase 6.190.2 is released - Adjusted version constraint to 6.190.0 for testing
1 parent 7f48f2e commit 37a17be

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ ArrayInterface = "7.17.1"
2929
CEnum = "0.5"
3030
DAEProblemLibrary = "0.1"
3131
DataStructures = "0.18, 0.19"
32-
DiffEqBase = "6.190.2"
32+
DiffEqBase = "6.190.0"
3333
DiffEqCallbacks = "4"
3434
DifferentiationInterface = "0.6, 0.7"
3535
ExplicitImports = "1"

src/Sundials.jl

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ using DiffEqBase: DiffEqBase, NonlinearFunction, ODEFunction, add_saveat!,
1010
get_tstops_array, initialize!, isinplace,
1111
reeval_internals_due_to_modification!, reinit!, savevalues!,
1212
set_proposed_dt!, solve, solve!, step!, terminate!, u_modified!,
13-
update_coefficients!, warn_compat, DefaultInit, BrownFullBasicInit,
14-
ShampineCollocationInit
13+
update_coefficients!, warn_compat
1514
using SciMLBase: AbstractSciMLOperator, DAEProblem, ODEProblem, ReturnCode,
1615
SciMLBase, SplitODEProblem, VectorContinuousCallback
1716
import Accessors: @reset
@@ -53,6 +52,26 @@ using Sundials_jll: Sundials_jll, libsundials_core,
5352
libsundials_sunmatrixsparse, libsundials_sunnonlinsolfixedpoint,
5453
libsundials_sunnonlinsolnewton
5554

55+
# Temporary definitions until DiffEqBase 6.190.2 is available
56+
# These will be removed once the new version is released
57+
if !isdefined(DiffEqBase, :DefaultInit)
58+
abstract type DAEInitializationAlgorithm end
59+
struct DefaultInit <: DAEInitializationAlgorithm end
60+
struct BrownFullBasicInit{T, F} <: DAEInitializationAlgorithm
61+
abstol::T
62+
nlsolve::F
63+
end
64+
BrownFullBasicInit(; abstol = nothing, nlsolve = nothing) = BrownFullBasicInit(abstol, nlsolve)
65+
struct ShampineCollocationInit{T, F} <: DAEInitializationAlgorithm
66+
initdt::T
67+
nlsolve::F
68+
end
69+
ShampineCollocationInit(; initdt = nothing, nlsolve = nothing) = ShampineCollocationInit(initdt, nlsolve)
70+
else
71+
using DiffEqBase: DefaultInit, BrownFullBasicInit, ShampineCollocationInit
72+
const DAEInitializationAlgorithm = DiffEqBase.DAEInitializationAlgorithm
73+
end
74+
5675
export solve,
5776
SundialsODEAlgorithm, SundialsDAEAlgorithm, ARKODE, CVODE_BDF, CVODE_Adams, IDA,
5877
KINSOL, DefaultInit, BrownFullBasicInit, ShampineCollocationInit

src/common_interface/integrator_utils.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ DiffEqBase.set_proposed_dt!(i::AbstractSundialsIntegrator, dt) = nothing
238238

239239
# DefaultInit for all Sundials integrators - handles ModelingToolkit parameter initialization
240240
function DiffEqBase.initialize_dae!(integrator::AbstractSundialsIntegrator,
241-
initializealg::DiffEqBase.DefaultInit)
241+
initializealg::DefaultInit)
242242
# DefaultInit intelligently chooses the actual initialization algorithm
243243
prob = integrator.sol.prob
244244
if haskey(prob.kwargs, :initialization_data) && prob.kwargs[:initialization_data] !== nothing
@@ -255,7 +255,7 @@ function DiffEqBase.initialize_dae!(integrator::AbstractSundialsIntegrator,
255255
end
256256

257257
function DiffEqBase.initialize_dae!(integrator::IDAIntegrator,
258-
initializealg::DiffEqBase.BrownFullBasicInit)
258+
initializealg::BrownFullBasicInit)
259259
if integrator.u_modified
260260
IDAReinit!(integrator)
261261
end
@@ -288,7 +288,7 @@ function DiffEqBase.initialize_dae!(integrator::IDAIntegrator,
288288
end
289289

290290
function DiffEqBase.initialize_dae!(integrator::IDAIntegrator,
291-
initializealg::DiffEqBase.ShampineCollocationInit)
291+
initializealg::ShampineCollocationInit)
292292
if integrator.u_modified
293293
IDAReinit!(integrator)
294294
end

0 commit comments

Comments
 (0)