@@ -397,16 +397,30 @@ function process_DEProblem(constructor, sys::AbstractODESystem,u0map,parammap;
397
397
ps = parameters (sys)
398
398
defs = defaults (sys)
399
399
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
400
414
401
- u0 = varmap_to_vars (u0map,dvs; defaults= merge (defs, Dict (parammap)) )
415
+ u0 = varmap_to_vars (u0map,dvs; defaults= u0defs )
402
416
if implicit_dae && du0map != = nothing
403
417
ddvs = map (Differential (iv), dvs)
404
418
du0 = varmap_to_vars (du0map, ddvs; defaults= defaults, toterm= identity)
405
419
else
406
420
du0 = nothing
407
421
ddvs = nothing
408
422
end
409
- p = varmap_to_vars (parammap,ps; defaults= merge (defs, Dict (u0map)) )
423
+ p = varmap_to_vars (parammap,ps; defaults= pdefs )
410
424
411
425
check_eqs_u0 (eqs, dvs, u0)
412
426
0 commit comments