Explicit Runge-Kutta Methods

Standard Explicit Runge-Kutta Methods

OrdinaryDiffEq.HeunType

Heun: Explicit Runge-Kutta Method The second order Heun's method. Uses embedded Euler method for adaptivity.

source
OrdinaryDiffEq.RalstonType

Ralston: Explicit Runge-Kutta Method The optimized second order midpoint method. Uses embedded Euler method for adaptivity.

source
OrdinaryDiffEq.MidpointType

Midpoint: Explicit Runge-Kutta Method The second order midpoint method. Uses embedded Euler method for adaptivity.

source
OrdinaryDiffEq.RK4Type

@article{shampine2005solving, title={Solving ODEs and DDEs with residual control}, author={Shampine, LF}, journal={Applied Numerical Mathematics}, volume={52}, number={1}, pages={113–127}, year={2005}, publisher={Elsevier} }

RK4: Explicit Runge-Kutta Method The canonical Runge-Kutta Order 4 method. Uses a defect control for adaptive stepping using maximum error over the whole interval.

source
Missing docstring.

Missing docstring for RKM. Check Documenter's build log for details.

OrdinaryDiffEq.MSRK5Type

MSRK5 : 5th order Explicit RK method.

  • Misha Stepanov - https://arxiv.org/pdf/2202.08443.pdf : Figure 3.
source
OrdinaryDiffEq.Anas5Type

Anas5: Explicit Runge-Kutta Method 4th order Runge-Kutta method designed for periodic problems. Requires a periodicity estimate which when accurate the method becomes 5th order (and is otherwise 4th order with less error for better estimates).

source
OrdinaryDiffEq.RKO65Type

Tsitouras, Ch. "Explicit Runge–Kutta methods for starting integration of Lane–Emden problem." Applied Mathematics and Computation 354 (2019): 353-364. doi: https://doi.org/10.1016/j.amc.2019.02.047

source
OrdinaryDiffEq.OwrenZen3Type

@article{owren1992derivation, title={Derivation of efficient, continuous, explicit Runge–Kutta methods}, author={Owren, Brynjulf and Zennaro, Marino}, journal={SIAM journal on scientific and statistical computing}, volume={13}, number={6}, pages={1488–1501}, year={1992}, publisher={SIAM} }

OwrenZen3: Explicit Runge-Kutta Method Owren-Zennaro optimized interpolation 3/2 method (free 3th order interpolant).

source
OrdinaryDiffEq.OwrenZen4Type

@article{owren1992derivation, title={Derivation of efficient, continuous, explicit Runge–Kutta methods}, author={Owren, Brynjulf and Zennaro, Marino}, journal={SIAM journal on scientific and statistical computing}, volume={13}, number={6}, pages={1488–1501}, year={1992}, publisher={SIAM} }

OwrenZen4: Explicit Runge-Kutta Method Owren-Zennaro optimized interpolation 4/3 method (free 4th order interpolant).

source
OrdinaryDiffEq.OwrenZen5Type

@article{owren1992derivation, title={Derivation of efficient, continuous, explicit Runge–Kutta methods}, author={Owren, Brynjulf and Zennaro, Marino}, journal={SIAM journal on scientific and statistical computing}, volume={13}, number={6}, pages={1488–1501}, year={1992}, publisher={SIAM} }

OwrenZen5: Explicit Runge-Kutta Method Owren-Zennaro optimized interpolation 5/4 method (free 5th order interpolant).

source
OrdinaryDiffEq.BS3Type
BS3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!,
      step_limiter! = OrdinaryDiffEq.trivial_limiter!,
      thread = OrdinaryDiffEq.False())

A third-order, four-stage explicit FSAL Runge-Kutta method with embedded error estimator of Bogacki and Shampine.

Like SSPRK methods, this method also takes optional arguments stage_limiter! and step_limiter!, where stage_limiter! and step_limiter! are functions of the form limiter!(u, integrator, p, t).

The argument thread determines whether internal broadcasting on appropriate CPU arrays should be serial (thread = OrdinaryDiffEq.False(), default) or use multiple threads (thread = OrdinaryDiffEq.True()) when Julia is started with multiple threads.

