- Added the constant complexity next reaction method (CCNRM).
-
Added a default aggregator selection algorithm based on the number of passed in jumps. i.e. the following now auto-selects an aggregator (
Directin 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
JumpProblems overDiscreteProblems that only haveMassActionJumps,ConstantRateJumps, and boundedVariableRateJumps, 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 viasaveatinstead (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.
Coevolvewas 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"
VariableRateJumps that can be used with theCoevolveaggregator for faster simulation of jump processes with time-dependent rates. In particular, if allVariableRateJumps in a pure-jump system are bounded one can useCoevolvewithSSAStepperfor better performance. See the documentation, particularly the first and second tutorials, for details on defining and using boundedVariableRateJumps.