[SciPy-Dev] Adding new wrappers (dassl, daspk version 2, cvode version 2.7.0) to scipy.integrate?

Geoff Oxberry goxberry at gmail.com
Tue Jun 19 21:38:31 EDT 2012


Claus,

What made me skittish about the API documentation of Assimulo is when you describe the CVODE in the "Documentation contents" page of your documentation (http://www.jmodelica.org/assimulo) as an "explicit solver". That, to me, seemed "non-standard".

After an initial moment of confusion, I realized that you were instead talking about explicit ordinary differential equations, not explicit methods for integrating ODEs. (I believe my comments on the Trac Ticket reflect this.) As someone who's seen enough software thrown out there by people who either don't maintain it, or don't document it, I get very skeptical when I see something that looks out of place in documentation. Anyone who jumps to the Assimulo home page will immediately realize the distinction you're making; I just happened to type in "assimulo documentation" because I had already been recommended the package by a user on Computational Science Stack Exchange (of which I am a moderator).

When I downloaded your project to compile the Trac ticket report, I did notice that your project is among the more actively maintained wrappers of Sundials out there, and receiving an e-mail from you is a pleasant surprise. I also appreciate that your project has documentation. Of the six wrappers to Sundials or DASSL that I know of out there, Assimulo looks like it's the best documented.

Recently, I attempted to integrate a stiff system of ODEs derived from the GRI-Mech 3.0 combustion chemistry model with DVODE, varying the absolute tolerances from 1e-9 to 1e-20 and the relative tolerances from 1e-6 to 1e-15. For whatever reason, I don't obtain the expected solution behavior, but I do obtain the expected solution behavior with the MATLAB wrapper to CVODE, and I also obtain this behavior with a modified version of DASSL (that simulation was programmed in Fortran 90). Perhaps I should give Assimulo's wrapper a try, especially since I've found that IDA tends to work well on my problems also.

That said, I still believe that DVODE in scipy.integrate should be supplemented (or even replaced) by CVODE. DVODE has had a long history of successful use in combustion chemistry, but CVODE, DASSL, DASPK, and IDA seem to have superior stepping heuristics for these sorts of problems, based on my 5 or so years of experience working on them.

Thank you for your response,

Geoff


More information about the SciPy-Dev mailing list