Hello,

A quick followup on the subject of finding a Python wrapper for
SUNDIALS.
Good news is that there are a few projects that did it already.
I will short review what I found.

1) python-sundials http://code.google.com/p/python-sundials/
Just a Cython wrapper around the original SUNDIALS code (CVODE, IDA,
KINSOL).
It seems to work fine.

2) pySundials http://pysundials.sourceforge.net/
It is a wrapper based on Ctypes.
It was a MSc. task as pointed by the author on the Sundials mailing
list.
It stopped on the older Sundials 2.4 version, Sourceforge doesn't seem
to be maintained anymore.

3) DAE tools http://daetools.sourceforge.net
It was pointed above by David. It uses the IDAS for sensitivities.
It looks very interesting. Specially because it has already hooks for
other linear solvers, seems on the way for very large number
crunching.
As far as I see it has its own way to code the models (in Python).

4) CasADI http://sourceforge.net/apps/trac/casadi/
Has C++ and Python access to Sundials (CVODES, IDAS and KINSOL).
Python intervace is auto generated with SWIG.
It has a pretty nice Python example on van der Pol and its
sensitivities.
Actually I will try to meet the developers since we are on the same
campus here at K.U. Leuven, Belgium.
This tool also employ IDAS, the one with sensitivity...

5) JModelica / Assimulo http://www.jmodelica.org/assimulo
Very nice and clean. Cython wrapper for Sundials (CVODE, IDA). It also
has RADAU5, RK and Euler
Besides other things it is used/developed as a teaching tool for ODE/
DAE simulation at Lund Univ. (Sweden).
http://www.maths.lth.se/na/courses/FMNN05/media/material/cv_master.html
http://www.maths.lth.se/na/courses/FMNN05/exercises/

==

I am looking first on 1) and 5) because they are direct approaches to
the subject of Sundials / Python / Sage.
The 4) is also attractive since the developers are just around the
corner...

With python-sundials I am getting a silly error with my model. Surely
I have to dig further on how to set up the time-stepping and settings
properly.

On Assimulo I just had to rewrite my problem from M(y) y' = f(t,y)
into F(t,y,y') = 0 and it promptly worked!

I will try to run this codes form inside Sage and hand them some
symbolic stuff to solve...

Regards,
G.

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to