SciML / DASSL.jl

Solves stiff differential algebraic equations (DAE) using variable stepsize backwards finite difference formula (BDF) in the SciML scientific machine learning organization
https://benchmarks.sciml.ai/
Other
33 stars 17 forks source link

common interface bindings #15

Closed ChrisRackauckas closed 7 years ago

ChrisRackauckas commented 7 years ago

This adds common interface bindings so that for a DAEProblem, DASSL.jl can be called via

sol = solve(prob,dassl())

when @mauro3 's work on promotion is done, this will make it also a native BDF method for solving ODEs.

A lot of the DASSL arguments are able to be used, but not all. A further PR may add to this, including support for passing the Jacobian through the common interface way.

Note that since DASSL.jl needs a non-inplace version, this uses a closure to automatically change an inplace function a non-inplace function. To choose the size of the output, I made it match du. This is something that may be subject to change as we may need an "output prototype" in some cases (this would be needed to be added to the problem type).

All in all, it works and it's a good start.