commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luc Maisonobe (JIRA)" <>
Subject [jira] [Commented] (MATH-172) implementation of implicit Runge-Kutta method for stiff differential equations
Date Sat, 03 Sep 2011 12:08:10 GMT


Luc Maisonobe commented on MATH-172:

The fact is our ODE package implies really rich algorithms. For example, it is mandatory to
provide a continuous output over the last computed step, and it is mandatory to support discrete
events. When a reference algorithm did not support these features, we had to add them by ourselves.
It was never a problem since efficient and complex algorithms do provide the necessary features
already. We had to do the math only for really trivial cases like Euler or classical Runge-Kutta.
For Adams or BDF algorithms, continuous output is not a problem, because the formula are already
based on interpolation, so the interpolator is already there, we simply make it available
to the step handlers. Events handling was more difficult but we have already factored some
of the code.

Another point is I really need adaptive step size, so while I was setting up the method, I
extended it at the same time. This is not something I invented myself, there are several references
about this and the Nordiseck vector method was a perfect fit for my needs. I did not find
however a thourough algorithm with all the features I needed, I only found a lot of different
papers addressing different parts, and I basically gather everything in one implementation.
I recently found another reference about adaptive step size Adams methods but did not had
time to review it and compare it with Nordsieck vector approach.

One thing that could be done would be to implement simpler stiff methods, like for exemple
implicit Runge-Kutta. I have tried this but am not sure I still have my attempts around. There
are several different ways to solve the implicit system, using simple iterations, trying to
solve the system completely, trying to solve it by using only the diagonal elements of the
Jacobian ... I think we need to have all these methods available with a user setting.

> implementation of implicit Runge-Kutta method for stiff differential equations
> ------------------------------------------------------------------------------
>                 Key: MATH-172
>                 URL:
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 1.2
>            Reporter: James Housden
>            Assignee: Luc Maisonobe
>             Fix For: 3.0
>         Attachments: bdf-2009-07-07.patch
> In version 1.2 several explicit Runge-Kutta methods have been implemented which work
fine for non-stiff problems. However these methods are not suitable for stiff equations. The
implementation of an implicit Runge-Kutta method such as Radau5 would extend the functionality
of the ode package to cover the solution of stiff ordinary differential equations.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message