@@ -633,15 +633,16 @@ All other keyword arguments are forwarded to `InitializationProblem`.
633633function maybe_build_initialization_problem (
634634 sys:: AbstractSystem , op:: AbstractDict , u0map, pmap, t, defs,
635635 guesses, missing_unknowns; implicit_dae = false ,
636- u0_constructor = identity, floatT = Float64, kwargs... )
636+ time_dependent_init = is_time_dependent (sys), u0_constructor = identity,
637+ floatT = Float64, kwargs... )
637638 guesses = merge (ModelingToolkit. guesses (sys), todict (guesses))
638639
639640 if t === nothing && is_time_dependent (sys)
640641 t = zero (floatT)
641642 end
642643
643644 initializeprob = ModelingToolkit. InitializationProblem {true, SciMLBase.FullSpecialize} (
644- sys, t, u0map, pmap; guesses, kwargs... )
645+ sys, t, u0map, pmap; guesses, time_dependent_init, kwargs... )
645646 if state_values (initializeprob) != = nothing
646647 initializeprob = remake (initializeprob; u0 = floatT .(state_values (initializeprob)))
647648 end
@@ -660,7 +661,10 @@ function maybe_build_initialization_problem(
660661
661662 meta = get_metadata (initializeprob. f. sys)
662663
663- if is_time_dependent (sys)
664+ if time_dependent_init === nothing
665+ time_dependent_init = is_time_dependent (sys)
666+ end
667+ if time_dependent_init
664668 all_init_syms = Set (all_symbols (initializeprob))
665669 solved_unknowns = filter (var -> var in all_init_syms, unknowns (sys))
666670 initializeprobmap = u0_constructor ∘ getu (initializeprob, solved_unknowns)
@@ -700,7 +704,7 @@ function maybe_build_initialization_problem(
700704 end
701705 end
702706
703- if is_time_dependent (sys)
707+ if time_dependent_init
704708 for v in missing_unknowns
705709 op[v] = get_temporary_value (v, floatT)
706710 end
@@ -803,7 +807,7 @@ function process_SciMLProblem(
803807 symbolic_u0 = false , warn_cyclic_dependency = false ,
804808 circular_dependency_max_cycle_length = length (all_symbols (sys)),
805809 circular_dependency_max_cycles = 10 ,
806- substitution_limit = 100 , use_scc = true ,
810+ substitution_limit = 100 , use_scc = true , time_dependent_init = is_time_dependent (sys),
807811 force_initialization_time_independent = false , algebraic_only = false ,
808812 allow_incomplete = false , is_initializeprob = false , kwargs... )
809813 dvs = unknowns (sys)
@@ -858,7 +862,7 @@ function process_SciMLProblem(
858862 warn_cyclic_dependency, check_units = check_initialization_units,
859863 circular_dependency_max_cycle_length, circular_dependency_max_cycles, use_scc,
860864 force_time_independent = force_initialization_time_independent, algebraic_only, allow_incomplete,
861- u0_constructor, floatT)
865+ u0_constructor, floatT, time_dependent_init )
862866
863867 kwargs = merge (kwargs, kws)
864868 end
0 commit comments