Solver Compatibility Chart

Solver Compatibility Chart

This chart is for documenting the compatibility of the component solver packages to the common interface. An x means that the option is implemented or the add-on functionality will work with the given solver. A blank means that the option has not been implemented or that a given add-on has not been tested with a given package. If there are any errors in this chart, please file an issue or submit a pull-request.

OptionOrdinaryDiffEq.jlSundials.jlODE.jlODEInterface.jlLSODA.jlStochasticDiffEq.jlDelayDiffEq.jlDASKR.jlDASSL.jl
Nonlinear Dense (continuous) outputxxxxx
Tolerance controlxxxxxxxxx
Advanced stepsize controlx0x0xx0
Mass Matrices^x0x0xx0
Analytical Jacobians^†xxxxxx
General Performance Overloads^†x000xx0
internalnormx0x00xx0
Initial dtxxxxxxx
save_everystepxxxxxxxx
timeseries_stepsxxx
saveatxxxxxxxx
tstopsxx0xxx
d_discontinuitiesx0xx
isoutofdomainxxxx
Allows reverse time directionxxxxxxx
Unitful numbersx000x0
Arbitrary dimension arraysxxxxxxxxx
Complex numberspxp
Arbitrary precisionx0x00xx0x
ApproxFun typesx000x0
Progress monitoringxxx
Integrator interfacexx0xx
Resizabilityx000xx0
Cache iteratorx000xx0
Can choose linear solversxsxxsx
Can choose nonlinear solversx000xx0x
Can use out of place nativelyx0x00xx0x
Can use inplace nativelyxxxxxxx
Compatible with DiffEqDevToolsxxxxxxxx
Compatible with ParameterizedFunctionsxxxxxxxx
Continuous Callbacksxxxxxx
Discrete Callbacksxxxxx
Monte Carlo Simulationsxxxxxxxx
Parameter Estimationxnnnnxxnx
Parameter Sensitivity Analysisxxxxxx
Plotting and solution handlingxxxxxxxxx

All blank spaces are possible future additions.

Note on PDEs

This chart is only for the basic (ODE/SDE/DAE/DDE) solver methods. The PDE solvers (will be) built on top of these packages and thus will have the same options available. Current, FiniteElementDiffEq.jl is a solo implemention which is compatible with save_everystep, timeseries_steps, plotting and solution handling, arbitrary precision, and choice of dt.