@@ -327,3 +327,26 @@ function make_sub!(eq,states_swaps)
327
327
end
328
328
return eq
329
329
end
330
+
331
+ # ## Converts a reaxction system to ODe or SDE problems ###
332
+
333
+ # ODEProblem from AbstractReactionNetwork
334
+ 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... )
336
+ end
337
+
338
+ # SDEProblem from AbstractReactionNetwork
339
+ function DiffEqBase. SDEProblem (rs:: ReactionSystem , u0:: Union{AbstractArray, Number} , tspan, p, args... ; kwargs... )
340
+ 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... )
342
+ end
343
+
344
+ # 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... )
347
+ end
348
+
349
+ # JumpProblem from AbstractReactionNetwork
350
+ function DiffEqJump. JumpProblem (prob, aggregator, rs:: ReactionSystem , args... ; kwargs... )
351
+ return JumpProblem (convert (JumpSystem,rs), prob, aggregator, args... ; kwargs... )
352
+ end
0 commit comments