Feedback

Here, we collect some statements of satisfied users of odeint. If you also happily use our library you are welcome to send us your opinion. Of course, we are even more interested in any problems you encounter so we can try to fix it and make odeint even better - just open an issue on github.

One of the largest problems I came up against when working with C or Fortran was the lack of useful integrators. Obviously integrators are available, but I found myself jumping through hoops. In the case of C, I was using the GSL library, which both defines its own complex type (C has had its own since C99) and then fails to use it for the integrator routines, necessitating the doubling of the size of the system. That's not all that difficult in practise, but it's a an additional layer in the code that doesn't help readability. Worse, the routines rely on arcane drivers which means cracking out the manual, which is also unhelpful. In the case of Fortran, the VODE integrators are good, but require your program to be arranged in a particular way. Not so good for plug and play ODE solving.

Recently I came across the C++ odeint library. I was so impressed by its flexibility that I actually started using C++ (having had no prior experience) just for the convenience of it. I'm glad that I did this, because C++ has some other very useful features that make solving quantum mechanical systems simpler. Probably the most important feature that I use (perhaps abuse) is functors, a kind class with which instances can be used as functions.

I am impressed of the design. To say the big things first, I am impressed by the possibility to use CUDA and OpenCL for parallel computation of various ODE types in a simple manner. The simple and straight forward interface allowed an immediate usage of the library. This library is also made for a versatile usage due to the many algorithms (steppers) implemented. I can e.g. try different numerical approaches und compare the outcome or the performance. The performance during simulation is optimal, and outperforms most standard libraries (e.g. GSL). I also appreciate the modern C++ style (STL), in comparison to GSL which is more C oriented.

First of all, I just found your excellent library odeint-v2. I really like your approach to the design of the library. I was just thinking of trying to write something like this for a project I was doing, but luckily you already did it.

Søren Gammelmark