@@ -5,6 +5,7 @@ module MTKBifurcationKitExt
55#  Imports
66using  ModelingToolkit, Setfield
77import  BifurcationKit
8+ using  SymbolicIndexingInterface:  is_time_dependent
89
910# ## Observable Plotting Handling ###
1011
@@ -94,6 +95,14 @@ function BifurcationKit.BifurcationProblem(nsys::System,
9495    if  ! ModelingToolkit. iscomplete (nsys)
9596        error (" A completed `System` is required. Call `complete` or `structural_simplify` on the system before creating a `BifurcationProblem`" 
9697    end 
98+     if  is_time_dependent (nsys)
99+         nsys =  System ([0  ~  eq. rhs for  eq in  full_equations (nsys)],
100+             unknowns (nsys),
101+             parameters (nsys);
102+             observed =  observed (nsys),
103+             name =  nameof (nsys))
104+         nsys =  complete (nsys)
105+     end 
97106    @set!  nsys. index_cache =  nothing  #  force usage of a parameter vector instead of `MTKParameters`
98107    #  Creates F and J functions.
99108    ofun =  NonlinearFunction (nsys; jac =  jac)
@@ -143,17 +152,4 @@ function BifurcationKit.BifurcationProblem(nsys::System,
143152        kwargs... )
144153end 
145154
146- #  When input is a ODESystem.
147- function  BifurcationKit. BifurcationProblem (osys:: System , args... ; kwargs... )
148-     if  ! ModelingToolkit. iscomplete (osys)
149-         error (" A completed `ODESystem` is required. Call `complete` or `structural_simplify` on the system before creating a `BifurcationProblem`" 
150-     end 
151-     nsys =  System ([0  ~  eq. rhs for  eq in  full_equations (osys)],
152-         unknowns (osys),
153-         parameters (osys);
154-         observed =  observed (osys),
155-         name =  nameof (osys))
156-     return  BifurcationKit. BifurcationProblem (complete (nsys), args... ; kwargs... )
157- end 
158- 
159155end  #  module
0 commit comments