Boost logo

Boost :

Subject: Re: [boost] [Review] ODEInt review starts today, September 19, ends September 28
From: Hal Finkel (hfinkel_at_[hidden])
Date: 2012-09-27 19:48:59

On Wed, 19 Sep 2012 08:46:18 -0700
Steven Watanabe <watanabesj_at_[hidden]> wrote:

> The review of Karsten Ahnert and Mario Mulansky's
> ODEInt library starts today September 19th and
> will end on September 28.
> --------------------------------------
> About the library:
> odeint provides routines for numerically solving Ordinary Differential
> Equations, a task heavily required when approaching scientific
> problems numerically. In odeint we have implemented the most common
> algorithms in a modern, generic way which provides several advantages
> over existing implementations. The main focus of odeint is to
> separate algorithms from the underlying basic computation unit. This
> allows for example to easily use the power of modern GPUs via CUDA or
> OpenCL to speed up computational heavy simulations.
> Features:
> - provides most of the standard algorithms, including step size
> control, dense ouput and extrapolation routines
> - symplectic routines for Hamiltonian systems
> - implicit routines based on boost::ublas (MTL4 in progress)
> - high level integrate functions
> - interchangeable computation backend with existing bindings to CUDA
> and OpenCL
> - native support of ODEs defined for complex values
> - support of Boost.Units in most of the algorithms
> - support of arbitrary precision types
> You can download the library and view the documentation here:
> zip:
> github:
> docs:
> --------------------------------------
> Please always state in your review, whether you think the library
> should be accepted as a Boost library!

Yes, I believe that this library should be accepted.

> Additionally please consider giving feedback on the following general
> topics:
> - What is your evaluation of the design?

This looks like one of the best designed, and most extensible, C++ ODE
integrator libraries available.

> - What is your evaluation of the implementation?

I've not studied it in detail, but the implementation looks
reasonable. It offers a wide variety of common algorithms, including
symplectic algorithms, with error control, and that makes this
implementation quite valuable.

There is still a lot of commented-out code which should be removed. The
"[auto_generated]" tag at the top of the files should also be removed
(unless some method for regenerating them is also being provided).

> - What is your evaluation of the documentation?

I think that the documentation is pretty good, although the tone is, I
think, I little too informal. Two specific suggestions:

 1. Remove all instances of 'of course' -- This phrase occurs at least
 20 times in the documentation.

 2. Say "the full source file", or something similar, instead of "the
 full cpp file".

As has been noted, there are sections missing under special topics.

> - What is your evaluation of the potential usefulness of the library?

I think that this library will be useful for both scientists (and
others who do numerical modeling) and students. Importantly, this
library implements error control, which is an important feature missing
from many available lightweight integrator implementations. In addition
to solving ODEs, the library will be useful for solving PDEs (using the
standard method-of-lines decomposition).

> - Did you try to use the library? With what compiler? Did you have
> any problems?

I compiled some of the examples using g++ 4.4.3.

> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?

A quick reading: ~2 hours.

> - Are you knowledgeable about the problem domain?



> In Christ,
> Steven Watanabe
> _______________________________________________
> Unsubscribe & other changes:

Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory

Boost list run by bdawes at, gregod at, cpdaniel at, john at