Skip to content

Commit 7d7c99b

Browse files
committed
add additional method for DiffEqBase.SteadyStateProblem
1 parent 56b4bbf commit 7d7c99b

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,6 @@ function DiffEqBase.ODEProblem(sys::AbstractODESystem, args...; kwargs...)
193193
ODEProblem{true}(sys, args...; kwargs...)
194194
end
195195

196-
function DiffEqBase.SteadyStateProblem(sys::AbstractODESystem, args...; kwargs...)
197-
SteadyStateProblem{true}(sys, args...; kwargs...)
198-
end
199-
200196
"""
201197
```julia
202198
function DiffEqBase.ODEProblem{iip}(sys::AbstractODESystem,u0map,tspan,
@@ -227,3 +223,39 @@ function DiffEqBase.ODEProblem{iip}(sys::AbstractODESystem,u0map,tspan,
227223
sparse=sparse)
228224
ODEProblem{iip}(f,u0,tspan,p;kwargs...)
229225
end
226+
227+
228+
### Enables Steady State Problems ###
229+
function DiffEqBase.SteadyStateProblem(sys::AbstractODESystem, args...; kwargs...)
230+
SteadyStateProblem{true}(sys, args...; kwargs...)
231+
end
232+
233+
"""
234+
```julia
235+
function DiffEqBase.SteadyStateProblem(sys::AbstractODESystem,u0map,tspan,
236+
parammap=DiffEqBase.NullParameters();
237+
version = nothing, tgrad=false,
238+
jac = false, Wfact = false,
239+
checkbounds = false, sparse = false,
240+
linenumbers = true, parallel=SerialForm(),
241+
kwargs...) where iip
242+
```
243+
Generates an SteadyStateProblem from an ODESystem and allows for automatically
244+
symbolically calculating numerical enhancements.
245+
"""
246+
function DiffEqBase.SteadyStateProblem(sys::AbstractODESystem,u0map,
247+
parammap=DiffEqBase.NullParameters();
248+
version = nothing, tgrad=false,
249+
jac = false, Wfact = false,
250+
checkbounds = false, sparse = false,
251+
linenumbers = true, parallel=SerialForm(),
252+
kwargs...) where iip
253+
dvs = states(sys)
254+
ps = parameters(sys)
255+
u0 = varmap_to_vars(u0map,dvs)
256+
p = varmap_to_vars(parammap,ps)
257+
f = ODEFunction(sys,dvs,ps,u0;tgrad=tgrad,jac=jac,Wfact=Wfact,checkbounds=checkbounds,
258+
linenumbers=linenumbers,parallel=parallel,
259+
sparse=sparse)
260+
SteadyStateProblem(f,u0,p;kwargs...)
261+
end

0 commit comments

Comments
 (0)