References

@article{bogacki19893, title={A 3 (2) pair of Runge-Kutta formulas}, author={Bogacki, Przemyslaw and Shampine, Lawrence F}, journal={Applied Mathematics Letters}, volume={2}, number={4}, pages={321–325}, year={1989}, publisher={Elsevier} }

source
OrdinaryDiffEq.DP5Type

@article{dormand1980family, title={A family of embedded Runge-Kutta formulae}, author={Dormand, John R and Prince, Peter J}, journal={Journal of computational and applied mathematics}, volume={6}, number={1}, pages={19–26}, year={1980}, publisher={Elsevier} }

DP5: Explicit Runge-Kutta Method Dormand-Prince's 5/4 Runge-Kutta method. (free 4th order interpolant).

source
OrdinaryDiffEq.Tsit5Type
Tsit5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!,
        step_limiter! = OrdinaryDiffEq.trivial_limiter!,
        thread = OrdinaryDiffEq.False())

A fourth-order, five-stage explicit Runge-Kutta method with embedded error estimator of Tsitouras. Free 4th order interpolant.

Like SSPRK methods, this method also takes optional arguments stage_limiter! and step_limiter!, where stage_limiter! and step_limiter! are functions of the form limiter!(u, integrator, p, t).

The argument thread determines whether internal broadcasting on appropriate CPU arrays should be serial (thread = OrdinaryDiffEq.False(), default) or use multiple threads (thread = OrdinaryDiffEq.True()) when Julia is started with multiple threads.

References

@article{tsitouras2011runge, title={Runge–Kutta pairs of order 5 (4) satisfying only the first column simplifying assumption}, author={Tsitouras, Ch}, journal={Computers \& Mathematics with Applications}, volume={62}, number={2}, pages={770–775}, year={2011}, publisher={Elsevier} }

source
OrdinaryDiffEq.DP8Type

E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.

DP8: Explicit Runge-Kutta Method Hairer's 8/5/3 adaption of the Dormand-Prince Runge-Kutta method. (7th order interpolant).

source
OrdinaryDiffEq.TanYam7Type

Tanaka M., Muramatsu S., Yamashita S., (1992), On the Optimization of Some Nine-Stage Seventh-order Runge-Kutta Method, Information Processing Society of Japan, 33 (12), pp. 1512-1526.

TanYam7: Explicit Runge-Kutta Method Tanaka-Yamashita 7 Runge-Kutta method.

source
OrdinaryDiffEq.Feagin10Type

@article{feagin2012high, title={High-order explicit Runge-Kutta methods using m-symmetry}, author={Feagin, Terry}, year={2012}, publisher={Neural, Parallel \& Scientific Computations} }

Feagin10: Explicit Runge-Kutta Method Feagin's 10th-order Runge-Kutta method.

source
OrdinaryDiffEq.Feagin12Type

@article{feagin2012high, title={High-order explicit Runge-Kutta methods using m-symmetry}, author={Feagin, Terry}, year={2012}, publisher={Neural, Parallel \& Scientific Computations} }

Feagin12: Explicit Runge-Kutta Method Feagin's 12th-order Runge-Kutta method.

source
OrdinaryDiffEq.Feagin14Type

Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical Algorithms, 2009

Feagin14: Explicit Runge-Kutta Method Feagin's 14th-order Runge-Kutta method.

source
OrdinaryDiffEq.FRK65Type

FRK65: Explicit Runge-Kutta Zero Dissipation Runge-Kutta of 6th order. Takes an optional argument w to for the periodicity phase, in which case this method results in zero numerical dissipation.

source
OrdinaryDiffEq.PFRK87Type

PFRK87: Explicit Runge-Kutta Phase-fitted Runge-Kutta Runge-Kutta of 8th order. Takes an optional argument w to for the periodicity phase, in which case this method results in zero numerical dissipation.

source

Lazy Interpolation Explicit Runge-Kutta Methods

OrdinaryDiffEq.BS5Type

