Skip to content

Commit 7139b9a

Browse files
Update abstractodesystem.jl
1 parent 029adda commit 7139b9a

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -559,34 +559,31 @@ function process_DEProblem(constructor, sys::AbstractODESystem,u0map,parammap;
559559
ps = parameters(sys)
560560
defs = defaults(sys)
561561
iv = get_iv(sys)
562-
if parammap isa Dict
563-
u0defs = merge(parammap, defs)
564-
elseif eltype(parammap) <: Pair
565-
u0defs = merge(Dict(parammap), defs)
566-
elseif eltype(parammap) <: Number
567-
u0defs = merge(Dict(zip(ps, parammap)), defs)
568-
else
569-
u0defs = defs
570-
end
571-
if u0map isa Dict
572-
pdefs = merge(u0map, defs)
573-
elseif eltype(u0map) <: Pair
574-
pdefs = merge(Dict(u0map), defs)
575-
elseif eltype(u0map) <: Number
576-
pdefs = merge(Dict(zip(dvs, u0map)), defs)
577-
else
578-
pdefs = defs
562+
function mergedefaults(defaults, varmap, vars)
563+
defs = if varmap isa Dict
564+
merge(defaults, varmap)
565+
elseif eltype(varmap) <: Pair
566+
merge(defaults, Dict(varmap))
567+
elseif eltype(varmap) <: Number
568+
merge(defaults, Dict(zip(vars, varmap)))
569+
else
570+
defaults
571+
end
579572
end
580573

581-
u0 = varmap_to_vars(u0map,dvs; defaults=u0defs)
574+
pdefs = mergedefaults(defs, parammap, ps)
575+
u0defs = mergedefaults(defs, u0map, dvs)
576+
du0defs = mergedefaults(defs, du0map, dvs)
577+
578+
u0 = varmap_to_vars(u0map, dvs; defaults=u0defs)
582579
if implicit_dae && du0map !== nothing
583580
ddvs = map(Differential(iv), dvs)
584-
du0 = varmap_to_vars(du0map, ddvs; defaults=defaults, toterm=identity)
581+
du0 = varmap_to_vars(du0map, ddvs; defaults=du0defs, toterm=identity)
585582
else
586583
du0 = nothing
587584
ddvs = nothing
588585
end
589-
p = varmap_to_vars(parammap,ps; defaults=pdefs)
586+
p = varmap_to_vars(parammap, ps; defaults=pdefs)
590587

591588
check_eqs_u0(eqs, dvs, u0; kwargs...)
592589

@@ -691,7 +688,7 @@ merge_cb(x, y) = CallbackSet(x, y)
691688

692689
"""
693690
```julia
694-
function DiffEqBase.DAEProblem{iip}(sys::AbstractODESystem,u0map,tspan,
691+
function DiffEqBase.DAEProblem{iip}(sys::AbstractODESystem,du0map,u0map,tspan,
695692
parammap=DiffEqBase.NullParameters();
696693
version = nothing, tgrad=false,
697694
jac = false,

0 commit comments

Comments
 (0)