Boost logo

Boost :

Subject: [boost] [odeint] GSoC Summary and Feedback request
From: Mario Mulansky (mario.mulansky_at_[hidden])
Date: 2011-08-22 14:01:29


Hi,

this is a summary of the progress of the odeint-library during this years
GSoC. First of all I would like to thank Andrew for mentoring this project
and also for the many fruitful comments and hints he gave during the past
months.

The aim of the project was to finalize odeint and prepare it for a boost
review. This goal has been, more or less, achieved, I think. Although some
work on docs and maybe some minor usability improvements are to be done we
think we have reached a state of development ready for a review and we
might try take this step in the near future.

The puropose of odeint is to provide algorithms to numerically solve
ordinary differential equations (ODEs) given as initial value problems:
x'(t) = f(x,t) , x(0) = x0. It is written by Karsten Ahnert and myself.
Please visit the docs to find out more about the features and abilities of
odeint:
http://headmyshoulder.github.com/odeint-v2/doc/index.html

During the GSoC project, we switched from a svn branch in the boost
sandbox to a new git project called odeint-v2:
https://github.com/headmyshoulder/odeint-v2

In terms of code, I have made the following improvements to odeint:

* Implementation and performance tests of a generic Runge-Kutta algorithm.
* Implementation of several algorithms using the generic Runge-Kutta
scheme (rk4, rk54ck, rk78)
* Redesign of the construction/destruction of temporary states by use of a
state_wrapper
* Redesign of the resizing functionality by usage of boost::bind
* Redesing of the algebra implementation to now use instances instead of
static functions.
* Creating mkl_operations to make use of Intel's MKL for optimal
performance
* major refactorings (e.g. renaming stepper classes)
* Implementation of a Bulirsch-Stoer stepper with dense output
* Improvement of integrate functions so they have consistent behavior
* Adding integrate_times function to allow for observation at user defined
time points
* Adding unit tests for integrate functions

Additionally, I worked on the documentation:

* Created an overview over all implemented algorithms
* Adding a resizing example to the tutorials section
* Adding a description of the integrate functions
* Adding a brief concept description of steppers, system and observer
* Adding a brief overview on the Algebra/Operations and how they interact

Besides his fruitful input and discussions related to my work presented
above, Karsten also put quite some effort into odeint during the GSoC
period, e.g. providing examples and tutorials in the docs section or
adding multistep and implicit algorithms (adams-bashforth, rosenbrock4).

We are very happy about any feedback on the work done within this GSoC or
on odeint in general. If you have any further question please feel also
invited to contact us.

Finally, I want to thank the boost communtity for giving me the
possibility to take part in this years GSoC as part of the boost
organization. I have learned a lot during this time and I think odeint
took a major step forward in terms of design and extent.

Regards,
Mario


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk