Skip to content

Commit 180b978

Browse files
feat: build initialization system for all system types in process_SciMLProblem
1 parent 4044317 commit 180b978

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/systems/problem_utils.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -540,8 +540,9 @@ function maybe_build_initialization_problem(
540540
end
541541
if (((implicit_dae || has_observed_u0s || !isempty(missing_unknowns) ||
542542
!isempty(solvablepars) || has_dependent_unknowns) &&
543-
get_tearing_state(sys) !== nothing) ||
544-
!isempty(initialization_equations(sys))) && t !== nothing
543+
(!has_tearing_state(sys) || get_tearing_state(sys) !== nothing)) ||
544+
!isempty(initialization_equations(sys))) &&
545+
(!is_time_dependent(sys) || t !== nothing)
545546
initializeprob = ModelingToolkit.InitializationProblem(
546547
sys, t, u0map, pmap; guesses, kwargs...)
547548
initializeprobmap = getu(initializeprob, unknowns(sys))
@@ -567,7 +568,9 @@ function maybe_build_initialization_problem(
567568
end
568569
empty!(missing_unknowns)
569570
return (;
570-
initializeprob, initializeprobmap, initializeprobpmap, update_initializeprob!)
571+
initialization_data = SciMLBase.OverrideInitData(
572+
initializeprob, update_initializeprob!, initializeprobmap,
573+
initializeprobpmap))
571574
end
572575
return (;)
573576
end
@@ -662,7 +665,7 @@ function process_SciMLProblem(
662665
op, missing_unknowns, missing_pars = build_operating_point(
663666
u0map, pmap, defs, cmap, dvs, ps)
664667

665-
if sys isa ODESystem && build_initializeprob
668+
if build_initializeprob
666669
kws = maybe_build_initialization_problem(
667670
sys, op, u0map, pmap, t, defs, guesses, missing_unknowns;
668671
implicit_dae, warn_initialize_determined, initialization_eqs,

0 commit comments

Comments
 (0)