Skip to content

Commit a3320d9

Browse files
fix: fix initialization using u0map::Dict
1 parent 9814c6f commit a3320d9

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -870,12 +870,15 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
870870
if eltype(u0map) <: Number
871871
u0map = unknowns(sys) .=> u0map
872872
end
873+
if isempty(u0map)
874+
u0map = Dict()
875+
end
873876
initializeprob = ModelingToolkit.InitializationProblem(
874877
sys, t, u0map, parammap; guesses, warn_initialize_determined)
875878
initializeprobmap = getu(initializeprob, unknowns(sys))
876879

877-
zerovars = setdiff(unknowns(sys), keys(defaults(sys))) .=> 0.0
878-
trueinit = identity.([zerovars; u0map])
880+
zerovars = Dict(setdiff(unknowns(sys), keys(defaults(sys))) .=> 0.0)
881+
trueinit = collect(merge(zerovars, eltype(u0map) <: Pair ? todict(u0map) : u0map))
879882
u0map isa StaticArraysCore.StaticArray &&
880883
(trueinit = SVector{length(trueinit)}(trueinit))
881884
else
@@ -913,7 +916,6 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
913916
du0 = nothing
914917
ddvs = nothing
915918
end
916-
917919
check_eqs_u0(eqs, dvs, u0; kwargs...)
918920

919921
f = constructor(sys, dvs, ps, u0; ddvs = ddvs, tgrad = tgrad, jac = jac,

0 commit comments

Comments
 (0)