-
Added a default aggregator selection algorithm based on the number of passed in jumps. i.e. the following now auto-selects an aggregator (
Direct
in this case):using JumpProcesses rate(u, p, t) = u[1] affect(integrator) = (integrator.u[1] -= 1; nothing) crj = ConstantRateJump(rate, affect) dprob = DiscreteProblem([10], (0.0, 10.0)) jprob = JumpProblem(dprob, crj) sol = solve(jprob, SSAStepper())
-
For
JumpProblem
s overDiscreteProblem
s that only haveMassActionJump
s,ConstantRateJump
s, and boundedVariableRateJump
s, one no longer needs to specifySSAStepper()
when callingsolve
, i.e. the following now works for the previous example and is equivalent to manually passingSSAStepper()
:sol = solve(jprob)
-
Plotting a solution generated with
save_positions = (false, false)
now uses piecewise linear plots between any saved time points specified viasaveat
instead (previously the plots appeared piecewise constant even though each jump was not being shown). Note that solution objects still use piecewise constant interpolation, see the docs for details.
Coevolve
was updated to support use with coupled ODEs/SDEs. See the updated documentation for details, and note the comments there about one needing to ensure rate bounds hold however the ODE/SDE stepper could modify dependent variables during a timestep.
- Support for "bounded"
VariableRateJump
s that can be used with theCoevolve
aggregator for faster simulation of jump processes with time-dependent rates. In particular, if allVariableRateJump
s in a pure-jump system are bounded one can useCoevolve
withSSAStepper
for better performance. See the documentation, particularly the first and second tutorials, for details on defining and using boundedVariableRateJump
s.