Engee documentation

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.

Option OrdinaryDiffEq.jl Sundials.jl ODE.jl ODEInterface.jl LSODA.jl StochasticDiffEq.jl DelayDiffEq.jl DASKR.jl DASSL.jl

Nonlinear Dense (continuous) output

x

x

x

x

x

Tolerance control

x

x

x

x

x

x

x

x

x

Advanced stepsize control

x

0

x

0

x

x

0

Mass Matrices^

x

0

x

0

x

x

0

Analytical Jacobians^†

x

x

x

x

x

x

General Performance Overloads^†

x

0

0

0

x

x

0

internalnorm

x

0

x

0

0

x

x

0

Initial dt

x

x

x

x

x

x

x

save_everystep

x

x

x

x

x

x

x

x

saveat

x

x

x

x

x

x

x

x

tstops

x

x

0

x

x

x

d_discontinuities

x

0

x

x

isoutofdomain

x

x

x

x

Allows reverse time direction

x

x

x

x

x

x

x

Unitful numbers

x

0

0

0

x

0

Arbitrary dimension arrays

x

x

x

x

x

x

x

x

x

Complex numbers

p

x

p

Arbitrary precision

x

0

x

0

0

x

x

0

x

ApproxFun types

x

0

0

0

x

0

Progress monitoring

x

x

x

Integrator interface

x

x

0

x

x

Resizability

x

0

0

0

x

x

0

Cache iterator

x

0

0

0

x

x

0

Can choose linear solvers

x

s

x

x

s

x

Can choose nonlinear solvers

x

0

0

0

x

x

0

x

Can use out of place natively

x

0

x

0

0

x

x

0

x

Can use inplace natively

x

x

x

x

x

x

x

Compatible with DiffEqDevTools

x

x

x

x

x

x

x

x

Compatible with ParameterizedFunctions

x

x

x

x

x

x

x

x

Continuous Callbacks

x

x

x

x

x

x

Discrete Callbacks

x

x

x

x

x

Monte Carlo Simulations

x

x

x

x

x

x

x

x

Parameter Estimation

x

n

n

n

n

x

x

n

x

Parameter Sensitivity Analysis

x

x

x

x

x

x

Plotting and solution handling

x

x

x

x

x

x

x

x

x

  • x: Full compatibility

  • p: Partial compatibility, only in nonstiff methods, unless the Jacobian is provided.

  • n: General compatibility, but not compatible with routines which require being able to autodifferentiate through the entire solver.

  • 0: Not possible. This is generally due to underlying inflexibility in a wrapped library.

  • s: Special, Sundials has its own linear solver choices.

  • ^: Only stiff (implicit) methods.

  • †: For packages with compatibility, no warning is given when a specific algorithm does not need to use this feature.

All blank spaces are possible future additions.