@@ -559,34 +559,31 @@ function process_DEProblem(constructor, sys::AbstractODESystem,u0map,parammap;
559
559
ps = parameters (sys)
560
560
defs = defaults (sys)
561
561
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
579
572
end
580
573
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)
582
579
if implicit_dae && du0map != = nothing
583
580
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)
585
582
else
586
583
du0 = nothing
587
584
ddvs = nothing
588
585
end
589
- p = varmap_to_vars (parammap,ps; defaults= pdefs)
586
+ p = varmap_to_vars (parammap, ps; defaults= pdefs)
590
587
591
588
check_eqs_u0 (eqs, dvs, u0; kwargs... )
592
589
@@ -691,7 +688,7 @@ merge_cb(x, y) = CallbackSet(x, y)
691
688
692
689
"""
693
690
```julia
694
- function DiffEqBase.DAEProblem{iip}(sys::AbstractODESystem,u0map,tspan,
691
+ function DiffEqBase.DAEProblem{iip}(sys::AbstractODESystem,du0map, u0map,tspan,
695
692
parammap=DiffEqBase.NullParameters();
696
693
version = nothing, tgrad=false,
697
694
jac = false,
0 commit comments