Skip to content

Commit d32c886

Browse files
committed
Can now use combination of [X=>1.] and [1.] as input.
1 parent 42f4b66 commit d32c886

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/systems/reaction/reactionsystem.jl

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -332,18 +332,25 @@ end
332332

333333
# ODEProblem from AbstractReactionNetwork
334334
function DiffEqBase.ODEProblem(rs::ReactionSystem, u0::Union{AbstractArray, Number}, tspan, p, args...; kwargs...)
335-
return ODEProblem(convert(ODESystem,rs),Pair.(rs.states,u0),tspan,Pair.(rs.ps,p), args...; kwargs...)
335+
println("HERE")
336+
u0 = typeof(u0) <: Array{<:Pair} ? u0 : Pair.(rs.states,u0)
337+
p = typeof(p) <: Array{<:Pair} ? p : Pair.(rs.ps,p)
338+
return ODEProblem(convert(ODESystem,rs),u0,tspan,p, args...; kwargs...)
336339
end
337340

338341
# SDEProblem from AbstractReactionNetwork
339342
function DiffEqBase.SDEProblem(rs::ReactionSystem, u0::Union{AbstractArray, Number}, tspan, p, args...; kwargs...)
343+
u0 = typeof(u0) <: Array{<:Pair} ? u0 : Pair.(rs.states,u0)
344+
p = typeof(p) <: Array{<:Pair} ? p : Pair.(rs.ps,p)
340345
p_matrix = zeros(length(rs.states), length(rs.eqs))
341-
return SDEProblem(convert(SDESystem,rs),Pair.(rs.states,u0),tspan,Pair.(rs.ps,p),args...; noise_rate_prototype=p_matrix,kwargs...)
346+
return SDEProblem(convert(SDESystem,rs),u0,tspan,p,args...; noise_rate_prototype=p_matrix,kwargs...)
342347
end
343348

344349
# DiscreteProblem from AbstractReactionNetwork
345-
function DiffEqBase.DiscreteProblem(rs::ReactionSystem, u0, tspan::Tuple, p=nothing, args...; kwargs...)
346-
return DiscreteProblem(convert(JumpSystem,rs), Pair.(rs.states,u0),tspan,Pair.(rs.ps,p), args...; kwargs...)
350+
function DiffEqBase.DiscreteProblem(rs::ReactionSystem, u0::Union{AbstractArray, Number}, tspan::Tuple, p=nothing, args...; kwargs...)
351+
u0 = typeof(u0) <: Array{<:Pair} ? u0 : Pair.(rs.states,u0)
352+
p = typeof(p) <: Array{<:Pair} ? p : Pair.(rs.ps,p)
353+
return DiscreteProblem(convert(JumpSystem,rs), u0,tspan,p, args...; kwargs...)
347354
end
348355

349356
# JumpProblem from AbstractReactionNetwork

0 commit comments

Comments
 (0)