Skip to content

Commit 1429627

Browse files
committed
handle positional init
1 parent fad7432 commit 1429627

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,16 +397,30 @@ function process_DEProblem(constructor, sys::AbstractODESystem,u0map,parammap;
397397
ps = parameters(sys)
398398
defs = defaults(sys)
399399
iv = independent_variable(sys)
400+
if parammap isa Dict
401+
u0defs = merge(parammap, defs)
402+
elseif eltype(parammap) <: Pair
403+
u0defs = merge(Dict(parammap), defs)
404+
else
405+
u0defs = merge(Dict(zip(ps, parammap)), defs)
406+
end
407+
if u0map isa Dict
408+
pdefs = merge(u0map, defs)
409+
elseif eltype(u0map) <: Pair
410+
pdefs = merge(Dict(u0map), defs)
411+
else
412+
pdefs = merge(Dict(zip(dvs, u0map)), defs)
413+
end
400414

401-
u0 = varmap_to_vars(u0map,dvs; defaults=merge(defs, Dict(parammap)))
415+
u0 = varmap_to_vars(u0map,dvs; defaults=u0defs)
402416
if implicit_dae && du0map !== nothing
403417
ddvs = map(Differential(iv), dvs)
404418
du0 = varmap_to_vars(du0map, ddvs; defaults=defaults, toterm=identity)
405419
else
406420
du0 = nothing
407421
ddvs = nothing
408422
end
409-
p = varmap_to_vars(parammap,ps; defaults=merge(defs, Dict(u0map)))
423+
p = varmap_to_vars(parammap,ps; defaults=pdefs)
410424

411425
check_eqs_u0(eqs, dvs, u0)
412426

0 commit comments

Comments
 (0)