Closed mauro3 closed 6 years ago
Large sparse Jacobians can now be numerically approximated using coloring with https://github.com/mauro3/MatrixColorings.jl. The bruss1d.jl example shows it in action.
Wow, the performance boost is really impressive. What is the increase in performance for smaller systems? Do you think it could be used in DASSL?
Thanks :-)
The coloring only really helps for sparse Jacobians (try setting N=5000 in the bruss1d example and use the numeric Jacobian in DASSL). I suspect small sparse systems may still be slower. You should be able to pretty much just plug it into DASSL except that I used in-place functions, see: https://github.com/mauro3/ODE.jl/blob/m3/rosw/src/rosw.jl#L465
This is work in progress of me and @jedbrown to implement Rosenbrock(-W) methods. It uses a different interface to what ODE.jl has: implicit in-place functions. Works for ODE and DAEs. At the moment two methods are implemented: Rodas3 and RA34PW2.
This will take some time until it is ready to be considered for a merge. But it works now (see
examples/
folder) and might be of use to someone. The simple benchmarks in the example folder suggests that these solvers can be faster and more memory efficient than DASSL andode23s
, e.g. van der Pol: