Skip to content

Commit 9bfa99f

Browse files
committed
Enable creation of Steady State Problems from Reaction Systems.
1 parent 794e0e3 commit 9bfa99f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/systems/reaction/reactionsystem.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ explicitly on the independent variable (usually time).
236236
function ismassaction(rx, rs; rxvars = get_variables(rx.rate),
237237
haveivdep = any(var -> isequal(rs.iv,convert(Variable,var)), rxvars))
238238
# if no dependencies must be zero order
239-
if isempty(rxvars)
239+
if isempty(rxvars)
240240
return true
241241
else
242242
return !(haveivdep || rx.only_use_rate || any(convert(Variable,rxv) in states(rs) for rxv in rxvars))
@@ -246,7 +246,7 @@ end
246246
function assemble_jumps(rs)
247247
eqs = Vector{Union{ConstantRateJump, MassActionJump, VariableRateJump}}()
248248

249-
for rx in equations(rs)
249+
for rx in equations(rs)
250250
rxvars = (rx.rate isa Operation) ? get_variables(rx.rate) : Operation[]
251251
haveivdep = any(var -> isequal(rs.iv,convert(Variable,var)), rxvars)
252252
if ismassaction(rx, rs; rxvars=rxvars, haveivdep=haveivdep)
@@ -366,3 +366,10 @@ end
366366
function DiffEqJump.JumpProblem(rs::ReactionSystem, prob, aggregator, args...; kwargs...)
367367
return JumpProblem(convert(JumpSystem,rs), prob, aggregator, args...; kwargs...)
368368
end
369+
370+
# SteadyStateProblem from AbstractReactionNetwork
371+
function DiffEqBase.SteadyStateProblem(rs::ReactionSystem, u0::Union{AbstractArray, Number}, p, args...; kwargs...)
372+
#u0 = typeof(u0) <: Array{<:Pair} ? u0 : Pair.(rs.states,u0)
373+
#p = typeof(p) <: Array{<:Pair} ? p : Pair.(rs.ps,p)
374+
return SteadyStateProblem(ODEFunction(convert(ODESystem,rs)),u0,p, args...; kwargs...)
375+
end

0 commit comments

Comments
 (0)