@@ -675,13 +675,17 @@ Take dictionaries with initial conditions and parameters and convert them to num
675
675
function get_u0_p (sys,
676
676
u0map,
677
677
parammap = nothing ;
678
+ t0 = nothing ,
678
679
use_union = true ,
679
680
tofloat = true ,
680
681
symbolic_u0 = false )
681
682
dvs = unknowns (sys)
682
683
ps = parameters (sys)
683
684
684
685
defs = defaults (sys)
686
+ if t0 != = nothing
687
+ defs[get_iv (sys)] = t0
688
+ end
685
689
if parammap != = nothing
686
690
defs = mergedefaults (defs, parammap, ps)
687
691
end
@@ -717,14 +721,19 @@ function get_u0_p(sys,
717
721
end
718
722
p = varmap_to_vars (parammap, ps; defaults = defs, tofloat, use_union)
719
723
p = p === nothing ? SciMLBase. NullParameters () : p
724
+ t0 != = nothing && delete! (defs, get_iv (sys))
720
725
u0, p, defs
721
726
end
722
727
723
728
function 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 )
725
731
dvs = unknowns (sys)
726
732
ps = parameters (sys)
727
733
defs = defaults (sys)
734
+ if t0 != = nothing
735
+ defs[get_iv (sys)] = t0
736
+ end
728
737
if parammap != = nothing
729
738
defs = mergedefaults (defs, parammap, ps)
730
739
end
@@ -745,6 +754,7 @@ function get_u0(
745
754
else
746
755
u0 = varmap_to_vars (u0map, dvs; defaults = defs, tofloat = true , toterm)
747
756
end
757
+ t0 != = nothing && delete! (defs, get_iv (sys))
748
758
return u0, defs
749
759
end
750
760
@@ -819,20 +829,22 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
819
829
end
820
830
821
831
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)
823
834
check_eqs_u0 (eqs, dvs, u0; kwargs... )
824
835
p = if parammap === nothing ||
825
836
parammap == SciMLBase. NullParameters () && isempty (defs)
826
837
nothing
827
838
else
828
- MTKParameters (sys, parammap, trueinit; eval_expression, eval_module)
839
+ MTKParameters (sys, parammap, trueinit; t0 = t, eval_expression, eval_module)
829
840
end
830
841
else
831
842
u0, p, defs = get_u0_p (sys,
832
843
trueinit,
833
844
parammap;
834
845
tofloat,
835
846
use_union,
847
+ t0 = constructor <: Union{DDEFunction, SDDEFunction} ? nothing : t,
836
848
symbolic_u0)
837
849
p, split_idxs = split_parameters_by_type (p)
838
850
if p isa Tuple
0 commit comments