Skip to content

Commit

Permalink
Add discussion of many-stage RK methods to JOSS paper.
Browse files Browse the repository at this point in the history
As suggested in #56.
  • Loading branch information
ketch committed Aug 31, 2020
1 parent f20899e commit cf6c782
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,29 @@ development of optimized methods for specific applications. Different
accuracy, stability, performance, and other properties may be relevant or
essential depending on the nature of the equations to be solved.

`RK-Opt` provides code that can enforce desired properties and/or objective
An s-stage Runge-Kutta method has roughly s^2 coefficients (roughly s^2/2 for
explicit methods), which can be chosen so as to provide high accuracy,
stability, or other properties. Historically, most interest in Runge-Kutta
methods has focused on methods using the minimum number of stages for a given
order of accuracy. However, in the past few decades there has been increasing
recognition that using extra stages can be worthwhile in order to improve other
method properties. Some areas where this is particularly useful are in the
enhancement of linear and nonlinear stability properties, the reduction of
storage requirements, and the design of embedded pairs. Methods with dozens or
even hundreds of stages are not unheard of.

At the same time, most existing Runge-Kutta methods have been designed by hand,
by researchers laboriously solving the order conditions. When using extra
stages, the number of available parameters makes the selection of a
near-optimal choice by hand impossible, and one resorts to computational
optimization. This leads to a different paradigm of numerical method design, in
which we use sophisticated numerical (optimization) algorithms to design
sophisticated numerical (integration) algorithms. It can be expected that this
trend will accelerate in the future, and perhaps one day simple
manually-constructed algorithms will be the exception.

RK-Opt contains a set of tools for designing Runge-Kutta methods in this paradigm.
It provides code that can enforce desired properties and/or objective
functions. The constraints and objective are then used within an optimization
framework, to determine coefficients of methods that best achieve the desired
goal. Thus, `RK-Opt` is a sort of meta-software, consisting of algorithms whose
Expand Down

0 comments on commit cf6c782

Please sign in to comment.