SciML / JumpProcesses.jl

Build and simulate jump equations like Gillespie simulations and jump diffusions with constant and state-dependent rates and mix with differential equations and scientific machine learning (SciML)
https://docs.sciml.ai/JumpProcesses/stable/
Other
135 stars 35 forks source link

Automatic selection of solver method (e.g. `SSAStepper()`) #419

Open TorkelE opened 2 months ago

TorkelE commented 2 months ago

I am currently updating some docs in Catalyst. Especially for the introduction docs, it would be nice to skip discussing e.g. solvers. Apparently, automatic solver selection for ODEs is about to get merged into OrdinaryDiffEq. Next, https://github.com/SciML/JumpProcesses.jl/pull/351 is more or less read (which would relax the requirement to provide a solver to JumpProblem. This leaves us with simulation methods for JumpProcesse's solve commands, and for StochasticDiffEq.

Wouldn't it be relatively straightforward to add automatic method selection for JumpProcesses's solve? It seems that for pure jump systems without finny jumps/callbacks, SSAStepper can simply be used. It should also be possible to detect when this cannot be used, and select an alternative (or at least throwing an error when this cannot be done).

I think would be convenient, and also relive us from writing "pretty much just write SSAStepper() for now, however, there are some exceptions we will get to and you can read about that here" at an early stage of most docs.

ChrisRackauckas commented 2 months ago

Yeah it would be relatively straightforward to add that. And I think automating the aggregator choice would be good as well.