
I am new on this list and want to start a discussion if a library for solving ordinary differential equations (ODEs) would fit into boost.
...
ODEs are usually solved iteratively. Therefore, we have introduced two stepper concepts, one for steppers with- and one for steppers without error estimation. At the moment some explicit solvers are implemented: Euler, RK4, Cash Karp, RK78,midpoint and Burlisch-Stoer.
Without meaning to be off putting, have you looked at pure C libraries like the GNU Scientific Library to see if they contain what you need?
GSL's routines [1] are quite good and cover a large number of the features you mention. You might save yourself the trouble of writing and testing everything and instead only need to wrap the GSL routines with your C++ interface. If GSL doesn't contain exactly what you want (RK78 comes to mind), you'll probably find the GSL ODE framework quite useful for writing the stepper you want. If you choose to submit it there, then everyone in C- and C++-land benefits from the submission. We are aware of the GSL and have used it for several problems. In our opinion,
On Monday 14 December 2009 17:12:05 Rhys Ulerich wrote: the GSL has a major drawback: it uses its own, double based vector structure. It also has a very bulky interface which is not very intuitive to use - at least that's our impression. Say you want to solve a ode based for N-dimensional complex valued vector - GSL requires you to transform to a 2N dimensional real valued problem. odeint doesn't. Additionally, a header-only library often leads to faster code, at least to my understanding. Anyways, wrapping the GSL is not what we want to do.
- Rhys
Regards, Mario