@article{bogacki1996efficient, title={An efficient runge-kutta (4, 5) pair}, author={Bogacki, P and Shampine, Lawrence F}, journal={Computers \& Mathematics with Applications}, volume={32}, number={6}, pages={15–28}, year={1996}, publisher={Elsevier} }

BS5: Explicit Runge-Kutta Method Bogacki-Shampine 5/4 Runge-Kutta method. (lazy 5th order interpolant).

source
OrdinaryDiffEq.Vern6Type

@article{verner2010numerically, title={Numerically optimal Runge–Kutta pairs with interpolants}, author={Verner, James H}, journal={Numerical Algorithms}, volume={53}, number={2-3}, pages={383–396}, year={2010}, publisher={Springer} }

Vern6: Explicit Runge-Kutta Method Verner's "Most Efficient" 6/5 Runge-Kutta method. (lazy 6th order interpolant).

source
OrdinaryDiffEq.Vern7Type

@article{verner2010numerically, title={Numerically optimal Runge–Kutta pairs with interpolants}, author={Verner, James H}, journal={Numerical Algorithms}, volume={53}, number={2-3}, pages={383–396}, year={2010}, publisher={Springer} }

Vern7: Explicit Runge-Kutta Method Verner's "Most Efficient" 7/6 Runge-Kutta method. (lazy 7th order interpolant).

source
OrdinaryDiffEq.Vern8Type

@article{verner2010numerically, title={Numerically optimal Runge–Kutta pairs with interpolants}, author={Verner, James H}, journal={Numerical Algorithms}, volume={53}, number={2-3}, pages={383–396}, year={2010}, publisher={Springer} }

Vern8: Explicit Runge-Kutta Method Verner's "Most Efficient" 8/7 Runge-Kutta method. (lazy 8th order interpolant)

source
OrdinaryDiffEq.Vern9Type

@article{verner2010numerically, title={Numerically optimal Runge–Kutta pairs with interpolants}, author={Verner, James H}, journal={Numerical Algorithms}, volume={53}, number={2-3}, pages={383–396}, year={2010}, publisher={Springer} }

Vern9: Explicit Runge-Kutta Method Verner's "Most Efficient" 9/8 Runge-Kutta method. (lazy 9th order interpolant)

source

Fixed Timestep Only Explicit Runge-Kutta Methods

OrdinaryDiffEq.RK46NLType

Julien Berland, Christophe Bogey, Christophe Bailly. Low-Dissipation and Low-Dispersion Fourth-Order Runge-Kutta Algorithm. Computers & Fluids, 35(10), pp 1459-1463, 2006. doi: https://doi.org/10.1016/j.compfluid.2005.04.003

RK46NL: 6-stage, fourth order low-stage, low-dissipation, low-dispersion scheme. Fixed timestep only.

source
OrdinaryDiffEq.ORK256Type
ORK256(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!,
         step_limiter! = OrdinaryDiffEq.trivial_limiter!,
         thread = OrdinaryDiffEq.False(),
         williamson_condition = true)

A second-order, five-stage explicit Runge-Kutta method for wave propogation equations. Fixed timestep only.

Like SSPRK methods, this method also takes optional arguments stage_limiter! and step_limiter!, where stage_limiter! and step_limiter! are functions of the form limiter!(u, integrator, p, t).

The argument thread determines whether internal broadcasting on appropriate CPU arrays should be serial (thread = OrdinaryDiffEq.False(), default) or use multiple threads (thread = OrdinaryDiffEq.True()) when Julia is started with multiple threads.

References

  • Matteo Bernardini, Sergio Pirozzoli. A General Strategy for the Optimization of Runge-Kutta Schemes for Wave Propagation Phenomena. Journal of Computational Physics, 228(11), pp 4182-4199, 2009. doi: https://doi.org/10.1016/j.jcp.2009.02.032
source

Parallel Explicit Runge-Kutta Methods

OrdinaryDiffEq.KuttaPRK2p5Type

KuttaPRK2p5: Parallel Explicit Runge-Kutta Method A 5 parallel, 2 processor explicit Runge-Kutta method of 5th order.

These methods utilize multithreading on the f calls to parallelize the problem. This requires that simultaneous calls to f are thread-safe.

source