[jira] [Commented] (MATH-172) implementation of implicit Runge-Kutta method for stiff differential equations

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (MATH-172) implementation of implicit Runge-Kutta method for stiff differential equations

ASF GitHub Bot (Jira)

    [ https://issues.apache.org/jira/browse/MATH-172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13096643#comment-13096643 ]

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: https://issues.apache.org/jira/browse/MATH-172
>             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: http://www.atlassian.com/software/jira