@@ -675,13 +675,17 @@ Take dictionaries with initial conditions and parameters and convert them to num
675675function get_u0_p (sys,
676676 u0map,
677677 parammap = nothing ;
678+ t0 = nothing ,
678679 use_union = true ,
679680 tofloat = true ,
680681 symbolic_u0 = false )
681682 dvs = unknowns (sys)
682683 ps = parameters (sys)
683684
684685 defs = defaults (sys)
686+ if t0 != = nothing
687+ defs[get_iv (sys)] = t0
688+ end
685689 if parammap != = nothing
686690 defs = mergedefaults (defs, parammap, ps)
687691 end
@@ -717,14 +721,19 @@ function get_u0_p(sys,
717721 end
718722 p = varmap_to_vars (parammap, ps; defaults = defs, tofloat, use_union)
719723 p = p === nothing ? SciMLBase. NullParameters () : p
724+ t0 != = nothing && delete! (defs, get_iv (sys))
720725 u0, p, defs
721726end
722727
723728function get_u0 (
724- sys, u0map, parammap = nothing ; symbolic_u0 = false , toterm = default_toterm)
729+ sys, u0map, parammap = nothing ; symbolic_u0 = false ,
730+ toterm = default_toterm, t0 = nothing )
725731 dvs = unknowns (sys)
726732 ps = parameters (sys)
727733 defs = defaults (sys)
734+ if t0 != = nothing
735+ defs[get_iv (sys)] = t0
736+ end
728737 if parammap != = nothing
729738 defs = mergedefaults (defs, parammap, ps)
730739 end
@@ -745,6 +754,7 @@ function get_u0(
745754 else
746755 u0 = varmap_to_vars (u0map, dvs; defaults = defs, tofloat = true , toterm)
747756 end
757+ t0 != = nothing && delete! (defs, get_iv (sys))
748758 return u0, defs
749759end
750760
@@ -819,20 +829,22 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
819829 end
820830
821831 if has_index_cache (sys) && get_index_cache (sys) != = nothing
822- u0, defs = get_u0 (sys, trueinit, parammap; symbolic_u0)
832+ u0, defs = get_u0 (sys, trueinit, parammap; symbolic_u0,
833+ t0 = constructor <: Union{DDEFunction, SDDEFunction} ? nothing : t)
823834 check_eqs_u0 (eqs, dvs, u0; kwargs... )
824835 p = if parammap === nothing ||
825836 parammap == SciMLBase. NullParameters () && isempty (defs)
826837 nothing
827838 else
828- MTKParameters (sys, parammap, trueinit; eval_expression, eval_module)
839+ MTKParameters (sys, parammap, trueinit; t0 = t, eval_expression, eval_module)
829840 end
830841 else
831842 u0, p, defs = get_u0_p (sys,
832843 trueinit,
833844 parammap;
834845 tofloat,
835846 use_union,
847+ t0 = constructor <: Union{DDEFunction, SDDEFunction} ? nothing : t,
836848 symbolic_u0)
837849 p, split_idxs = split_parameters_by_type (p)
838850 if p isa Tuple
0 commit comments