System Constructors

struct JumpSystem{U<:RecursiveArrayTools.ArrayPartition} <: AbstractTimeDependentSystem

A system of jump processes.


  • eqs

    The jumps of the system. Allowable types are ConstantRateJump, VariableRateJump, MassActionJump.

  • iv

    The independent variable, usually time.

  • states

    The dependent variables, representing the state of the system. Must not contain the independent variable.

  • ps

    The parameters of the system. Must not contain the independent variable.

  • var_to_name

    Array variables.

  • observed

  • name

    The name of the system. . These are required to have unique names.

  • systems

    The internal systems.

  • defaults

    defaults: The default values to use when initial conditions and/or parameters are not supplied in ODEProblem.

  • connector_type

    type: type of the system


using ModelingToolkit

@parameters β γ
@variables t S(t) I(t) R(t)
rate₁   = β*S*I
affect₁ = [S ~ S - 1, I ~ I + 1]
rate₂   = γ*I
affect₂ = [I ~ I - 1, R ~ R + 1]
j₁      = ConstantRateJump(rate₁,affect₁)
j₂      = ConstantRateJump(rate₂,affect₂)
j₃      = MassActionJump(2*β+γ, [R => 1], [S => 1, R => -1])
@named js      = JumpSystem([j₁,j₂,j₃], t, [S,I,R], [β,γ])

Composition and Accessor Functions

  • get_eqs(sys) or equations(sys): The equations that define the jump system.
  • get_states(sys) or states(sys): The set of states in the jump system.
  • get_ps(sys) or parameters(sys): The parameters of the jump system.
  • get_iv(sys): The independent variable of the jump system.


Missing docstring.

Missing docstring for structural_simplify. Check Documenter's build log for details.


Problem Constructors

function DiffEqBase.DiscreteProblem(sys::JumpSystem, u0map, tspan,

Generates a blank DiscreteProblem for a pure jump JumpSystem to utilize as its prob.prob. This is used in the case where there are no ODEs and no SDEs associated with the system.

Continuing the example from the JumpSystem definition:

using DiffEqBase, DiffEqJump
u₀map = [S => 999, I => 1, R => 0]
parammap = [β => .1/1000, γ => .01]
tspan = (0.0, 250.0)
dprob = DiscreteProblem(js, u₀map, tspan, parammap)
DiscreteProblem(sys::DiscreteSystem, u0map, tspan) -> Any
DiscreteProblem(sys::DiscreteSystem, u0map, tspan, parammap; eval_module, eval_expression, use_union, kwargs...) -> Any

Generates an DiscreteProblem from an DiscreteSystem.

function DiffEqBase.JumpProblem(js::JumpSystem, prob, aggregator; kwargs...)

Generates a JumpProblem from a JumpSystem.

Continuing the example from the DiscreteProblem definition:

jprob = JumpProblem(js, dprob, Direct())
sol = solve(jprob, SSAStepper())