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).
This adds common interface bindings so that for a
DAEProblem
, DASSL.jl can be called viawhen @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.