From eca9ade55c378abdc9ecfd67fdefa31ff681c0b0 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" <documenter@juliadocs.github.io> Date: Mon, 11 Nov 2024 14:26:45 +0000 Subject: [PATCH] build based on f1e7a22 --- dev/.documenter-siteinfo.json | 2 +- dev/dynamicalodeexplicit/RKN/index.html | 2 +- .../SymplecticRK/index.html | 2 +- dev/explicit/AdamsBashforthMoulton/index.html | 2 +- dev/explicit/Extrapolation/index.html | 6 +- dev/explicit/Feagin/index.html | 2 +- dev/explicit/HighOrderRK/index.html | 8 +- dev/explicit/LowOrderRK/index.html | 50 +++++------ dev/explicit/LowStorageRK/index.html | 90 +++++++++---------- dev/explicit/PRK/index.html | 2 +- dev/explicit/QPRK/index.html | 2 +- dev/explicit/SSPRK/index.html | 36 ++++---- dev/explicit/Tsit5/index.html | 2 +- dev/explicit/Verner/index.html | 8 +- dev/fullyimplicitdae/BDF/index.html | 6 +- dev/imex/IMEXBDF/index.html | 4 +- dev/imex/IMEXMultistep/index.html | 2 +- dev/imex/StabilizedIRK/index.html | 2 +- dev/implicit/BDF/index.html | 12 +-- dev/implicit/Extrapolation/index.html | 8 +- dev/implicit/FIRK/index.html | 6 +- dev/implicit/Nordsieck/index.html | 2 +- dev/implicit/PDIRK/index.html | 2 +- dev/implicit/SDIRK/index.html | 58 ++++++------ dev/index.html | 2 +- dev/massmatrixdae/BDF/index.html | 12 +-- dev/massmatrixdae/Rosenbrock/index.html | 70 +++++++-------- dev/misc/index.html | 2 +- dev/semiimplicit/ExponentialRK/index.html | 30 +++---- dev/semiimplicit/Rosenbrock/index.html | 70 +++++++-------- dev/semiimplicit/StabilizedRK/index.html | 6 +- dev/semilinear/ExponentialRK/index.html | 12 +-- dev/semilinear/Linear/index.html | 32 +++---- dev/usage/index.html | 2 +- 34 files changed, 277 insertions(+), 277 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 52b6acca2f..a51874265f 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-11T13:45:18","documenter_version":"1.7.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-11T14:26:34","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/dev/dynamicalodeexplicit/RKN/index.html b/dev/dynamicalodeexplicit/RKN/index.html index 1bcc72ad2e..0777047541 100644 --- a/dev/dynamicalodeexplicit/RKN/index.html +++ b/dev/dynamicalodeexplicit/RKN/index.html @@ -15,4 +15,4 @@ initial_velocities = [0.5, 0.0] tspan = (0.0, 1.0) prob = SecondOrderODEProblem(HH_acceleration!, initial_velocities, initial_positions, tspan) -sol = solve(prob, Nystrom4(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.IRKN3" href="#OrdinaryDiffEqRKN.IRKN3"><code>OrdinaryDiffEqRKN.IRKN3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IRKN3()</code></pre><p>Improved Runge-Kutta-Nyström method Method of order three, which minimizes the amount of evaluated functions in each step. Fixed time steps only. Second order ODE should not depend on the first derivative.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{rabiei2012numerical, title={Numerical Solution of Second-Order Ordinary Differential Equations by Improved Runge-Kutta Nystrom Method}, author={Rabiei, Faranak and Ismail, Fudziah and Norazak, S and Emadi, Saeid}, publisher={Citeseer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L1-L15">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.IRKN4" href="#OrdinaryDiffEqRKN.IRKN4"><code>OrdinaryDiffEqRKN.IRKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IRKN4()</code></pre><p>Improved Runge-Kutta-Nyström method Improves Runge-Kutta-Nyström method of order four, which minimizes the amount of evaluated functions in each step. Fixed time steps only. Second order ODE should not be dependent on the first derivative. Recommended for smooth problems with expensive functions to evaluate.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{rabiei2012numerical, title={Numerical Solution of Second-Order Ordinary Differential Equations by Improved Runge-Kutta Nystrom Method}, author={Rabiei, Faranak and Ismail, Fudziah and Norazak, S and Emadi, Saeid}, publisher={Citeseer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L67-L84">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.Nystrom4" href="#OrdinaryDiffEqRKN.Nystrom4"><code>OrdinaryDiffEqRKN.Nystrom4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Nystrom4()</code></pre><p>Improved Runge-Kutta-Nyström method A 4th order explicit method which can be applied directly on second order ODEs. Can only be used with fixed time steps. In case the ODE Problem is not dependent on the first derivative consider using <a href="#OrdinaryDiffEqRKN.Nystrom4VelocityIndependent"><code>Nystrom4VelocityIndependent</code></a> to increase performance.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L12-L27">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.Nystrom4VelocityIndependent" href="#OrdinaryDiffEqRKN.Nystrom4VelocityIndependent"><code>OrdinaryDiffEqRKN.Nystrom4VelocityIndependent</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Nystrom4VelocityIndependent()</code></pre><p>Improved Runge-Kutta-Nyström method A 4th order explicit method. Used directly on second order ODEs, where the acceleration is independent from velocity (ODE Problem is not dependent on the first derivative).</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L56-L70">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.Nystrom5VelocityIndependent" href="#OrdinaryDiffEqRKN.Nystrom5VelocityIndependent"><code>OrdinaryDiffEqRKN.Nystrom5VelocityIndependent</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Nystrom5VelocityIndependent()</code></pre><p>Improved Runge-Kutta-Nyström method A 5th order explicit method. Used directly on second order ODEs, where the acceleration is independent from velocity (ODE Problem is not dependent on the first derivative).</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L80-L94">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.FineRKN4" href="#OrdinaryDiffEqRKN.FineRKN4"><code>OrdinaryDiffEqRKN.FineRKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FineRKN4()</code></pre><p>Improved Runge-Kutta-Nyström method A 4th order explicit method which can be applied directly to second order ODEs. In particular, this method allows the acceleration equation to depend on the velocity.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{fine1987low, title={Low order practical {R}unge-{K}utta-{N}ystr{"o}m methods}, author={Fine, Jerry Michael}, journal={Computing}, volume={38}, number={4}, pages={281–297}, year={1987}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L24-L43">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.FineRKN5" href="#OrdinaryDiffEqRKN.FineRKN5"><code>OrdinaryDiffEqRKN.FineRKN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FineRKN5()</code></pre><p>Improved Runge-Kutta-Nyström method A 5th order explicit method which can be applied directly to second order ODEs. In particular, this method allows the acceleration equation to depend on the velocity.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{fine1987low, title={Low order practical {R}unge-{K}utta-{N}ystr{"o}m methods}, author={Fine, Jerry Michael}, journal={Computing}, volume={38}, number={4}, pages={281–297}, year={1987}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L40-L59">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN4" href="#OrdinaryDiffEqRKN.DPRKN4"><code>OrdinaryDiffEqRKN.DPRKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN4()</code></pre><p>Improved Runge-Kutta-Nyström method 4th order explicit method. The second order ODE should not depend on the first derivative.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Dormand1987FamiliesOR, title={Families of Runge-Kutta-Nystrom Formulae}, author={J. R. Dormand and Moawwad E. A. El-Mikkawy and P. J. Prince}, journal={Ima Journal of Numerical Analysis}, year={1987}, volume={7}, pages={235-250}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L91-L108">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN5" href="#OrdinaryDiffEqRKN.DPRKN5"><code>OrdinaryDiffEqRKN.DPRKN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN5()</code></pre><p>Improved Runge-Kutta-Nyström method 5th order explicit method. The second order ODE should not depend on the first derivative.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Bettis1973ARN, title={A Runge-Kutta Nystrom algorithm}, author={Dale G. Bettis}, journal={Celestial mechanics}, year={1973}, volume={8}, pages={229-233}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L104-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN6" href="#OrdinaryDiffEqRKN.DPRKN6"><code>OrdinaryDiffEqRKN.DPRKN6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN6()</code></pre><p>Improved Runge-Kutta-Nyström method 6th order explicit method. The second order ODE should not depend on the first derivative. Free 6th order interpolant</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Dormand1987FamiliesOR, title={Families of Runge-Kutta-Nystrom Formulae}, author={J. R. Dormand and Moawwad E. A. El-Mikkawy and P. J. Prince}, journal={Ima Journal of Numerical Analysis}, year={1987}, volume={7}, pages={235-250}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L118-L135">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN6FM" href="#OrdinaryDiffEqRKN.DPRKN6FM"><code>OrdinaryDiffEqRKN.DPRKN6FM</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN6FM()</code></pre><p>Improved Runge-Kutta-Nyström method 6th order explicit method. The second order ODE should not depend on the first derivative. Compared to <a href="#OrdinaryDiffEqRKN.DPRKN6"><code>DPRKN6</code></a>, this method has smaller truncation error coefficients which leads to performance gain when only the main solution points are considered.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Dormand1987FamiliesOR, title={Families of Runge-Kutta-Nystrom Formulae}, author={J. R. Dormand and Moawwad E. A. El-Mikkawy and P. J. Prince}, journal={Ima Journal of Numerical Analysis}, year={1987}, volume={7}, pages={235-250}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L132-L151">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN8" href="#OrdinaryDiffEqRKN.DPRKN8"><code>OrdinaryDiffEqRKN.DPRKN8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN8()</code></pre><p>Improved Runge-Kutta-Nyström method 8th order explicit method. The second order ODE should not depend on the first derivative. Not as efficient as <a href="#OrdinaryDiffEqRKN.DPRKN12"><code>DPRKN12</code></a> when high accuracy is needed, however this solver is competitive with <a href="#OrdinaryDiffEqRKN.DPRKN6"><code>DPRKN6</code></a> at lax tolerances and, depending on the problem, might be a good option between performance and accuracy.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{dormand1987high, title={High-order embedded Runge-Kutta-Nystrom formulae}, author={Dormand, JR and El-Mikkawy, MEA and Prince, PJ}, journal={IMA Journal of Numerical Analysis}, volume={7}, number={4}, pages={423–430}, year={1987}, publisher={Oxford University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L147-L169">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN12" href="#OrdinaryDiffEqRKN.DPRKN12"><code>OrdinaryDiffEqRKN.DPRKN12</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN12()</code></pre><p>Improved Runge-Kutta-Nyström method 12th order explicit method. The second order ODE should not depend on the first derivative. Most efficient when high accuracy is needed.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{dormand1987high, title={High-order embedded Runge-Kutta-Nystrom formulae}, author={Dormand, JR and El-Mikkawy, MEA and Prince, PJ}, journal={IMA Journal of Numerical Analysis}, volume={7}, number={4}, pages={423–430}, year={1987}, publisher={Oxford University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L165-L185">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.ERKN4" href="#OrdinaryDiffEqRKN.ERKN4"><code>OrdinaryDiffEqRKN.ERKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ERKN4()</code></pre><p>Improved Runge-Kutta-Nyström method Embedded 4(3) pair of explicit methods. Integrates the periodic properties of the harmonic oscillator exactly. The second order ODE should not depend on the first derivative. Uses adaptive step size control. This method is extra efficient on periodic problems.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{demba2017embedded, title={An Embedded 4 (3) Pair of Explicit Trigonometrically-Fitted Runge-Kutta-Nystr{"o}m Method for Solving Periodic Initial Value Problems}, author={Demba, MA and Senu, N and Ismail, F}, journal={Applied Mathematical Sciences}, volume={11}, number={17}, pages={819–838}, year={2017}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L181-L201">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.ERKN5" href="#OrdinaryDiffEqRKN.ERKN5"><code>OrdinaryDiffEqRKN.ERKN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ERKN5()</code></pre><p>Improved Runge-Kutta-Nyström method Embedded 5(4) pair of explicit methods. Integrates the periodic properties of the harmonic oscillator exactly. The second order ODE should not depend on the first derivative. Uses adaptive step size control. This method is extra efficient on periodic problems.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{demba20165, title={A 5 (4) Embedded Pair of Explicit Trigonometrically-Fitted Runge–Kutta–Nystr{"o}m Methods for the Numerical Solution of Oscillatory Initial Value Problems}, author={Demba, Musa A and Senu, Norazak and Ismail, Fudziah}, journal={Mathematical and Computational Applications}, volume={21}, number={4}, pages={46}, year={2016}, publisher={Multidisciplinary Digital Publishing Institute}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L197-L218">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.ERKN7" href="#OrdinaryDiffEqRKN.ERKN7"><code>OrdinaryDiffEqRKN.ERKN7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ERKN7()</code></pre><p>Improved Runge-Kutta-Nyström method Embedded pair of explicit methods. Integrates the periodic properties of the harmonic oscillator exactly. The second order ODE should not depend on the first derivative. Uses adaptive step size control. This method is extra efficient on periodic problems.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{SimosOnHO, title={On high order Runge-Kutta-Nystr{"o}m pairs}, author={Theodore E. Simos and Ch. Tsitouras}, journal={J. Comput. Appl. Math.}, volume={400}, pages={113753}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L214-L232">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.RKN4" href="#OrdinaryDiffEqRKN.RKN4"><code>OrdinaryDiffEqRKN.RKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKN4()</code></pre><p>Improved Runge-Kutta-Nyström method 3 stage fourth order method to solve second order linear inhomogeneous IVPs. Does not include an adaptive method. Solves for for d-dimensional differential systems of second order linear inhomogeneous equations.</p><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"></div></div><p>This method is only fourth order for these systems, the method is second order otherwise!</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{MONTIJANO2024115533, title = {Explicit Runge–Kutta–Nyström methods for the numerical solution of second order linear inhomogeneous IVPs}, author = {J.I. Montijano and L. Rández and M. Calvo}, journal = {Journal of Computational and Applied Mathematics}, volume = {438}, pages = {115533}, year = {2024},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L228-L248">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../imex/IMEXBDF/">« OrdinaryDiffEqBDF</a><a class="docs-footer-nextpage" href="../SymplecticRK/">OrdinaryDiffEqSymplecticRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, Nystrom4(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.IRKN3" href="#OrdinaryDiffEqRKN.IRKN3"><code>OrdinaryDiffEqRKN.IRKN3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IRKN3()</code></pre><p>Improved Runge-Kutta-Nyström method Method of order three, which minimizes the amount of evaluated functions in each step. Fixed time steps only. Second order ODE should not depend on the first derivative.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{rabiei2012numerical, title={Numerical Solution of Second-Order Ordinary Differential Equations by Improved Runge-Kutta Nystrom Method}, author={Rabiei, Faranak and Ismail, Fudziah and Norazak, S and Emadi, Saeid}, publisher={Citeseer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L1-L15">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.IRKN4" href="#OrdinaryDiffEqRKN.IRKN4"><code>OrdinaryDiffEqRKN.IRKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IRKN4()</code></pre><p>Improved Runge-Kutta-Nyström method Improves Runge-Kutta-Nyström method of order four, which minimizes the amount of evaluated functions in each step. Fixed time steps only. Second order ODE should not be dependent on the first derivative. Recommended for smooth problems with expensive functions to evaluate.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{rabiei2012numerical, title={Numerical Solution of Second-Order Ordinary Differential Equations by Improved Runge-Kutta Nystrom Method}, author={Rabiei, Faranak and Ismail, Fudziah and Norazak, S and Emadi, Saeid}, publisher={Citeseer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L67-L84">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.Nystrom4" href="#OrdinaryDiffEqRKN.Nystrom4"><code>OrdinaryDiffEqRKN.Nystrom4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Nystrom4()</code></pre><p>Improved Runge-Kutta-Nyström method A 4th order explicit method which can be applied directly on second order ODEs. Can only be used with fixed time steps. In case the ODE Problem is not dependent on the first derivative consider using <a href="#OrdinaryDiffEqRKN.Nystrom4VelocityIndependent"><code>Nystrom4VelocityIndependent</code></a> to increase performance.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L12-L27">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.Nystrom4VelocityIndependent" href="#OrdinaryDiffEqRKN.Nystrom4VelocityIndependent"><code>OrdinaryDiffEqRKN.Nystrom4VelocityIndependent</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Nystrom4VelocityIndependent()</code></pre><p>Improved Runge-Kutta-Nyström method A 4th order explicit method. Used directly on second order ODEs, where the acceleration is independent from velocity (ODE Problem is not dependent on the first derivative).</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L56-L70">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.Nystrom5VelocityIndependent" href="#OrdinaryDiffEqRKN.Nystrom5VelocityIndependent"><code>OrdinaryDiffEqRKN.Nystrom5VelocityIndependent</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Nystrom5VelocityIndependent()</code></pre><p>Improved Runge-Kutta-Nyström method A 5th order explicit method. Used directly on second order ODEs, where the acceleration is independent from velocity (ODE Problem is not dependent on the first derivative).</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L80-L94">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.FineRKN4" href="#OrdinaryDiffEqRKN.FineRKN4"><code>OrdinaryDiffEqRKN.FineRKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FineRKN4()</code></pre><p>Improved Runge-Kutta-Nyström method A 4th order explicit method which can be applied directly to second order ODEs. In particular, this method allows the acceleration equation to depend on the velocity.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{fine1987low, title={Low order practical {R}unge-{K}utta-{N}ystr{"o}m methods}, author={Fine, Jerry Michael}, journal={Computing}, volume={38}, number={4}, pages={281–297}, year={1987}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L24-L43">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.FineRKN5" href="#OrdinaryDiffEqRKN.FineRKN5"><code>OrdinaryDiffEqRKN.FineRKN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FineRKN5()</code></pre><p>Improved Runge-Kutta-Nyström method A 5th order explicit method which can be applied directly to second order ODEs. In particular, this method allows the acceleration equation to depend on the velocity.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{fine1987low, title={Low order practical {R}unge-{K}utta-{N}ystr{"o}m methods}, author={Fine, Jerry Michael}, journal={Computing}, volume={38}, number={4}, pages={281–297}, year={1987}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L40-L59">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN4" href="#OrdinaryDiffEqRKN.DPRKN4"><code>OrdinaryDiffEqRKN.DPRKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN4()</code></pre><p>Improved Runge-Kutta-Nyström method 4th order explicit method. The second order ODE should not depend on the first derivative.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Dormand1987FamiliesOR, title={Families of Runge-Kutta-Nystrom Formulae}, author={J. R. Dormand and Moawwad E. A. El-Mikkawy and P. J. Prince}, journal={Ima Journal of Numerical Analysis}, year={1987}, volume={7}, pages={235-250}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L91-L108">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN5" href="#OrdinaryDiffEqRKN.DPRKN5"><code>OrdinaryDiffEqRKN.DPRKN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN5()</code></pre><p>Improved Runge-Kutta-Nyström method 5th order explicit method. The second order ODE should not depend on the first derivative.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Bettis1973ARN, title={A Runge-Kutta Nystrom algorithm}, author={Dale G. Bettis}, journal={Celestial mechanics}, year={1973}, volume={8}, pages={229-233}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L104-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN6" href="#OrdinaryDiffEqRKN.DPRKN6"><code>OrdinaryDiffEqRKN.DPRKN6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN6()</code></pre><p>Improved Runge-Kutta-Nyström method 6th order explicit method. The second order ODE should not depend on the first derivative. Free 6th order interpolant</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Dormand1987FamiliesOR, title={Families of Runge-Kutta-Nystrom Formulae}, author={J. R. Dormand and Moawwad E. A. El-Mikkawy and P. J. Prince}, journal={Ima Journal of Numerical Analysis}, year={1987}, volume={7}, pages={235-250}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L118-L135">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN6FM" href="#OrdinaryDiffEqRKN.DPRKN6FM"><code>OrdinaryDiffEqRKN.DPRKN6FM</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN6FM()</code></pre><p>Improved Runge-Kutta-Nyström method 6th order explicit method. The second order ODE should not depend on the first derivative. Compared to <a href="#OrdinaryDiffEqRKN.DPRKN6"><code>DPRKN6</code></a>, this method has smaller truncation error coefficients which leads to performance gain when only the main solution points are considered.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{Dormand1987FamiliesOR, title={Families of Runge-Kutta-Nystrom Formulae}, author={J. R. Dormand and Moawwad E. A. El-Mikkawy and P. J. Prince}, journal={Ima Journal of Numerical Analysis}, year={1987}, volume={7}, pages={235-250}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L132-L151">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN8" href="#OrdinaryDiffEqRKN.DPRKN8"><code>OrdinaryDiffEqRKN.DPRKN8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN8()</code></pre><p>Improved Runge-Kutta-Nyström method 8th order explicit method. The second order ODE should not depend on the first derivative. Not as efficient as <a href="#OrdinaryDiffEqRKN.DPRKN12"><code>DPRKN12</code></a> when high accuracy is needed, however this solver is competitive with <a href="#OrdinaryDiffEqRKN.DPRKN6"><code>DPRKN6</code></a> at lax tolerances and, depending on the problem, might be a good option between performance and accuracy.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{dormand1987high, title={High-order embedded Runge-Kutta-Nystrom formulae}, author={Dormand, JR and El-Mikkawy, MEA and Prince, PJ}, journal={IMA Journal of Numerical Analysis}, volume={7}, number={4}, pages={423–430}, year={1987}, publisher={Oxford University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L147-L169">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.DPRKN12" href="#OrdinaryDiffEqRKN.DPRKN12"><code>OrdinaryDiffEqRKN.DPRKN12</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DPRKN12()</code></pre><p>Improved Runge-Kutta-Nyström method 12th order explicit method. The second order ODE should not depend on the first derivative. Most efficient when high accuracy is needed.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{dormand1987high, title={High-order embedded Runge-Kutta-Nystrom formulae}, author={Dormand, JR and El-Mikkawy, MEA and Prince, PJ}, journal={IMA Journal of Numerical Analysis}, volume={7}, number={4}, pages={423–430}, year={1987}, publisher={Oxford University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L165-L185">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.ERKN4" href="#OrdinaryDiffEqRKN.ERKN4"><code>OrdinaryDiffEqRKN.ERKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ERKN4()</code></pre><p>Improved Runge-Kutta-Nyström method Embedded 4(3) pair of explicit methods. Integrates the periodic properties of the harmonic oscillator exactly. The second order ODE should not depend on the first derivative. Uses adaptive step size control. This method is extra efficient on periodic problems.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{demba2017embedded, title={An Embedded 4 (3) Pair of Explicit Trigonometrically-Fitted Runge-Kutta-Nystr{"o}m Method for Solving Periodic Initial Value Problems}, author={Demba, MA and Senu, N and Ismail, F}, journal={Applied Mathematical Sciences}, volume={11}, number={17}, pages={819–838}, year={2017}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L181-L201">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.ERKN5" href="#OrdinaryDiffEqRKN.ERKN5"><code>OrdinaryDiffEqRKN.ERKN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ERKN5()</code></pre><p>Improved Runge-Kutta-Nyström method Embedded 5(4) pair of explicit methods. Integrates the periodic properties of the harmonic oscillator exactly. The second order ODE should not depend on the first derivative. Uses adaptive step size control. This method is extra efficient on periodic problems.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{demba20165, title={A 5 (4) Embedded Pair of Explicit Trigonometrically-Fitted Runge–Kutta–Nystr{"o}m Methods for the Numerical Solution of Oscillatory Initial Value Problems}, author={Demba, Musa A and Senu, Norazak and Ismail, Fudziah}, journal={Mathematical and Computational Applications}, volume={21}, number={4}, pages={46}, year={2016}, publisher={Multidisciplinary Digital Publishing Institute}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L197-L218">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.ERKN7" href="#OrdinaryDiffEqRKN.ERKN7"><code>OrdinaryDiffEqRKN.ERKN7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ERKN7()</code></pre><p>Improved Runge-Kutta-Nyström method Embedded pair of explicit methods. Integrates the periodic properties of the harmonic oscillator exactly. The second order ODE should not depend on the first derivative. Uses adaptive step size control. This method is extra efficient on periodic problems.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{SimosOnHO, title={On high order Runge-Kutta-Nystr{"o}m pairs}, author={Theodore E. Simos and Ch. Tsitouras}, journal={J. Comput. Appl. Math.}, volume={400}, pages={113753}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L214-L232">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRKN.RKN4" href="#OrdinaryDiffEqRKN.RKN4"><code>OrdinaryDiffEqRKN.RKN4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKN4()</code></pre><p>Improved Runge-Kutta-Nyström method 3 stage fourth order method to solve second order linear inhomogeneous IVPs. Does not include an adaptive method. Solves for for d-dimensional differential systems of second order linear inhomogeneous equations.</p><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"></div></div><p>This method is only fourth order for these systems, the method is second order otherwise!</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{MONTIJANO2024115533, title = {Explicit Runge–Kutta–Nyström methods for the numerical solution of second order linear inhomogeneous IVPs}, author = {J.I. Montijano and L. Rández and M. Calvo}, journal = {Journal of Computational and Applied Mathematics}, volume = {438}, pages = {115533}, year = {2024},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRKN/src/algorithms.jl#L228-L248">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../imex/IMEXBDF/">« OrdinaryDiffEqBDF</a><a class="docs-footer-nextpage" href="../SymplecticRK/">OrdinaryDiffEqSymplecticRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/dynamicalodeexplicit/SymplecticRK/index.html b/dev/dynamicalodeexplicit/SymplecticRK/index.html index c6717428ea..c7cd2084bd 100644 --- a/dev/dynamicalodeexplicit/SymplecticRK/index.html +++ b/dev/dynamicalodeexplicit/SymplecticRK/index.html @@ -15,4 +15,4 @@ initial_velocities = [0.5, 0.0] tspan = (0.0, 1.0) prob = SecondOrderODEProblem(HH_acceleration!, initial_velocities, initial_positions, tspan) -sol = solve(prob, KahanLi8(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.SymplecticEuler" href="#OrdinaryDiffEqSymplecticRK.SymplecticEuler"><code>OrdinaryDiffEqSymplecticRK.SymplecticEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SymplecticEuler()</code></pre><p>Symplectic Runge-Kutta Methods First order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>https://en.wikipedia.org/wiki/Semi-implicit<em>Euler</em>method</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L1-L11">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.VelocityVerlet" href="#OrdinaryDiffEqSymplecticRK.VelocityVerlet"><code>OrdinaryDiffEqSymplecticRK.VelocityVerlet</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VelocityVerlet()</code></pre><p>Symplectic Runge-Kutta Methods 2nd order explicit symplectic integrator. Requires f_2(t,u) = v, i.e. a second order ODE.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{verlet1967computer, title={Computer" experiments" on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules}, author={Verlet, Loup}, journal={Physical review}, volume={159}, number={1}, pages={98}, year={1967}, publisher={APS} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L20-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.VerletLeapfrog" href="#OrdinaryDiffEqSymplecticRK.VerletLeapfrog"><code>OrdinaryDiffEqSymplecticRK.VerletLeapfrog</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VerletLeapfrog()</code></pre><p>Symplectic Runge-Kutta Methods 2nd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{verlet1967computer, title={Computer" experiments" on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules}, author={Verlet, Loup}, journal={Physical review}, volume={159}, number={1}, pages={98}, year={1967}, publisher={APS} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L27-L47">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.PseudoVerletLeapfrog" href="#OrdinaryDiffEqSymplecticRK.PseudoVerletLeapfrog"><code>OrdinaryDiffEqSymplecticRK.PseudoVerletLeapfrog</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PseudoVerletLeapfrog()</code></pre><p>Symplectic Runge-Kutta Methods 2nd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{verlet1967computer, title={Computer" experiments" on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules}, author={Verlet, Loup}, journal={Physical review}, volume={159}, number={1}, pages={98}, year={1967}, publisher={APS} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L33-L53">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte2" href="#OrdinaryDiffEqSymplecticRK.McAte2"><code>OrdinaryDiffEqSymplecticRK.McAte2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte2()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 2nd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L52-L72">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.Ruth3" href="#OrdinaryDiffEqSymplecticRK.Ruth3"><code>OrdinaryDiffEqSymplecticRK.Ruth3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ruth3()</code></pre><p>Symplectic Runge-Kutta Methods 3rd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{ruth1983canonical, title={A canonical integration technique}, author={Ruth, Ronald D}, journal={IEEE Trans. Nucl. Sci.}, volume={30}, number={CERN-LEP-TH-83-14}, pages={2669–2671}, year={1983}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L59-L76">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte3" href="#OrdinaryDiffEqSymplecticRK.McAte3"><code>OrdinaryDiffEqSymplecticRK.McAte3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte3()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 3rd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L72-L92">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.CandyRoz4" href="#OrdinaryDiffEqSymplecticRK.CandyRoz4"><code>OrdinaryDiffEqSymplecticRK.CandyRoz4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CandyRoz4()</code></pre><p>Symplectic Runge-Kutta Methods 4th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{candy1991symplectic, itle={A symplectic integration algorithm for separable Hamiltonian functions}, uthor={Candy, J and Rozmus, W}, ournal={Journal of Computational Physics}, olume={92}, umber={1}, ages={230–256}, ear={1991}, ublisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L79-L97">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte4" href="#OrdinaryDiffEqSymplecticRK.McAte4"><code>OrdinaryDiffEqSymplecticRK.McAte4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte4()</code></pre><p>Symplectic Runge-Kutta Methods 4th order explicit symplectic integrator. Requires quadratic kinetic energy.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L93-L113">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.CalvoSanz4" href="#OrdinaryDiffEqSymplecticRK.CalvoSanz4"><code>OrdinaryDiffEqSymplecticRK.CalvoSanz4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CalvoSanz4()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 4th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{sanz1993symplectic, title={Symplectic numerical methods for Hamiltonian problems}, author={Sanz-Serna, Jes{'u}s Maria and Calvo, Mari-Paz}, journal={International Journal of Modern Physics C}, volume={4}, number={02}, pages={385–392}, year={1993}, publisher={World Scientific} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L100-L119">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte42" href="#OrdinaryDiffEqSymplecticRK.McAte42"><code>OrdinaryDiffEqSymplecticRK.McAte42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte42()</code></pre><p>Symplectic Runge-Kutta Methods 4th order explicit symplectic integrator. BROKEN</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L116-L136">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte5" href="#OrdinaryDiffEqSymplecticRK.McAte5"><code>OrdinaryDiffEqSymplecticRK.McAte5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte5()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 5th order explicit symplectic integrator. Requires quadratic kinetic energy.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L122-L142">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.Yoshida6" href="#OrdinaryDiffEqSymplecticRK.Yoshida6"><code>OrdinaryDiffEqSymplecticRK.Yoshida6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Yoshida6()</code></pre><p>Symplectic Runge-Kutta Methods 6th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{yoshida1990construction, title={Construction of higher order symplectic integrators}, author={Yoshida, Haruo}, journal={Physics letters A}, volume={150}, number={5-7}, pages={262–268}, year={1990}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L129-L147">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.KahanLi6" href="#OrdinaryDiffEqSymplecticRK.KahanLi6"><code>OrdinaryDiffEqSymplecticRK.KahanLi6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KahanLi6()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 6th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{yoshida1990construction, title={Construction of higher order symplectic integrators}, author={Yoshida, Haruo}, journal={Physics letters A}, volume={150}, number={5-7}, pages={262–268}, year={1990}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L143-L161">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte8" href="#OrdinaryDiffEqSymplecticRK.McAte8"><code>OrdinaryDiffEqSymplecticRK.McAte8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte8()</code></pre><p>Symplectic Runge-Kutta Methods 8th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1995numerical, title={On the numerical integration of ordinary differential equations by symmetric composition methods}, author={McLachlan, Robert I}, journal={SIAM Journal on Scientific Computing}, volume={16}, number={1}, pages={151–168}, year={1995}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L158-L177">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.KahanLi8" href="#OrdinaryDiffEqSymplecticRK.KahanLi8"><code>OrdinaryDiffEqSymplecticRK.KahanLi8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KahanLi8()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 8th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{kahan1997composition, title={Composition constants for raising the orders of unconventional schemes for ordinary differential equations}, author={Kahan, William and Li, Ren-Cang}, journal={Mathematics of computation}, volume={66}, number={219}, pages={1089–1099}, year={1997}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L173-L190">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.SofSpa10" href="#OrdinaryDiffEqSymplecticRK.SofSpa10"><code>OrdinaryDiffEqSymplecticRK.SofSpa10</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SofSpa10()</code></pre><p>Symplectic Runge-Kutta Methods 10th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{sofroniou2005derivation, title={Derivation of symmetric composition constants for symmetric integrators}, author={Sofroniou, Mark and Spaletta, Giulia}, journal={Optimization Methods and Software}, volume={20}, number={4-5}, pages={597–613}, year={2005}, publisher={Taylor \& Francis}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L187-L205">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../RKN/">« OrdinaryDiffEqRKN</a><a class="docs-footer-nextpage" href="../../semilinear/ExponentialRK/">OrdinaryDiffEqExponentialRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, KahanLi8(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.SymplecticEuler" href="#OrdinaryDiffEqSymplecticRK.SymplecticEuler"><code>OrdinaryDiffEqSymplecticRK.SymplecticEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SymplecticEuler()</code></pre><p>Symplectic Runge-Kutta Methods First order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>https://en.wikipedia.org/wiki/Semi-implicit<em>Euler</em>method</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L1-L11">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.VelocityVerlet" href="#OrdinaryDiffEqSymplecticRK.VelocityVerlet"><code>OrdinaryDiffEqSymplecticRK.VelocityVerlet</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VelocityVerlet()</code></pre><p>Symplectic Runge-Kutta Methods 2nd order explicit symplectic integrator. Requires f_2(t,u) = v, i.e. a second order ODE.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{verlet1967computer, title={Computer" experiments" on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules}, author={Verlet, Loup}, journal={Physical review}, volume={159}, number={1}, pages={98}, year={1967}, publisher={APS} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L20-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.VerletLeapfrog" href="#OrdinaryDiffEqSymplecticRK.VerletLeapfrog"><code>OrdinaryDiffEqSymplecticRK.VerletLeapfrog</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VerletLeapfrog()</code></pre><p>Symplectic Runge-Kutta Methods 2nd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{verlet1967computer, title={Computer" experiments" on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules}, author={Verlet, Loup}, journal={Physical review}, volume={159}, number={1}, pages={98}, year={1967}, publisher={APS} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L27-L47">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.PseudoVerletLeapfrog" href="#OrdinaryDiffEqSymplecticRK.PseudoVerletLeapfrog"><code>OrdinaryDiffEqSymplecticRK.PseudoVerletLeapfrog</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PseudoVerletLeapfrog()</code></pre><p>Symplectic Runge-Kutta Methods 2nd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{verlet1967computer, title={Computer" experiments" on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules}, author={Verlet, Loup}, journal={Physical review}, volume={159}, number={1}, pages={98}, year={1967}, publisher={APS} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L33-L53">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte2" href="#OrdinaryDiffEqSymplecticRK.McAte2"><code>OrdinaryDiffEqSymplecticRK.McAte2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte2()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 2nd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L52-L72">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.Ruth3" href="#OrdinaryDiffEqSymplecticRK.Ruth3"><code>OrdinaryDiffEqSymplecticRK.Ruth3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ruth3()</code></pre><p>Symplectic Runge-Kutta Methods 3rd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{ruth1983canonical, title={A canonical integration technique}, author={Ruth, Ronald D}, journal={IEEE Trans. Nucl. Sci.}, volume={30}, number={CERN-LEP-TH-83-14}, pages={2669–2671}, year={1983}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L59-L76">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte3" href="#OrdinaryDiffEqSymplecticRK.McAte3"><code>OrdinaryDiffEqSymplecticRK.McAte3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte3()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 3rd order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L72-L92">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.CandyRoz4" href="#OrdinaryDiffEqSymplecticRK.CandyRoz4"><code>OrdinaryDiffEqSymplecticRK.CandyRoz4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CandyRoz4()</code></pre><p>Symplectic Runge-Kutta Methods 4th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{candy1991symplectic, itle={A symplectic integration algorithm for separable Hamiltonian functions}, uthor={Candy, J and Rozmus, W}, ournal={Journal of Computational Physics}, olume={92}, umber={1}, ages={230–256}, ear={1991}, ublisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L79-L97">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte4" href="#OrdinaryDiffEqSymplecticRK.McAte4"><code>OrdinaryDiffEqSymplecticRK.McAte4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte4()</code></pre><p>Symplectic Runge-Kutta Methods 4th order explicit symplectic integrator. Requires quadratic kinetic energy.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L93-L113">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.CalvoSanz4" href="#OrdinaryDiffEqSymplecticRK.CalvoSanz4"><code>OrdinaryDiffEqSymplecticRK.CalvoSanz4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CalvoSanz4()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 4th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{sanz1993symplectic, title={Symplectic numerical methods for Hamiltonian problems}, author={Sanz-Serna, Jes{'u}s Maria and Calvo, Mari-Paz}, journal={International Journal of Modern Physics C}, volume={4}, number={02}, pages={385–392}, year={1993}, publisher={World Scientific} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L100-L119">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte42" href="#OrdinaryDiffEqSymplecticRK.McAte42"><code>OrdinaryDiffEqSymplecticRK.McAte42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte42()</code></pre><p>Symplectic Runge-Kutta Methods 4th order explicit symplectic integrator. BROKEN</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L116-L136">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte5" href="#OrdinaryDiffEqSymplecticRK.McAte5"><code>OrdinaryDiffEqSymplecticRK.McAte5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte5()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 5th order explicit symplectic integrator. Requires quadratic kinetic energy.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1992accuracy, title={The accuracy of symplectic integrators}, author={McLachlan, Robert I and Atela, Pau}, journal={Nonlinearity}, volume={5}, number={2}, pages={541}, year={1992}, publisher={IOP Publishing} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L122-L142">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.Yoshida6" href="#OrdinaryDiffEqSymplecticRK.Yoshida6"><code>OrdinaryDiffEqSymplecticRK.Yoshida6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Yoshida6()</code></pre><p>Symplectic Runge-Kutta Methods 6th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{yoshida1990construction, title={Construction of higher order symplectic integrators}, author={Yoshida, Haruo}, journal={Physics letters A}, volume={150}, number={5-7}, pages={262–268}, year={1990}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L129-L147">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.KahanLi6" href="#OrdinaryDiffEqSymplecticRK.KahanLi6"><code>OrdinaryDiffEqSymplecticRK.KahanLi6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KahanLi6()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 6th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{yoshida1990construction, title={Construction of higher order symplectic integrators}, author={Yoshida, Haruo}, journal={Physics letters A}, volume={150}, number={5-7}, pages={262–268}, year={1990}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L143-L161">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.McAte8" href="#OrdinaryDiffEqSymplecticRK.McAte8"><code>OrdinaryDiffEqSymplecticRK.McAte8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">McAte8()</code></pre><p>Symplectic Runge-Kutta Methods 8th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{mclachlan1995numerical, title={On the numerical integration of ordinary differential equations by symmetric composition methods}, author={McLachlan, Robert I}, journal={SIAM Journal on Scientific Computing}, volume={16}, number={1}, pages={151–168}, year={1995}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L158-L177">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.KahanLi8" href="#OrdinaryDiffEqSymplecticRK.KahanLi8"><code>OrdinaryDiffEqSymplecticRK.KahanLi8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KahanLi8()</code></pre><p>Symplectic Runge-Kutta Methods Optimized efficiency 8th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{kahan1997composition, title={Composition constants for raising the orders of unconventional schemes for ordinary differential equations}, author={Kahan, William and Li, Ren-Cang}, journal={Mathematics of computation}, volume={66}, number={219}, pages={1089–1099}, year={1997}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L173-L190">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSymplecticRK.SofSpa10" href="#OrdinaryDiffEqSymplecticRK.SofSpa10"><code>OrdinaryDiffEqSymplecticRK.SofSpa10</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SofSpa10()</code></pre><p>Symplectic Runge-Kutta Methods 10th order explicit symplectic integrator.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{sofroniou2005derivation, title={Derivation of symmetric composition constants for symmetric integrators}, author={Sofroniou, Mark and Spaletta, Giulia}, journal={Optimization Methods and Software}, volume={20}, number={4-5}, pages={597–613}, year={2005}, publisher={Taylor \& Francis}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSymplecticRK/src/algorithms.jl#L187-L205">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../RKN/">« OrdinaryDiffEqRKN</a><a class="docs-footer-nextpage" href="../../semilinear/ExponentialRK/">OrdinaryDiffEqExponentialRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/AdamsBashforthMoulton/index.html b/dev/explicit/AdamsBashforthMoulton/index.html index e1f72f1c8d..e5e9cac42b 100644 --- a/dev/explicit/AdamsBashforthMoulton/index.html +++ b/dev/explicit/AdamsBashforthMoulton/index.html @@ -14,4 +14,4 @@ u0 = [1.0; 0.0; 0.0] tspan = (0.0, 100.0) prob = ODEProblem(lorenz!, u0, tspan) -sol = solve(prob, VCABM())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><h3 id="Explicit-Multistep-Methods"><a class="docs-heading-anchor" href="#Explicit-Multistep-Methods">Explicit Multistep Methods</a><a id="Explicit-Multistep-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Explicit-Multistep-Methods" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.AB3" href="#OrdinaryDiffEqAdamsBashforthMoulton.AB3"><code>OrdinaryDiffEqAdamsBashforthMoulton.AB3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AB3()</code></pre><p>Adams-Bashforth Explicit Method The 3-step third order multistep method. Ralston's Second Order Method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L6-L19">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.AB4" href="#OrdinaryDiffEqAdamsBashforthMoulton.AB4"><code>OrdinaryDiffEqAdamsBashforthMoulton.AB4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AB4()</code></pre><p>Adams-Bashforth Explicit Method The 4-step fourth order multistep method. Runge-Kutta method of order 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L15-L28">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.AB5" href="#OrdinaryDiffEqAdamsBashforthMoulton.AB5"><code>OrdinaryDiffEqAdamsBashforthMoulton.AB5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AB5()</code></pre><p>Adams-Bashforth Explicit Method The 5-step fifth order multistep method. Ralston's 3rd order Runge-Kutta method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L23-L36">source</a></section></article><h3 id="Predictor-Corrector-Methods"><a class="docs-heading-anchor" href="#Predictor-Corrector-Methods">Predictor-Corrector Methods</a><a id="Predictor-Corrector-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Predictor-Corrector-Methods" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.ABM32" href="#OrdinaryDiffEqAdamsBashforthMoulton.ABM32"><code>OrdinaryDiffEqAdamsBashforthMoulton.ABM32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ABM32()</code></pre><p>Adams-Bashforth Explicit Method It is third order method. In ABM32, AB3 works as predictor and Adams Moulton 2-steps method works as Corrector. Ralston's Second Order Method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L32-L46">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.ABM43" href="#OrdinaryDiffEqAdamsBashforthMoulton.ABM43"><code>OrdinaryDiffEqAdamsBashforthMoulton.ABM43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ABM43()</code></pre><p>Adams-Bashforth Explicit Method It is fourth order method. In ABM43, AB4 works as predictor and Adams Moulton 3-steps method works as Corrector. Runge-Kutta method of order 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L42-L56">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.ABM54" href="#OrdinaryDiffEqAdamsBashforthMoulton.ABM54"><code>OrdinaryDiffEqAdamsBashforthMoulton.ABM54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ABM54()</code></pre><p>Adams-Bashforth Explicit Method It is fifth order method. In ABM54, AB5 works as predictor and Adams Moulton 4-steps method works as Corrector. Runge-Kutta method of order 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L52-L66">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCAB3" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCAB3"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCAB3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCAB3()</code></pre><p>Adams explicit Method The 3rd order Adams method. Bogacki-Shampine 3/2 method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L64-L77">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCAB4" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCAB4"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCAB4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCAB4()</code></pre><p>Adams explicit Method The 4th order Adams method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L73-L86">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCAB5" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCAB5"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCAB5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCAB5()</code></pre><p>Adams explicit Method The 5th order Adams method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L82-L95">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM3" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM3"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM3()</code></pre><p>Adams explicit Method The 3rd order Adams-Moulton method. Bogacki-Shampine 3/2 method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L91-L104">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM4" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM4"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM4()</code></pre><p>Adams explicit Method The 4th order Adams-Moulton method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L100-L113">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM5" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM5"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM5()</code></pre><p>Adams explicit Method The 5th order Adams-Moulton method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L109-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM()</code></pre><p>adaptive order Adams explicit Method An adaptive order adaptive time Adams Moulton method. It uses an order adaptivity algorithm is derived from Shampine's DDEABM.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L120-L133">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Verner/">« OrdinaryDiffEqVerner</a><a class="docs-footer-nextpage" href="../LowStorageRK/">OrdinaryDiffEqLowStorageRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, VCABM())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><h3 id="Explicit-Multistep-Methods"><a class="docs-heading-anchor" href="#Explicit-Multistep-Methods">Explicit Multistep Methods</a><a id="Explicit-Multistep-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Explicit-Multistep-Methods" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.AB3" href="#OrdinaryDiffEqAdamsBashforthMoulton.AB3"><code>OrdinaryDiffEqAdamsBashforthMoulton.AB3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AB3()</code></pre><p>Adams-Bashforth Explicit Method The 3-step third order multistep method. Ralston's Second Order Method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L6-L19">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.AB4" href="#OrdinaryDiffEqAdamsBashforthMoulton.AB4"><code>OrdinaryDiffEqAdamsBashforthMoulton.AB4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AB4()</code></pre><p>Adams-Bashforth Explicit Method The 4-step fourth order multistep method. Runge-Kutta method of order 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L15-L28">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.AB5" href="#OrdinaryDiffEqAdamsBashforthMoulton.AB5"><code>OrdinaryDiffEqAdamsBashforthMoulton.AB5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AB5()</code></pre><p>Adams-Bashforth Explicit Method The 5-step fifth order multistep method. Ralston's 3rd order Runge-Kutta method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L23-L36">source</a></section></article><h3 id="Predictor-Corrector-Methods"><a class="docs-heading-anchor" href="#Predictor-Corrector-Methods">Predictor-Corrector Methods</a><a id="Predictor-Corrector-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Predictor-Corrector-Methods" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.ABM32" href="#OrdinaryDiffEqAdamsBashforthMoulton.ABM32"><code>OrdinaryDiffEqAdamsBashforthMoulton.ABM32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ABM32()</code></pre><p>Adams-Bashforth Explicit Method It is third order method. In ABM32, AB3 works as predictor and Adams Moulton 2-steps method works as Corrector. Ralston's Second Order Method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L32-L46">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.ABM43" href="#OrdinaryDiffEqAdamsBashforthMoulton.ABM43"><code>OrdinaryDiffEqAdamsBashforthMoulton.ABM43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ABM43()</code></pre><p>Adams-Bashforth Explicit Method It is fourth order method. In ABM43, AB4 works as predictor and Adams Moulton 3-steps method works as Corrector. Runge-Kutta method of order 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L42-L56">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.ABM54" href="#OrdinaryDiffEqAdamsBashforthMoulton.ABM54"><code>OrdinaryDiffEqAdamsBashforthMoulton.ABM54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ABM54()</code></pre><p>Adams-Bashforth Explicit Method It is fifth order method. In ABM54, AB5 works as predictor and Adams Moulton 4-steps method works as Corrector. Runge-Kutta method of order 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L52-L66">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCAB3" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCAB3"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCAB3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCAB3()</code></pre><p>Adams explicit Method The 3rd order Adams method. Bogacki-Shampine 3/2 method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L64-L77">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCAB4" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCAB4"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCAB4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCAB4()</code></pre><p>Adams explicit Method The 4th order Adams method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L73-L86">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCAB5" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCAB5"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCAB5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCAB5()</code></pre><p>Adams explicit Method The 5th order Adams method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L82-L95">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM3" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM3"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM3()</code></pre><p>Adams explicit Method The 3rd order Adams-Moulton method. Bogacki-Shampine 3/2 method is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L91-L104">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM4" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM4"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM4()</code></pre><p>Adams explicit Method The 4th order Adams-Moulton method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L100-L113">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM5" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM5"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM5()</code></pre><p>Adams explicit Method The 5th order Adams-Moulton method. Runge-Kutta 4 is used to calculate starting values.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L109-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqAdamsBashforthMoulton.VCABM" href="#OrdinaryDiffEqAdamsBashforthMoulton.VCABM"><code>OrdinaryDiffEqAdamsBashforthMoulton.VCABM</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">VCABM()</code></pre><p>adaptive order Adams explicit Method An adaptive order adaptive time Adams Moulton method. It uses an order adaptivity algorithm is derived from Shampine's DDEABM.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S. P. Norsett, G. Wanner, Solving Ordinary Differential Equations I, Nonstiff Problems. Computational Mathematics (2nd revised ed.), Springer (1996) doi: https://doi.org/10.1007/978-3-540-78862-1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqAdamsBashforthMoulton/src/algorithms.jl#L120-L133">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Verner/">« OrdinaryDiffEqVerner</a><a class="docs-footer-nextpage" href="../LowStorageRK/">OrdinaryDiffEqLowStorageRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/Extrapolation/index.html b/dev/explicit/Extrapolation/index.html index 067a2523a3..89a7274093 100644 --- a/dev/explicit/Extrapolation/index.html +++ b/dev/explicit/Extrapolation/index.html @@ -17,14 +17,14 @@ sol = solve(prob, ExtrapolationMidpointDeuflhard())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.AitkenNeville" href="#OrdinaryDiffEqExtrapolation.AitkenNeville"><code>OrdinaryDiffEqExtrapolation.AitkenNeville</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AitkenNeville(; max_order::Int = 10, min_order::Int = 1, init_order = 3, - thread = OrdinaryDiffEq.False())</code></pre><p>Parallelized Explicit Extrapolation Method. Euler extrapolation using Aitken-Neville with the Romberg Sequence.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L14-L39">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ExtrapolationMidpointDeuflhard" href="#OrdinaryDiffEqExtrapolation.ExtrapolationMidpointDeuflhard"><code>OrdinaryDiffEqExtrapolation.ExtrapolationMidpointDeuflhard</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ExtrapolationMidpointDeuflhard(; max_order = 10, + thread = OrdinaryDiffEq.False())</code></pre><p>Parallelized Explicit Extrapolation Method. Euler extrapolation using Aitken-Neville with the Romberg Sequence.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L14-L39">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ExtrapolationMidpointDeuflhard" href="#OrdinaryDiffEqExtrapolation.ExtrapolationMidpointDeuflhard"><code>OrdinaryDiffEqExtrapolation.ExtrapolationMidpointDeuflhard</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ExtrapolationMidpointDeuflhard(; max_order = 10, min_order = 1, init_order = 5, thread = OrdinaryDiffEq.True(), sequence = :harmonic, - sequence_factor = 2)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li><li><code>sequence_factor</code>: denotes which even multiple of sequence to take while evaluating internal discretizations.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L110-L139">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ExtrapolationMidpointHairerWanner" href="#OrdinaryDiffEqExtrapolation.ExtrapolationMidpointHairerWanner"><code>OrdinaryDiffEqExtrapolation.ExtrapolationMidpointHairerWanner</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ExtrapolationMidpointHairerWanner(; max_order = 10, + sequence_factor = 2)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li><li><code>sequence_factor</code>: denotes which even multiple of sequence to take while evaluating internal discretizations.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L110-L139">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ExtrapolationMidpointHairerWanner" href="#OrdinaryDiffEqExtrapolation.ExtrapolationMidpointHairerWanner"><code>OrdinaryDiffEqExtrapolation.ExtrapolationMidpointHairerWanner</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ExtrapolationMidpointHairerWanner(; max_order = 10, min_order = 2, init_order = 5, thread = OrdinaryDiffEq.True(), sequence = :harmonic, - sequence_factor = 2)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates, following Hairer's ODEX in the adaptivity behavior.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li><li><code>sequence_factor</code>: denotes which even multiple of sequence to take while evaluating internal discretizations.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L253-L283">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../QPRK/">« OrdinaryDiffEqQPRK</a><a class="docs-footer-nextpage" href="../../semiimplicit/Rosenbrock/">OrdinaryDiffEqRosenbrock »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + sequence_factor = 2)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates, following Hairer's ODEX in the adaptivity behavior.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li><li><code>sequence_factor</code>: denotes which even multiple of sequence to take while evaluating internal discretizations.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L253-L283">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../QPRK/">« OrdinaryDiffEqQPRK</a><a class="docs-footer-nextpage" href="../../semiimplicit/Rosenbrock/">OrdinaryDiffEqRosenbrock »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/Feagin/index.html b/dev/explicit/Feagin/index.html index 35c2e30ac2..865ba8fc94 100644 --- a/dev/explicit/Feagin/index.html +++ b/dev/explicit/Feagin/index.html @@ -14,4 +14,4 @@ u0 = [1.0; 0.0; 0.0] tspan = (0.0, 100.0) prob = ODEProblem(lorenz!, u0, tspan) -sol = solve(prob, Feagin14())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFeagin.Feagin10" href="#OrdinaryDiffEqFeagin.Feagin10"><code>OrdinaryDiffEqFeagin.Feagin10</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Feagin10(; step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Explicit Runge-Kutta Method. Feagin's 10th-order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{feagin2012high, title={High-order explicit Runge-Kutta methods using m-symmetry}, author={Feagin, Terry}, year={2012}, publisher={Neural, Parallel \& Scientific Computations} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqFeagin/src/algorithms.jl#L1-L18">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFeagin.Feagin12" href="#OrdinaryDiffEqFeagin.Feagin12"><code>OrdinaryDiffEqFeagin.Feagin12</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Feagin12(; step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Explicit Runge-Kutta Method. Feagin's 12th-order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{feagin2012high, title={High-order explicit Runge-Kutta methods using m-symmetry}, author={Feagin, Terry}, year={2012}, publisher={Neural, Parallel \& Scientific Computations} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqFeagin/src/algorithms.jl#L20-L37">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFeagin.Feagin14" href="#OrdinaryDiffEqFeagin.Feagin14"><code>OrdinaryDiffEqFeagin.Feagin14</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Feagin14(; step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Explicit Runge-Kutta Method. Feagin's 14th-order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{feagin2009explicit, title={An Explicit Runge-Kutta Method of Order Fourteen}, author={Feagin, Terry}, year={2009}, publisher={Numerical Algorithms} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqFeagin/src/algorithms.jl#L39-L56">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../HighOrderRK/">« OrdinaryDiffEqHighOrderRK</a><a class="docs-footer-nextpage" href="../PRK/">OrdinaryDiffEqPRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, Feagin14())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFeagin.Feagin10" href="#OrdinaryDiffEqFeagin.Feagin10"><code>OrdinaryDiffEqFeagin.Feagin10</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Feagin10(; step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Explicit Runge-Kutta Method. Feagin's 10th-order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{feagin2012high, title={High-order explicit Runge-Kutta methods using m-symmetry}, author={Feagin, Terry}, year={2012}, publisher={Neural, Parallel \& Scientific Computations} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqFeagin/src/algorithms.jl#L1-L18">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFeagin.Feagin12" href="#OrdinaryDiffEqFeagin.Feagin12"><code>OrdinaryDiffEqFeagin.Feagin12</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Feagin12(; step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Explicit Runge-Kutta Method. Feagin's 12th-order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{feagin2012high, title={High-order explicit Runge-Kutta methods using m-symmetry}, author={Feagin, Terry}, year={2012}, publisher={Neural, Parallel \& Scientific Computations} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqFeagin/src/algorithms.jl#L20-L37">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFeagin.Feagin14" href="#OrdinaryDiffEqFeagin.Feagin14"><code>OrdinaryDiffEqFeagin.Feagin14</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Feagin14(; step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Explicit Runge-Kutta Method. Feagin's 14th-order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{feagin2009explicit, title={An Explicit Runge-Kutta Method of Order Fourteen}, author={Feagin, Terry}, year={2009}, publisher={Numerical Algorithms} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqFeagin/src/algorithms.jl#L39-L56">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../HighOrderRK/">« OrdinaryDiffEqHighOrderRK</a><a class="docs-footer-nextpage" href="../PRK/">OrdinaryDiffEqPRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/HighOrderRK/index.html b/dev/explicit/HighOrderRK/index.html index a13fa034b3..bf58f15ea9 100644 --- a/dev/explicit/HighOrderRK/index.html +++ b/dev/explicit/HighOrderRK/index.html @@ -16,11 +16,11 @@ prob = ODEProblem(lorenz!, u0, tspan) sol = solve(prob, DP8())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.TanYam7" href="#OrdinaryDiffEqHighOrderRK.TanYam7"><code>OrdinaryDiffEqHighOrderRK.TanYam7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TanYam7(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Tanaka-Yamashita 7 Runge-Kutta method. (7th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>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.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L1-L19">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.TsitPap8" href="#OrdinaryDiffEqHighOrderRK.TsitPap8"><code>OrdinaryDiffEqHighOrderRK.TsitPap8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TsitPap8(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Tanaka-Yamashita 7 Runge-Kutta method. (7th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>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.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L1-L19">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.TsitPap8" href="#OrdinaryDiffEqHighOrderRK.TsitPap8"><code>OrdinaryDiffEqHighOrderRK.TsitPap8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TsitPap8(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Tsitouras-Papakostas 8/7 Runge-Kutta method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{tsitouras1999cheap, title={Cheap error estimation for Runge–Kutta methods}, author={Tsitouras, Ch and Papakostas, SN}, journal={SIAM Journal on Scientific Computing}, volume={20}, number={6}, pages={2067–2088}, year={1999}, publisher={SIAM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L18-L42">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.DP8" href="#OrdinaryDiffEqHighOrderRK.DP8"><code>OrdinaryDiffEqHighOrderRK.DP8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DP8(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Tsitouras-Papakostas 8/7 Runge-Kutta method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{tsitouras1999cheap, title={Cheap error estimation for Runge–Kutta methods}, author={Tsitouras, Ch and Papakostas, SN}, journal={SIAM Journal on Scientific Computing}, volume={20}, number={6}, pages={2067–2088}, year={1999}, publisher={SIAM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L18-L42">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.DP8" href="#OrdinaryDiffEqHighOrderRK.DP8"><code>OrdinaryDiffEqHighOrderRK.DP8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DP8(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Hairer's 8/5/3 adaption of the Dormand-Prince Runge-Kutta method. (7th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L39-L57">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.PFRK87" href="#OrdinaryDiffEqHighOrderRK.PFRK87"><code>OrdinaryDiffEqHighOrderRK.PFRK87</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PFRK87(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Hairer's 8/5/3 adaption of the Dormand-Prince Runge-Kutta method. (7th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L39-L57">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqHighOrderRK.PFRK87" href="#OrdinaryDiffEqHighOrderRK.PFRK87"><code>OrdinaryDiffEqHighOrderRK.PFRK87</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PFRK87(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - omega = 0.0)</code></pre><p>Explicit Runge-Kutta Method. Phase-fitted Runge-Kutta of 8th order.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>omega</code>: a periodicity phase estimate, when accurate this method results in zero numerical dissipation.</li></ul><p><strong>References</strong></p><p>@article{tsitouras2017phase, title={Phase-fitted Runge–Kutta pairs of orders 8 (7)}, author={Tsitouras, Ch and Famelis, I Th and Simos, TE}, journal={Journal of Computational and Applied Mathematics}, volume={321}, pages={226–231}, year={2017}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L55-L81">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../LowOrderRK/">« OrdinaryDiffEqLowOrderRK</a><a class="docs-footer-nextpage" href="../Feagin/">OrdinaryDiffEqFeagin »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + omega = 0.0)</code></pre><p>Explicit Runge-Kutta Method. Phase-fitted Runge-Kutta of 8th order.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>omega</code>: a periodicity phase estimate, when accurate this method results in zero numerical dissipation.</li></ul><p><strong>References</strong></p><p>@article{tsitouras2017phase, title={Phase-fitted Runge–Kutta pairs of orders 8 (7)}, author={Tsitouras, Ch and Famelis, I Th and Simos, TE}, journal={Journal of Computational and Applied Mathematics}, volume={321}, pages={226–231}, year={2017}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl#L55-L81">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../LowOrderRK/">« OrdinaryDiffEqLowOrderRK</a><a class="docs-footer-nextpage" href="../Feagin/">OrdinaryDiffEqFeagin »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/LowOrderRK/index.html b/dev/explicit/LowOrderRK/index.html index d7321c1c5e..79cbfeb0cb 100644 --- a/dev/explicit/LowOrderRK/index.html +++ b/dev/explicit/LowOrderRK/index.html @@ -14,55 +14,55 @@ u0 = [1.0; 0.0; 0.0] tspan = (0.0, 100.0) prob = ODEProblem(lorenz!, u0, tspan) -sol = solve(prob, BS3())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Euler" href="#OrdinaryDiffEqLowOrderRK.Euler"><code>OrdinaryDiffEqLowOrderRK.Euler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Euler()</code></pre><p>Explicit Runge-Kutta Method. The canonical forward Euler method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L1-L13">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Heun" href="#OrdinaryDiffEqLowOrderRK.Heun"><code>OrdinaryDiffEqLowOrderRK.Heun</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Heun(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, +sol = solve(prob, BS3())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Euler" href="#OrdinaryDiffEqLowOrderRK.Euler"><code>OrdinaryDiffEqLowOrderRK.Euler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Euler()</code></pre><p>Explicit Runge-Kutta Method. The canonical forward Euler method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L1-L13">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Heun" href="#OrdinaryDiffEqLowOrderRK.Heun"><code>OrdinaryDiffEqLowOrderRK.Heun</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Heun(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. The second order Heun's method. Uses embedded Euler method for adaptivity.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L13-L31">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Ralston" href="#OrdinaryDiffEqLowOrderRK.Ralston"><code>OrdinaryDiffEqLowOrderRK.Ralston</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ralston(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. The second order Heun's method. Uses embedded Euler method for adaptivity.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L13-L31">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Ralston" href="#OrdinaryDiffEqLowOrderRK.Ralston"><code>OrdinaryDiffEqLowOrderRK.Ralston</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ralston(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. The optimized second order midpoint method. Uses embedded Euler method for adaptivity.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L30-L48">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Midpoint" href="#OrdinaryDiffEqLowOrderRK.Midpoint"><code>OrdinaryDiffEqLowOrderRK.Midpoint</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Midpoint(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. The optimized second order midpoint method. Uses embedded Euler method for adaptivity.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L30-L48">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Midpoint" href="#OrdinaryDiffEqLowOrderRK.Midpoint"><code>OrdinaryDiffEqLowOrderRK.Midpoint</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Midpoint(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. The second order midpoint method. Uses embedded Euler method for adaptivity.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L47-L65">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.RK4" href="#OrdinaryDiffEqLowOrderRK.RK4"><code>OrdinaryDiffEqLowOrderRK.RK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RK4(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. The second order midpoint method. Uses embedded Euler method for adaptivity.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I. Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics, Springer-Verlag.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L47-L65">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.RK4" href="#OrdinaryDiffEqLowOrderRK.RK4"><code>OrdinaryDiffEqLowOrderRK.RK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RK4(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>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.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L64-L90">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.BS3" href="#OrdinaryDiffEqLowOrderRK.BS3"><code>OrdinaryDiffEqLowOrderRK.BS3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">BS3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>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.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L64-L90">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.BS3" href="#OrdinaryDiffEqLowOrderRK.BS3"><code>OrdinaryDiffEqLowOrderRK.BS3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">BS3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-stage FSAL method with embedded error estimator of Bogacki and Shampine.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L87-L113">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.OwrenZen3" href="#OrdinaryDiffEqLowOrderRK.OwrenZen3"><code>OrdinaryDiffEqLowOrderRK.OwrenZen3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">OwrenZen3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-stage FSAL method with embedded error estimator of Bogacki and Shampine.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L87-L113">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.OwrenZen3" href="#OrdinaryDiffEqLowOrderRK.OwrenZen3"><code>OrdinaryDiffEqLowOrderRK.OwrenZen3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">OwrenZen3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Owren-Zennaro optimized interpolation 3/2 method (free 3rd order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L111-L136">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.OwrenZen4" href="#OrdinaryDiffEqLowOrderRK.OwrenZen4"><code>OrdinaryDiffEqLowOrderRK.OwrenZen4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">OwrenZen4(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Owren-Zennaro optimized interpolation 3/2 method (free 3rd order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L111-L136">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.OwrenZen4" href="#OrdinaryDiffEqLowOrderRK.OwrenZen4"><code>OrdinaryDiffEqLowOrderRK.OwrenZen4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">OwrenZen4(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Owren-Zennaro optimized interpolation 4/3 method (free 4th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L135-L160">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.OwrenZen5" href="#OrdinaryDiffEqLowOrderRK.OwrenZen5"><code>OrdinaryDiffEqLowOrderRK.OwrenZen5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">OwrenZen5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Owren-Zennaro optimized interpolation 4/3 method (free 4th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L135-L160">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.OwrenZen5" href="#OrdinaryDiffEqLowOrderRK.OwrenZen5"><code>OrdinaryDiffEqLowOrderRK.OwrenZen5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">OwrenZen5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Owren-Zennaro optimized interpolation 5/4 method (free 5th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L159-L184">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.BS5" href="#OrdinaryDiffEqLowOrderRK.BS5"><code>OrdinaryDiffEqLowOrderRK.BS5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">BS5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Owren-Zennaro optimized interpolation 5/4 method (free 5th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L159-L184">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.BS5" href="#OrdinaryDiffEqLowOrderRK.BS5"><code>OrdinaryDiffEqLowOrderRK.BS5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">BS5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Bogacki-Shampine 5/4 Runge-Kutta method. (lazy 5th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L183-L209">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.DP5" href="#OrdinaryDiffEqLowOrderRK.DP5"><code>OrdinaryDiffEqLowOrderRK.DP5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DP5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Bogacki-Shampine 5/4 Runge-Kutta method. (lazy 5th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L183-L209">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.DP5" href="#OrdinaryDiffEqLowOrderRK.DP5"><code>OrdinaryDiffEqLowOrderRK.DP5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DP5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Dormand-Prince's 5/4 Runge-Kutta method. (free 4th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L209-L234">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Anas5" href="#OrdinaryDiffEqLowOrderRK.Anas5"><code>OrdinaryDiffEqLowOrderRK.Anas5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Anas5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Dormand-Prince's 5/4 Runge-Kutta method. (free 4th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L209-L234">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Anas5" href="#OrdinaryDiffEqLowOrderRK.Anas5"><code>OrdinaryDiffEqLowOrderRK.Anas5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Anas5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - w = 1)</code></pre><p>Explicit Runge-Kutta Method. 4th order Runge-Kutta method designed for periodic problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>w</code>: a periodicity estimate, which when accurate the method becomes 5th order</li></ul><p>(and is otherwise 4th order with less error for better estimates).</p><p><strong>References</strong></p><p>@article{anastassi2005optimized, title={An optimized Runge–Kutta method for the solution of orbital problems}, author={Anastassi, ZA and Simos, TE}, journal={Journal of Computational and Applied Mathematics}, volume={175}, number={1}, pages={1–9}, year={2005}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L234-L260">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.RKO65" href="#OrdinaryDiffEqLowOrderRK.RKO65"><code>OrdinaryDiffEqLowOrderRK.RKO65</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKO65(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + w = 1)</code></pre><p>Explicit Runge-Kutta Method. 4th order Runge-Kutta method designed for periodic problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>w</code>: a periodicity estimate, which when accurate the method becomes 5th order</li></ul><p>(and is otherwise 4th order with less error for better estimates).</p><p><strong>References</strong></p><p>@article{anastassi2005optimized, title={An optimized Runge–Kutta method for the solution of orbital problems}, author={Anastassi, ZA and Simos, TE}, journal={Journal of Computational and Applied Mathematics}, volume={175}, number={1}, pages={1–9}, year={2005}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L234-L260">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.RKO65" href="#OrdinaryDiffEqLowOrderRK.RKO65"><code>OrdinaryDiffEqLowOrderRK.RKO65</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKO65(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>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</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L259-L277">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.FRK65" href="#OrdinaryDiffEqLowOrderRK.FRK65"><code>OrdinaryDiffEqLowOrderRK.FRK65</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FRK65(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>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</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L259-L277">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.FRK65" href="#OrdinaryDiffEqLowOrderRK.FRK65"><code>OrdinaryDiffEqLowOrderRK.FRK65</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FRK65(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - omega = 0.0)</code></pre><p>Explicit Runge-Kutta Method. Zero Dissipation Runge-Kutta of 6th order.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>omega</code>: a periodicity phase estimate,</li></ul><p>when accurate this method results in zero numerical dissipation.</p><p><strong>References</strong></p><p>@article{medvedev2018fitted, title={Fitted modifications of Runge-Kutta pairs of orders 6 (5)}, author={Medvedev, Maxim A and Simos, TE and Tsitouras, Ch}, journal={Mathematical Methods in the Applied Sciences}, volume={41}, number={16}, pages={6184–6194}, year={2018}, publisher={Wiley Online Library}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L273-L299">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.RKM" href="#OrdinaryDiffEqLowOrderRK.RKM"><code>OrdinaryDiffEqLowOrderRK.RKM</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKM(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + omega = 0.0)</code></pre><p>Explicit Runge-Kutta Method. Zero Dissipation Runge-Kutta of 6th order.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>omega</code>: a periodicity phase estimate,</li></ul><p>when accurate this method results in zero numerical dissipation.</p><p><strong>References</strong></p><p>@article{medvedev2018fitted, title={Fitted modifications of Runge-Kutta pairs of orders 6 (5)}, author={Medvedev, Maxim A and Simos, TE and Tsitouras, Ch}, journal={Mathematical Methods in the Applied Sciences}, volume={41}, number={16}, pages={6184–6194}, year={2018}, publisher={Wiley Online Library}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L273-L299">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.RKM" href="#OrdinaryDiffEqLowOrderRK.RKM"><code>OrdinaryDiffEqLowOrderRK.RKM</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKM(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Method designed to have good stability properties when applied to pseudospectral discretizations of hyperbolic partial differential equaitons.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{mead1999optimal, title={Optimal Runge–Kutta methods for first order pseudospectral operators}, author={Mead, JL and Renaut, RA}, journal={Journal of Computational Physics}, volume={152}, number={1}, pages={404–419}, year={1999}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L299-L326">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.MSRK5" href="#OrdinaryDiffEqLowOrderRK.MSRK5"><code>OrdinaryDiffEqLowOrderRK.MSRK5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MSRK5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Method designed to have good stability properties when applied to pseudospectral discretizations of hyperbolic partial differential equaitons.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{mead1999optimal, title={Optimal Runge–Kutta methods for first order pseudospectral operators}, author={Mead, JL and Renaut, RA}, journal={Journal of Computational Physics}, volume={152}, number={1}, pages={404–419}, year={1999}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L299-L326">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.MSRK5" href="#OrdinaryDiffEqLowOrderRK.MSRK5"><code>OrdinaryDiffEqLowOrderRK.MSRK5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MSRK5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Misha Stepanov - https://arxiv.org/pdf/2202.08443.pdf : Figure 3.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L323-L339">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.MSRK6" href="#OrdinaryDiffEqLowOrderRK.MSRK6"><code>OrdinaryDiffEqLowOrderRK.MSRK6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MSRK6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Misha Stepanov - https://arxiv.org/pdf/2202.08443.pdf : Figure 3.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L323-L339">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.MSRK6" href="#OrdinaryDiffEqLowOrderRK.MSRK6"><code>OrdinaryDiffEqLowOrderRK.MSRK6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MSRK6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Misha Stepanov - https://arxiv.org/pdf/2202.08443.pdf : Table4</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L335-L351">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.PSRK4p7q6" href="#OrdinaryDiffEqLowOrderRK.PSRK4p7q6"><code>OrdinaryDiffEqLowOrderRK.PSRK4p7q6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PSRK4p7q6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Misha Stepanov - https://arxiv.org/pdf/2202.08443.pdf : Table4</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L335-L351">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.PSRK4p7q6" href="#OrdinaryDiffEqLowOrderRK.PSRK4p7q6"><code>OrdinaryDiffEqLowOrderRK.PSRK4p7q6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PSRK4p7q6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6-stage Pseudo-Symplectic method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Aubry1998, author = {A. Aubry and P. Chartier}, journal = {BIT Numer. Math.}, title = {Pseudo-symplectic {R}unge-{K}utta methods}, volume = {38}, PAGES = {439-461}, year = {1998}, }, @article{Capuano2017, title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties}, journal = {J. Comput. Phys.}, volume = {328}, pages = {86-94}, year = {2017}, issn = {0021-9991}, doi = {https://doi.org/10.1016/j.jcp.2016.10.040}, author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L347-L379">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.PSRK3p5q4" href="#OrdinaryDiffEqLowOrderRK.PSRK3p5q4"><code>OrdinaryDiffEqLowOrderRK.PSRK3p5q4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PSRK3p5q4(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6-stage Pseudo-Symplectic method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Aubry1998, author = {A. Aubry and P. Chartier}, journal = {BIT Numer. Math.}, title = {Pseudo-symplectic {R}unge-{K}utta methods}, volume = {38}, PAGES = {439-461}, year = {1998}, }, @article{Capuano2017, title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties}, journal = {J. Comput. Phys.}, volume = {328}, pages = {86-94}, year = {2017}, issn = {0021-9991}, doi = {https://doi.org/10.1016/j.jcp.2016.10.040}, author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L347-L379">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.PSRK3p5q4" href="#OrdinaryDiffEqLowOrderRK.PSRK3p5q4"><code>OrdinaryDiffEqLowOrderRK.PSRK3p5q4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PSRK3p5q4(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 4-stage Pseudo-Symplectic method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Aubry1998, author = {A. Aubry and P. Chartier}, journal = {BIT Numer. Math.}, title = {Pseudo-symplectic {R}unge-{K}utta methods}, year = {1998}, }, @article{Capuano2017, title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties}, journal = {J. Comput. Phys.}, year = {2017}, author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L371-L397">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.PSRK3p6q5" href="#OrdinaryDiffEqLowOrderRK.PSRK3p6q5"><code>OrdinaryDiffEqLowOrderRK.PSRK3p6q5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PSRK3p6q5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 4-stage Pseudo-Symplectic method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Aubry1998, author = {A. Aubry and P. Chartier}, journal = {BIT Numer. Math.}, title = {Pseudo-symplectic {R}unge-{K}utta methods}, year = {1998}, }, @article{Capuano2017, title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties}, journal = {J. Comput. Phys.}, year = {2017}, author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L371-L397">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.PSRK3p6q5" href="#OrdinaryDiffEqLowOrderRK.PSRK3p6q5"><code>OrdinaryDiffEqLowOrderRK.PSRK3p6q5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">PSRK3p6q5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5-stage Pseudo-Symplectic method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Aubry1998, author = {A. Aubry and P. Chartier}, journal = {BIT Numer. Math.}, title = {Pseudo-symplectic {R}unge-{K}utta methods}, year = {1998}, }, @article{Capuano2017, title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties}, journal = {J. Comput. Phys.}, year = {2017}, author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L389-L415">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Stepanov5" href="#OrdinaryDiffEqLowOrderRK.Stepanov5"><code>OrdinaryDiffEqLowOrderRK.Stepanov5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Stepanov5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5-stage Pseudo-Symplectic method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Aubry1998, author = {A. Aubry and P. Chartier}, journal = {BIT Numer. Math.}, title = {Pseudo-symplectic {R}unge-{K}utta methods}, year = {1998}, }, @article{Capuano2017, title = {Explicit {R}unge–{K}utta schemes for incompressible flow with improved energy-conservation properties}, journal = {J. Comput. Phys.}, year = {2017}, author = {F. Capuano and G. Coppola and L. Rández and L. {de Luca}},}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L389-L415">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Stepanov5" href="#OrdinaryDiffEqLowOrderRK.Stepanov5"><code>OrdinaryDiffEqLowOrderRK.Stepanov5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Stepanov5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Stepanov2021Embedded5, title={Embedded (4, 5) pairs of explicit 7-stage Runge–Kutta methods with FSAL property}, author={Misha Stepanov}, journal={Calcolo}, year={2021}, volume={59} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L407-L429">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.SIR54" href="#OrdinaryDiffEqLowOrderRK.SIR54"><code>OrdinaryDiffEqLowOrderRK.SIR54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SIR54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Stepanov2021Embedded5, title={Embedded (4, 5) pairs of explicit 7-stage Runge–Kutta methods with FSAL property}, author={Misha Stepanov}, journal={Calcolo}, year={2021}, volume={59} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L407-L429">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.SIR54" href="#OrdinaryDiffEqLowOrderRK.SIR54"><code>OrdinaryDiffEqLowOrderRK.SIR54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SIR54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method suited for SIR-type epidemic models.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Kovalnogov2020RungeKuttaPS, title={Runge–Kutta pairs suited for SIR‐type epidemic models}, author={Vladislav N. Kovalnogov and Theodore E. Simos and Ch. Tsitouras}, journal={Mathematical Methods in the Applied Sciences}, year={2020}, volume={44}, pages={5210 - 5216} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L427-L450">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Alshina2" href="#OrdinaryDiffEqLowOrderRK.Alshina2"><code>OrdinaryDiffEqLowOrderRK.Alshina2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Alshina2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 5th order method suited for SIR-type epidemic models.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Kovalnogov2020RungeKuttaPS, title={Runge–Kutta pairs suited for SIR‐type epidemic models}, author={Vladislav N. Kovalnogov and Theodore E. Simos and Ch. Tsitouras}, journal={Mathematical Methods in the Applied Sciences}, year={2020}, volume={44}, pages={5210 - 5216} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L427-L450">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Alshina2" href="#OrdinaryDiffEqLowOrderRK.Alshina2"><code>OrdinaryDiffEqLowOrderRK.Alshina2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Alshina2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 2nd order, 2-stage Method with optimal parameters.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Alshina2008, doi = {10.1134/s0965542508030068}, url = {https://doi.org/10.1134/s0965542508030068}, year = {2008}, month = mar, publisher = {Pleiades Publishing Ltd}, volume = {48}, number = {3}, pages = {395–405}, author = {E. A. Alshina and E. M. Zaks and N. N. Kalitkin}, title = {Optimal first- to sixth-order accurate Runge-Kutta schemes}, journal = {Computational Mathematics and Mathematical Physics} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L448-L476">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Alshina3" href="#OrdinaryDiffEqLowOrderRK.Alshina3"><code>OrdinaryDiffEqLowOrderRK.Alshina3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Alshina3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 2nd order, 2-stage Method with optimal parameters.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Alshina2008, doi = {10.1134/s0965542508030068}, url = {https://doi.org/10.1134/s0965542508030068}, year = {2008}, month = mar, publisher = {Pleiades Publishing Ltd}, volume = {48}, number = {3}, pages = {395–405}, author = {E. A. Alshina and E. M. Zaks and N. N. Kalitkin}, title = {Optimal first- to sixth-order accurate Runge-Kutta schemes}, journal = {Computational Mathematics and Mathematical Physics} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L448-L476">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Alshina3" href="#OrdinaryDiffEqLowOrderRK.Alshina3"><code>OrdinaryDiffEqLowOrderRK.Alshina3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Alshina3(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 3rd order, 3-stage Method with optimal parameters.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Alshina2008, doi = {10.1134/s0965542508030068}, url = {https://doi.org/10.1134/s0965542508030068}, year = {2008}, month = mar, publisher = {Pleiades Publishing Ltd}, volume = {48}, number = {3}, pages = {395–405}, author = {E. A. Alshina and E. M. Zaks and N. N. Kalitkin}, title = {Optimal first- to sixth-order accurate Runge-Kutta schemes}, journal = {Computational Mathematics and Mathematical Physics} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L474-L502">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Alshina6" href="#OrdinaryDiffEqLowOrderRK.Alshina6"><code>OrdinaryDiffEqLowOrderRK.Alshina6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Alshina6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 3rd order, 3-stage Method with optimal parameters.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Alshina2008, doi = {10.1134/s0965542508030068}, url = {https://doi.org/10.1134/s0965542508030068}, year = {2008}, month = mar, publisher = {Pleiades Publishing Ltd}, volume = {48}, number = {3}, pages = {395–405}, author = {E. A. Alshina and E. M. Zaks and N. N. Kalitkin}, title = {Optimal first- to sixth-order accurate Runge-Kutta schemes}, journal = {Computational Mathematics and Mathematical Physics} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L474-L502">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowOrderRK.Alshina6" href="#OrdinaryDiffEqLowOrderRK.Alshina6"><code>OrdinaryDiffEqLowOrderRK.Alshina6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Alshina6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6th order, 7-stage Method with optimal parameters.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Alshina2008, doi = {10.1134/s0965542508030068}, url = {https://doi.org/10.1134/s0965542508030068}, year = {2008}, month = mar, publisher = {Pleiades Publishing Ltd}, volume = {48}, number = {3}, pages = {395–405}, author = {E. A. Alshina and E. M. Zaks and N. N. Kalitkin}, title = {Optimal first- to sixth-order accurate Runge-Kutta schemes}, journal = {Computational Mathematics and Mathematical Physics} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L500-L528">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../SSPRK/">« OrdinaryDiffEqSSPRK</a><a class="docs-footer-nextpage" href="../HighOrderRK/">OrdinaryDiffEqHighOrderRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6th order, 7-stage Method with optimal parameters.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{Alshina2008, doi = {10.1134/s0965542508030068}, url = {https://doi.org/10.1134/s0965542508030068}, year = {2008}, month = mar, publisher = {Pleiades Publishing Ltd}, volume = {48}, number = {3}, pages = {395–405}, author = {E. A. Alshina and E. M. Zaks and N. N. Kalitkin}, title = {Optimal first- to sixth-order accurate Runge-Kutta schemes}, journal = {Computational Mathematics and Mathematical Physics} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowOrderRK/src/algorithms.jl#L500-L528">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../SSPRK/">« OrdinaryDiffEqSSPRK</a><a class="docs-footer-nextpage" href="../HighOrderRK/">OrdinaryDiffEqHighOrderRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/LowStorageRK/index.html b/dev/explicit/LowStorageRK/index.html index 483f60a16c..0cfa54b247 100644 --- a/dev/explicit/LowStorageRK/index.html +++ b/dev/explicit/LowStorageRK/index.html @@ -17,101 +17,101 @@ sol = solve(prob, CarpenterKennedy2N54())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ORK256" href="#OrdinaryDiffEqLowStorageRK.ORK256"><code>OrdinaryDiffEqLowStorageRK.ORK256</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ORK256(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. A second-order, five-stage method for wave propagation equations. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>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</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1-L24">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.DGLDDRK73_C" href="#OrdinaryDiffEqLowStorageRK.DGLDDRK73_C"><code>OrdinaryDiffEqLowStorageRK.DGLDDRK73_C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DGLDDRK73_C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. A second-order, five-stage method for wave propagation equations. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>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</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1-L24">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.DGLDDRK73_C" href="#OrdinaryDiffEqLowStorageRK.DGLDDRK73_C"><code>OrdinaryDiffEqLowStorageRK.DGLDDRK73_C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DGLDDRK73_C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 7-stage, third order low-storage low-dissipation, low-dispersion scheme for discontinuous Galerkin space discretizations applied to wave propagation problems. Optimized for PDE discretizations when maximum spatial step is small due to geometric features of computational domain. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>T. Toulorge, W. Desmet. Optimal Runge–Kutta Schemes for Discontinuous Galerkin Space Discretizations Applied to Wave Propagation Problems. Journal of Computational Physics, 231(4), pp 2067-2091, 2012. doi: https://doi.org/10.1016/j.jcp.2011.11.024</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L25-L50">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CarpenterKennedy2N54" href="#OrdinaryDiffEqLowStorageRK.CarpenterKennedy2N54"><code>OrdinaryDiffEqLowStorageRK.CarpenterKennedy2N54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CarpenterKennedy2N54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 7-stage, third order low-storage low-dissipation, low-dispersion scheme for discontinuous Galerkin space discretizations applied to wave propagation problems. Optimized for PDE discretizations when maximum spatial step is small due to geometric features of computational domain. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>T. Toulorge, W. Desmet. Optimal Runge–Kutta Schemes for Discontinuous Galerkin Space Discretizations Applied to Wave Propagation Problems. Journal of Computational Physics, 231(4), pp 2067-2091, 2012. doi: https://doi.org/10.1016/j.jcp.2011.11.024</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L25-L50">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CarpenterKennedy2N54" href="#OrdinaryDiffEqLowStorageRK.CarpenterKennedy2N54"><code>OrdinaryDiffEqLowStorageRK.CarpenterKennedy2N54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CarpenterKennedy2N54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, five-stage low-storage method of Carpenter and Kennedy (free 3rd order Hermite interpolant). Fixed timestep only. Designed for hyperbolic PDEs (stability properties).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>@article{carpenter1994fourth, title={Fourth-order 2N-storage Runge-Kutta schemes}, author={Carpenter, Mark H and Kennedy, Christopher A}, year={1994} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L54-L78">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.NDBLSRK124" href="#OrdinaryDiffEqLowStorageRK.NDBLSRK124"><code>OrdinaryDiffEqLowStorageRK.NDBLSRK124</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NDBLSRK124(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, five-stage low-storage method of Carpenter and Kennedy (free 3rd order Hermite interpolant). Fixed timestep only. Designed for hyperbolic PDEs (stability properties).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>@article{carpenter1994fourth, title={Fourth-order 2N-storage Runge-Kutta schemes}, author={Carpenter, Mark H and Kennedy, Christopher A}, year={1994} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L54-L78">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.NDBLSRK124" href="#OrdinaryDiffEqLowStorageRK.NDBLSRK124"><code>OrdinaryDiffEqLowStorageRK.NDBLSRK124</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NDBLSRK124(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 12-stage, fourth order low-storage method with optimized stability regions for advection-dominated problems. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>Jens Niegemann, Richard Diehl, Kurt Busch. Efficient Low-Storage Runge–Kutta Schemes with Optimized Stability Regions. Journal of Computational Physics, 231, pp 364-372, 2012. doi: https://doi.org/10.1016/j.jcp.2011.09.003</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L81-L103">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.NDBLSRK144" href="#OrdinaryDiffEqLowStorageRK.NDBLSRK144"><code>OrdinaryDiffEqLowStorageRK.NDBLSRK144</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NDBLSRK144(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 12-stage, fourth order low-storage method with optimized stability regions for advection-dominated problems. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>Jens Niegemann, Richard Diehl, Kurt Busch. Efficient Low-Storage Runge–Kutta Schemes with Optimized Stability Regions. Journal of Computational Physics, 231, pp 364-372, 2012. doi: https://doi.org/10.1016/j.jcp.2011.09.003</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L81-L103">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.NDBLSRK144" href="#OrdinaryDiffEqLowStorageRK.NDBLSRK144"><code>OrdinaryDiffEqLowStorageRK.NDBLSRK144</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NDBLSRK144(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 14-stage, fourth order low-storage method with optimized stability regions for advection-dominated problems. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>Jens Niegemann, Richard Diehl, Kurt Busch. Efficient Low-Storage Runge–Kutta Schemes with Optimized Stability Regions. Journal of Computational Physics, 231, pp 364-372, 2012. doi: https://doi.org/10.1016/j.jcp.2011.09.003</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L106-L128">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CFRLDDRK64" href="#OrdinaryDiffEqLowStorageRK.CFRLDDRK64"><code>OrdinaryDiffEqLowStorageRK.CFRLDDRK64</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CFRLDDRK64(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 14-stage, fourth order low-storage method with optimized stability regions for advection-dominated problems. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>Jens Niegemann, Richard Diehl, Kurt Busch. Efficient Low-Storage Runge–Kutta Schemes with Optimized Stability Regions. Journal of Computational Physics, 231, pp 364-372, 2012. doi: https://doi.org/10.1016/j.jcp.2011.09.003</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L106-L128">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CFRLDDRK64" href="#OrdinaryDiffEqLowStorageRK.CFRLDDRK64"><code>OrdinaryDiffEqLowStorageRK.CFRLDDRK64</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CFRLDDRK64(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 6-stage, fourth order low-storage, low-dissipation, low-dispersion scheme. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>M. Calvo, J. M. Franco, L. Randez. A New Minimum Storage Runge–Kutta Scheme for Computational Acoustics. Journal of Computational Physics, 201, pp 1-12, 2004. doi: https://doi.org/10.1016/j.jcp.2004.05.012</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L131-L151">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.TSLDDRK74" href="#OrdinaryDiffEqLowStorageRK.TSLDDRK74"><code>OrdinaryDiffEqLowStorageRK.TSLDDRK74</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TSLDDRK74(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 6-stage, fourth order low-storage, low-dissipation, low-dispersion scheme. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>M. Calvo, J. M. Franco, L. Randez. A New Minimum Storage Runge–Kutta Scheme for Computational Acoustics. Journal of Computational Physics, 201, pp 1-12, 2004. doi: https://doi.org/10.1016/j.jcp.2004.05.012</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L131-L151">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.TSLDDRK74" href="#OrdinaryDiffEqLowStorageRK.TSLDDRK74"><code>OrdinaryDiffEqLowStorageRK.TSLDDRK74</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TSLDDRK74(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 7-stage, fourth order low-storage low-dissipation, low-dispersion scheme with maximal accuracy and stability limit along the imaginary axes. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Kostas Tselios, T. E. Simos. Optimized Runge–Kutta Methods with Minimal Dispersion and Dissipation for Problems arising from Computational Acoustics. Physics Letters A, 393(1-2), pp 38-47, 2007. doi: https://doi.org/10.1016/j.physleta.2006.10.072</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L149-L169">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.DGLDDRK84_C" href="#OrdinaryDiffEqLowStorageRK.DGLDDRK84_C"><code>OrdinaryDiffEqLowStorageRK.DGLDDRK84_C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DGLDDRK84_C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 7-stage, fourth order low-storage low-dissipation, low-dispersion scheme with maximal accuracy and stability limit along the imaginary axes. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Kostas Tselios, T. E. Simos. Optimized Runge–Kutta Methods with Minimal Dispersion and Dissipation for Problems arising from Computational Acoustics. Physics Letters A, 393(1-2), pp 38-47, 2007. doi: https://doi.org/10.1016/j.physleta.2006.10.072</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L149-L169">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.DGLDDRK84_C" href="#OrdinaryDiffEqLowStorageRK.DGLDDRK84_C"><code>OrdinaryDiffEqLowStorageRK.DGLDDRK84_C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DGLDDRK84_C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 8-stage, fourth order low-storage low-dissipation, low-dispersion scheme for discontinuous Galerkin space discretizations applied to wave propagation problems. Optimized for PDE discretizations when maximum spatial step is small due to geometric features of computational domain. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>T. Toulorge, W. Desmet. Optimal Runge–Kutta Schemes for Discontinuous Galerkin Space Discretizations Applied to Wave Propagation Problems. Journal of Computational Physics, 231(4), pp 2067-2091, 2012. doi: https://doi.org/10.1016/j.jcp.2011.11.024</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L169-L194">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.DGLDDRK84_F" href="#OrdinaryDiffEqLowStorageRK.DGLDDRK84_F"><code>OrdinaryDiffEqLowStorageRK.DGLDDRK84_F</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DGLDDRK84_F(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 8-stage, fourth order low-storage low-dissipation, low-dispersion scheme for discontinuous Galerkin space discretizations applied to wave propagation problems. Optimized for PDE discretizations when maximum spatial step is small due to geometric features of computational domain. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>T. Toulorge, W. Desmet. Optimal Runge–Kutta Schemes for Discontinuous Galerkin Space Discretizations Applied to Wave Propagation Problems. Journal of Computational Physics, 231(4), pp 2067-2091, 2012. doi: https://doi.org/10.1016/j.jcp.2011.11.024</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L169-L194">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.DGLDDRK84_F" href="#OrdinaryDiffEqLowStorageRK.DGLDDRK84_F"><code>OrdinaryDiffEqLowStorageRK.DGLDDRK84_F</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DGLDDRK84_F(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 8-stage, fourth order low-storage low-dissipation, low-dispersion scheme for discontinuous Galerkin space discretizations applied to wave propagation problems. Optimized for PDE discretizations when the maximum spatial step size is not constrained. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>T. Toulorge, W. Desmet. Optimal Runge–Kutta Schemes for Discontinuous Galerkin Space Discretizations Applied to Wave Propagation Problems. Journal of Computational Physics, 231(4), pp 2067-2091, 2012. doi: https://doi.org/10.1016/j.jcp.2011.11.024</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L198-L223">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.SHLDDRK64" href="#OrdinaryDiffEqLowStorageRK.SHLDDRK64"><code>OrdinaryDiffEqLowStorageRK.SHLDDRK64</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SHLDDRK64(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 8-stage, fourth order low-storage low-dissipation, low-dispersion scheme for discontinuous Galerkin space discretizations applied to wave propagation problems. Optimized for PDE discretizations when the maximum spatial step size is not constrained. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>T. Toulorge, W. Desmet. Optimal Runge–Kutta Schemes for Discontinuous Galerkin Space Discretizations Applied to Wave Propagation Problems. Journal of Computational Physics, 231(4), pp 2067-2091, 2012. doi: https://doi.org/10.1016/j.jcp.2011.11.024</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L198-L223">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.SHLDDRK64" href="#OrdinaryDiffEqLowStorageRK.SHLDDRK64"><code>OrdinaryDiffEqLowStorageRK.SHLDDRK64</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SHLDDRK64(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, six-stage low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>D. Stanescu, W. G. Habashi. 2N-Storage Low Dissipation and Dispersion Runge-Kutta Schemes for Computational Acoustics. Journal of Computational Physics, 143(2), pp 674-681, 1998. doi: https://doi.org/10.1006/jcph.1998.5986 }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L227-L250">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RK46NL" href="#OrdinaryDiffEqLowStorageRK.RK46NL"><code>OrdinaryDiffEqLowStorageRK.RK46NL</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RK46NL(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, six-stage low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>D. Stanescu, W. G. Habashi. 2N-Storage Low Dissipation and Dispersion Runge-Kutta Schemes for Computational Acoustics. Journal of Computational Physics, 143(2), pp 674-681, 1998. doi: https://doi.org/10.1006/jcph.1998.5986 }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L227-L250">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RK46NL" href="#OrdinaryDiffEqLowStorageRK.RK46NL"><code>OrdinaryDiffEqLowStorageRK.RK46NL</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RK46NL(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6-stage, fourth order low-stage, low-dissipation, low-dispersion scheme. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>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</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L252-L269">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S32" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S32"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S32(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6-stage, fourth order low-stage, low-dissipation, low-dispersion scheme. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>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</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L252-L269">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S32" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S32"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S32(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 3-stage, second order (3S) low-storage scheme, optimized the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L266-L286">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S82" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S82"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S82</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S82(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 3-stage, second order (3S) low-storage scheme, optimized the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L266-L286">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S82" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S82"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S82</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S82(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, second order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L288-L308">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S53" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S53"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S53</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S53(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, second order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L288-L308">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S53" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S53"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S53</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S53(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, third order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L310-L330">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S173" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S173"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S173</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S173(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, third order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L310-L330">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S173" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S173"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S173</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S173(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 17-stage, third order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L332-L352">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S94" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S94"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S94</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S94(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 17-stage, third order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L332-L352">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S94" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S94"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S94</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S94(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fourth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L354-L374">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S184" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S184"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S184</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S184(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fourth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L354-L374">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S184" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S184"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S184</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S184(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 18-stage, fourth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L376-L396">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S105" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S105"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S105</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S105(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 18-stage, fourth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L376-L396">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S105" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S105"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S105</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S105(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 10-stage, fifth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L398-L418">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S205" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S205"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S205</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S205(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 10-stage, fifth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L398-L418">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S205" href="#OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S205"><code>OrdinaryDiffEqLowStorageRK.ParsaniKetchesonDeconinck3S205</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ParsaniKetchesonDeconinck3S205(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 20-stage, fifth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L420-L440">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK43_2" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK43_2"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK43_2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK43_2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 20-stage, fifth order (3S) low-storage scheme, optimized for the spectral difference method applied to wave propagation problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Parsani, Matteo, David I. Ketcheson, and W. Deconinck. Optimized explicit Runge–Kutta schemes for the spectral difference method applied to wave propagation problems. SIAM Journal on Scientific Computing 35.2 (2013): A957-A986. doi: https://doi.org/10.1137/120885899</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L420-L440">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK43_2" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK43_2"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK43_2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK43_2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 4-stage, third order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L442-L468">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 4-stage, third order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L442-L468">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L468-L494">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK95_4S" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK95_4S"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK95_4S</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK95_4S(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L468-L494">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK95_4S" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK95_4S"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK95_4S</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK95_4S(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L494-L520">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK95_4C" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK95_4C"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK95_4C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK95_4C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L494-L520">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK95_4C" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK95_4C"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK95_4C</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK95_4C(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L520-L546">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK95_4M" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK95_4M"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK95_4M</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK95_4M(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L520-L546">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK95_4M" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK95_4M"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK95_4M</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK95_4M(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L546-L572">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3C_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 9-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L546-L572">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3C_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3C_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L572-L598">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3M_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L572-L598">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3M_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L598-L624">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3N_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L598-L624">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3N_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L624-L650">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4C_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4C_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4C_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4C_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L624-L650">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4C_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4C_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4C_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4C_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L650-L676">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4M_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4M_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4M_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4M_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L650-L676">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4M_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4M_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4M_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4M_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L676-L702">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4P_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4P_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4P_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4P_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L676-L702">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4P_3R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4P_3R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4P_3R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4P_3R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L702-L728">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3N_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L702-L728">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3N_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3N_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L728-L754">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3M_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L728-L754">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK54_3M_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK54_3M_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L754-L780">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK65_4M_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK65_4M_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK65_4M_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK65_4M_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 5-stage, fourth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L754-L780">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK65_4M_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK65_4M_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK65_4M_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK65_4M_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L780-L804">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4FM_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4FM_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4FM_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4FM_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. 6-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L780-L804">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK85_4FM_4R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK85_4FM_4R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK85_4FM_4R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK85_4FM_4R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L805-L830">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK75_4M_5R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK75_4M_5R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK75_4M_5R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK75_4M_5R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 8-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L805-L830">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.CKLLSRK75_4M_5R" href="#OrdinaryDiffEqLowStorageRK.CKLLSRK75_4M_5R"><code>OrdinaryDiffEqLowStorageRK.CKLLSRK75_4M_5R</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CKLLSRK75_4M_5R(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. CKLLSRK75<em>4M</em>5R: Low-Storage Method 7-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L831-L856">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3Sp35" href="#OrdinaryDiffEqLowStorageRK.RDPK3Sp35"><code>OrdinaryDiffEqLowStorageRK.RDPK3Sp35</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3Sp35(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. CKLLSRK75<em>4M</em>5R: Low-Storage Method 7-stage, fifth order low-storage scheme, optimized for compressible Navier–Stokes equations.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kennedy2000low, title={Low-storage, explicit Runge–Kutta schemes for the compressible Navier–Stokes equations}, author={Kennedy, Christopher A and Carpenter, Mark H and Lewis, R Michael}, journal={Applied numerical mathematics}, volume={35}, number={3}, pages={177–219}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L831-L856">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3Sp35" href="#OrdinaryDiffEqLowStorageRK.RDPK3Sp35"><code>OrdinaryDiffEqLowStorageRK.RDPK3Sp35</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3Sp35(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage method with embedded error estimator designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L857-L877">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL35" href="#OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL35"><code>OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL35</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3SpFSAL35(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage method with embedded error estimator designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L857-L877">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL35" href="#OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL35"><code>OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL35</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3SpFSAL35(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage method with embedded error estimator using the FSAL property designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L877-L898">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3Sp49" href="#OrdinaryDiffEqLowStorageRK.RDPK3Sp49"><code>OrdinaryDiffEqLowStorageRK.RDPK3Sp49</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3Sp49(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage method with embedded error estimator using the FSAL property designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L877-L898">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3Sp49" href="#OrdinaryDiffEqLowStorageRK.RDPK3Sp49"><code>OrdinaryDiffEqLowStorageRK.RDPK3Sp49</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3Sp49(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, nine-stage method with embedded error estimator designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L899-L919">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49" href="#OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49"><code>OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3SpFSAL49(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, nine-stage method with embedded error estimator designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L899-L919">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49" href="#OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49"><code>OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL49</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3SpFSAL49(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, nine-stage method with embedded error estimator using the FSAL property designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L919-L940">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3Sp510" href="#OrdinaryDiffEqLowStorageRK.RDPK3Sp510"><code>OrdinaryDiffEqLowStorageRK.RDPK3Sp510</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3Sp510(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, nine-stage method with embedded error estimator using the FSAL property designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L919-L940">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3Sp510" href="#OrdinaryDiffEqLowStorageRK.RDPK3Sp510"><code>OrdinaryDiffEqLowStorageRK.RDPK3Sp510</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3Sp510(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fifth-order, ten-stage method with embedded error estimator designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L941-L961">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL510" href="#OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL510"><code>OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL510</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3SpFSAL510(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fifth-order, ten-stage method with embedded error estimator designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L941-L961">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL510" href="#OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL510"><code>OrdinaryDiffEqLowStorageRK.RDPK3SpFSAL510</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RDPK3SpFSAL510(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fifth-order, ten-stage method with embedded error estimator using the FSAL property designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L961-L982">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.HSLDDRK64" href="#OrdinaryDiffEqLowStorageRK.HSLDDRK64"><code>OrdinaryDiffEqLowStorageRK.HSLDDRK64</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">HSLDDRK64(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fifth-order, ten-stage method with embedded error estimator using the FSAL property designed for spectral element discretizations of compressible fluid mechanics.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ranocha, Dalcin, Parsani, Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L961-L982">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.HSLDDRK64" href="#OrdinaryDiffEqLowStorageRK.HSLDDRK64"><code>OrdinaryDiffEqLowStorageRK.HSLDDRK64</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">HSLDDRK64(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 6-stage, fourth order low-stage, low-dissipation, low-dispersion scheme. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>D. Stanescu, W. G. Habashi. 2N-Storage Low Dissipation and Dispersion Runge-Kutta Schemes for Computational Acoustics. Journal of Computational Physics, 143(2), pp 674-681, 1998. doi: https://doi.org/10.1006/jcph.1998.5986 }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L985-L1010">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.NDBLSRK134" href="#OrdinaryDiffEqLowStorageRK.NDBLSRK134"><code>OrdinaryDiffEqLowStorageRK.NDBLSRK134</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NDBLSRK134(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. Low-Storage Method 6-stage, fourth order low-stage, low-dissipation, low-dispersion scheme. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>D. Stanescu, W. G. Habashi. 2N-Storage Low Dissipation and Dispersion Runge-Kutta Schemes for Computational Acoustics. Journal of Computational Physics, 143(2), pp 674-681, 1998. doi: https://doi.org/10.1006/jcph.1998.5986 }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L985-L1010">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.NDBLSRK134" href="#OrdinaryDiffEqLowStorageRK.NDBLSRK134"><code>OrdinaryDiffEqLowStorageRK.NDBLSRK134</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NDBLSRK134(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 13-stage, fourth order low-storage method with optimized stability regions for advection-dominated problems. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>Jens Niegemann, Richard Diehl, Kurt Busch. Efficient Low-Storage Runge–Kutta Schemes with Optimized Stability Regions. Journal of Computational Physics, 231, pp 364-372, 2012. doi: https://doi.org/10.1016/j.jcp.2011.09.003</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1010-L1032">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.SHLDDRK_2N" href="#OrdinaryDiffEqLowStorageRK.SHLDDRK_2N"><code>OrdinaryDiffEqLowStorageRK.SHLDDRK_2N</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SHLDDRK_2N(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + williamson_condition = true)</code></pre><p>Explicit Runge-Kutta Method. 13-stage, fourth order low-storage method with optimized stability regions for advection-dominated problems. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>williamson_condition</code>: allows for an optimization that allows fusing broadcast expressions with the function call <code>f</code>. However, it only works for <code>Array</code> types.</li></ul><p><strong>References</strong></p><p>Jens Niegemann, Richard Diehl, Kurt Busch. Efficient Low-Storage Runge–Kutta Schemes with Optimized Stability Regions. Journal of Computational Physics, 231, pp 364-372, 2012. doi: https://doi.org/10.1016/j.jcp.2011.09.003</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1010-L1032">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.SHLDDRK_2N" href="#OrdinaryDiffEqLowStorageRK.SHLDDRK_2N"><code>OrdinaryDiffEqLowStorageRK.SHLDDRK_2N</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SHLDDRK_2N(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low dissipation and dispersion Runge-Kutta schemes for computational acoustics</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{stanescu19982n, title={2N-storage low dissipation and dispersion Runge-Kutta schemes for computational acoustics}, author={Stanescu, D and Habashi, WG}, journal={Journal of Computational Physics}, volume={143}, number={2}, pages={674–681}, year={1998}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1035-L1059">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.SHLDDRK52" href="#OrdinaryDiffEqLowStorageRK.SHLDDRK52"><code>OrdinaryDiffEqLowStorageRK.SHLDDRK52</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SHLDDRK52(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low dissipation and dispersion Runge-Kutta schemes for computational acoustics</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{stanescu19982n, title={2N-storage low dissipation and dispersion Runge-Kutta schemes for computational acoustics}, author={Stanescu, D and Habashi, WG}, journal={Journal of Computational Physics}, volume={143}, number={2}, pages={674–681}, year={1998}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1035-L1059">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLowStorageRK.SHLDDRK52" href="#OrdinaryDiffEqLowStorageRK.SHLDDRK52"><code>OrdinaryDiffEqLowStorageRK.SHLDDRK52</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SHLDDRK52(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low dissipation and dispersion Runge-Kutta schemes for computational acoustics</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{stanescu19982n, title={2N-storage low dissipation and dispersion Runge-Kutta schemes for computational acoustics}, author={Stanescu, D and Habashi, WG}, journal={Journal of Computational Physics}, volume={143}, number={2}, pages={674–681}, year={1998}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1059-L1083">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../AdamsBashforthMoulton/">« OrdinaryDiffEqAdamsBashforthMoulton</a><a class="docs-footer-nextpage" href="../SSPRK/">OrdinaryDiffEqSSPRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Low dissipation and dispersion Runge-Kutta schemes for computational acoustics</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{stanescu19982n, title={2N-storage low dissipation and dispersion Runge-Kutta schemes for computational acoustics}, author={Stanescu, D and Habashi, WG}, journal={Journal of Computational Physics}, volume={143}, number={2}, pages={674–681}, year={1998}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl#L1059-L1083">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../AdamsBashforthMoulton/">« OrdinaryDiffEqAdamsBashforthMoulton</a><a class="docs-footer-nextpage" href="../SSPRK/">OrdinaryDiffEqSSPRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/PRK/index.html b/dev/explicit/PRK/index.html index abea760f71..b197ac759d 100644 --- a/dev/explicit/PRK/index.html +++ b/dev/explicit/PRK/index.html @@ -14,4 +14,4 @@ u0 = [1.0; 0.0; 0.0] tspan = (0.0, 100.0) prob = ODEProblem(lorenz!, u0, tspan) -sol = solve(prob, KuttaPRK2p5())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqPRK.KuttaPRK2p5" href="#OrdinaryDiffEqPRK.KuttaPRK2p5"><code>OrdinaryDiffEqPRK.KuttaPRK2p5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KuttaPRK2p5(; thread = OrdinaryDiffEq.True())</code></pre><p>Explicit Runge-Kutta Method A 5 parallel, 2 processor method of 5th order.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{jackson1995potential, title={The potential for parallelism in Runge–Kutta methods. Part 1: RK formulas in standard form}, author={Jackson, Kenneth R and Norsett, Syvert Paul}, journal={SIAM journal on numerical analysis}, volume={32}, number={1}, pages={49–82}, year={1995}, publisher={SIAM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqPRK/src/algorithms.jl#L1-L20">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Feagin/">« OrdinaryDiffEqFeagin</a><a class="docs-footer-nextpage" href="../QPRK/">OrdinaryDiffEqQPRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, KuttaPRK2p5())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqPRK.KuttaPRK2p5" href="#OrdinaryDiffEqPRK.KuttaPRK2p5"><code>OrdinaryDiffEqPRK.KuttaPRK2p5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KuttaPRK2p5(; thread = OrdinaryDiffEq.True())</code></pre><p>Explicit Runge-Kutta Method A 5 parallel, 2 processor method of 5th order.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{jackson1995potential, title={The potential for parallelism in Runge–Kutta methods. Part 1: RK formulas in standard form}, author={Jackson, Kenneth R and Norsett, Syvert Paul}, journal={SIAM journal on numerical analysis}, volume={32}, number={1}, pages={49–82}, year={1995}, publisher={SIAM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqPRK/src/algorithms.jl#L1-L20">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Feagin/">« OrdinaryDiffEqFeagin</a><a class="docs-footer-nextpage" href="../QPRK/">OrdinaryDiffEqQPRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/QPRK/index.html b/dev/explicit/QPRK/index.html index 0d3cf861fa..ca498953d1 100644 --- a/dev/explicit/QPRK/index.html +++ b/dev/explicit/QPRK/index.html @@ -16,4 +16,4 @@ prob = ODEProblem(lorenz!, u0, tspan) sol = solve(prob, QPRK98())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqQPRK.QPRK98" href="#OrdinaryDiffEqQPRK.QPRK98"><code>OrdinaryDiffEqQPRK.QPRK98</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QPRK98(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Runge–Kutta pairs of orders 9(8) for use in quadruple precision computations</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Kovalnogov VN, Fedorov RV, Karpukhina TV, Simos TE, Tsitouras C. Runge–Kutta pairs of orders 9 (8) for use in quadruple precision computations. Numerical Algorithms, 2023. doi: https://doi.org/10.1007/s11075-023-01632-8</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqQPRK/src/algorithms.jl#L1-L19">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../PRK/">« OrdinaryDiffEqPRK</a><a class="docs-footer-nextpage" href="../Extrapolation/">OrdinaryDiffEqExtrapolation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Runge–Kutta pairs of orders 9(8) for use in quadruple precision computations</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Kovalnogov VN, Fedorov RV, Karpukhina TV, Simos TE, Tsitouras C. Runge–Kutta pairs of orders 9 (8) for use in quadruple precision computations. Numerical Algorithms, 2023. doi: https://doi.org/10.1007/s11075-023-01632-8</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqQPRK/src/algorithms.jl#L1-L19">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../PRK/">« OrdinaryDiffEqPRK</a><a class="docs-footer-nextpage" href="../Extrapolation/">OrdinaryDiffEqExtrapolation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/SSPRK/index.html b/dev/explicit/SSPRK/index.html index 28a85c5fc4..74e918e065 100644 --- a/dev/explicit/SSPRK/index.html +++ b/dev/explicit/SSPRK/index.html @@ -16,38 +16,38 @@ prob = ODEProblem(lorenz!, u0, tspan) sol = solve(prob, SSPRK22())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK22" href="#OrdinaryDiffEqSSPRK.SSPRK22"><code>OrdinaryDiffEqSSPRK.SSPRK22</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK22(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A second-order, two-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang, and Stanley Osher. Efficient implementation of essentially non-oscillatory shock-capturing schemes. Journal of Computational Physics 77.2 (1988): 439-471. https://doi.org/10.1016/0021-9991(88)90177-5</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L20-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK33" href="#OrdinaryDiffEqSSPRK.SSPRK33"><code>OrdinaryDiffEqSSPRK.SSPRK33</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK33(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A second-order, two-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang, and Stanley Osher. Efficient implementation of essentially non-oscillatory shock-capturing schemes. Journal of Computational Physics 77.2 (1988): 439-471. https://doi.org/10.1016/0021-9991(88)90177-5</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L20-L40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK33" href="#OrdinaryDiffEqSSPRK.SSPRK33"><code>OrdinaryDiffEqSSPRK.SSPRK33</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK33(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, three-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang, and Stanley Osher. Efficient implementation of essentially non-oscillatory shock-capturing schemes. Journal of Computational Physics 77.2 (1988): 439-471. https://doi.org/10.1016/0021-9991(88)90177-5</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L304-L324">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53" href="#OrdinaryDiffEqSSPRK.SSPRK53"><code>OrdinaryDiffEqSSPRK.SSPRK53</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, three-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang, and Stanley Osher. Efficient implementation of essentially non-oscillatory shock-capturing schemes. Journal of Computational Physics 77.2 (1988): 439-471. https://doi.org/10.1016/0021-9991(88)90177-5</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L304-L324">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53" href="#OrdinaryDiffEqSSPRK.SSPRK53"><code>OrdinaryDiffEqSSPRK.SSPRK53</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L39-L58">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.KYKSSPRK42" href="#OrdinaryDiffEqSSPRK.KYKSSPRK42"><code>OrdinaryDiffEqSSPRK.KYKSSPRK42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KYKSSPRK42(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L39-L58">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.KYKSSPRK42" href="#OrdinaryDiffEqSSPRK.KYKSSPRK42"><code>OrdinaryDiffEqSSPRK.KYKSSPRK42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KYKSSPRK42(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Optimal strong-stability-preserving Runge-Kutta time discretizations for discontinuous Galerkin methods</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kubatko2014optimal, title={Optimal strong-stability-preserving Runge–Kutta time discretizations for discontinuous Galerkin methods}, author={Kubatko, Ethan J and Yeager, Benjamin A and Ketcheson, David I}, journal={Journal of Scientific Computing}, volume={60}, pages={313–344}, year={2014}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L323-L346">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.KYK2014DGSSPRK_3S2" href="#OrdinaryDiffEqSSPRK.KYK2014DGSSPRK_3S2"><code>OrdinaryDiffEqSSPRK.KYK2014DGSSPRK_3S2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KYK2014DGSSPRK_3S2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Optimal strong-stability-preserving Runge-Kutta time discretizations for discontinuous Galerkin methods</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kubatko2014optimal, title={Optimal strong-stability-preserving Runge–Kutta time discretizations for discontinuous Galerkin methods}, author={Kubatko, Ethan J and Yeager, Benjamin A and Ketcheson, David I}, journal={Journal of Scientific Computing}, volume={60}, pages={313–344}, year={2014}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L323-L346">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.KYK2014DGSSPRK_3S2" href="#OrdinaryDiffEqSSPRK.KYK2014DGSSPRK_3S2"><code>OrdinaryDiffEqSSPRK.KYK2014DGSSPRK_3S2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KYK2014DGSSPRK_3S2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Optimal strong-stability-preserving Runge-Kutta time discretizations for discontinuous Galerkin methods</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kubatko2014optimal, title={Optimal strong-stability-preserving Runge–Kutta time discretizations for discontinuous Galerkin methods}, author={Kubatko, Ethan J and Yeager, Benjamin A and Ketcheson, David I}, journal={Journal of Scientific Computing}, volume={60}, pages={313–344}, year={2014}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L346-L369">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53_2N1" href="#OrdinaryDiffEqSSPRK.SSPRK53_2N1"><code>OrdinaryDiffEqSSPRK.SSPRK53_2N1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53_2N1(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. Optimal strong-stability-preserving Runge-Kutta time discretizations for discontinuous Galerkin methods</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@article{kubatko2014optimal, title={Optimal strong-stability-preserving Runge–Kutta time discretizations for discontinuous Galerkin methods}, author={Kubatko, Ethan J and Yeager, Benjamin A and Ketcheson, David I}, journal={Journal of Scientific Computing}, volume={60}, pages={313–344}, year={2014}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L346-L369">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53_2N1" href="#OrdinaryDiffEqSSPRK.SSPRK53_2N1"><code>OrdinaryDiffEqSSPRK.SSPRK53_2N1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53_2N1(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Higueras and T. Roldán. New third order low-storage SSP explicit Runge–Kutta methods arXiv:1809.04807v1.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L187-L206">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53_2N2" href="#OrdinaryDiffEqSSPRK.SSPRK53_2N2"><code>OrdinaryDiffEqSSPRK.SSPRK53_2N2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53_2N2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Higueras and T. Roldán. New third order low-storage SSP explicit Runge–Kutta methods arXiv:1809.04807v1.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L187-L206">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53_2N2" href="#OrdinaryDiffEqSSPRK.SSPRK53_2N2"><code>OrdinaryDiffEqSSPRK.SSPRK53_2N2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53_2N2(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Higueras and T. Roldán. New third order low-storage SSP explicit Runge–Kutta methods arXiv:1809.04807v1.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L1-L20">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53_H" href="#OrdinaryDiffEqSSPRK.SSPRK53_H"><code>OrdinaryDiffEqSSPRK.SSPRK53_H</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53_H(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Higueras and T. Roldán. New third order low-storage SSP explicit Runge–Kutta methods arXiv:1809.04807v1.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L1-L20">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK53_H" href="#OrdinaryDiffEqSSPRK.SSPRK53_H"><code>OrdinaryDiffEqSSPRK.SSPRK53_H</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK53_H(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Higueras and T. Roldán. New third order low-storage SSP explicit Runge–Kutta methods arXiv:1809.04807v1.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L286-L305">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK63" href="#OrdinaryDiffEqSSPRK.SSPRK63"><code>OrdinaryDiffEqSSPRK.SSPRK63</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK63(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Higueras and T. Roldán. New third order low-storage SSP explicit Runge–Kutta methods arXiv:1809.04807v1.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L286-L305">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK63" href="#OrdinaryDiffEqSSPRK.SSPRK63"><code>OrdinaryDiffEqSSPRK.SSPRK63</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK63(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, six-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L57-L76">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK73" href="#OrdinaryDiffEqSSPRK.SSPRK73"><code>OrdinaryDiffEqSSPRK.SSPRK73</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK73(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, six-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L57-L76">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK73" href="#OrdinaryDiffEqSSPRK.SSPRK73"><code>OrdinaryDiffEqSSPRK.SSPRK73</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK73(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, seven-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L268-L287">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK83" href="#OrdinaryDiffEqSSPRK.SSPRK83"><code>OrdinaryDiffEqSSPRK.SSPRK83</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK83(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, seven-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L268-L287">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK83" href="#OrdinaryDiffEqSSPRK.SSPRK83"><code>OrdinaryDiffEqSSPRK.SSPRK83</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK83(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, eight-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L75-L94">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK43" href="#OrdinaryDiffEqSSPRK.SSPRK43"><code>OrdinaryDiffEqSSPRK.SSPRK43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK43(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, eight-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L75-L94">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK43" href="#OrdinaryDiffEqSSPRK.SSPRK43"><code>OrdinaryDiffEqSSPRK.SSPRK43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK43(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-stage explicit strong stability preserving (SSP) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Optimal third-order explicit SSP method with four stages discovered by</p><ul><li>J. F. B. M. Kraaijevanger. "Contractivity of Runge-Kutta methods." In: BIT Numerical Mathematics 31.3 (1991), pp. 482–528. <a href="https://doi.org/10.1007/BF01933264">DOI: 10.1007/BF01933264</a>.</li></ul><p>Embedded method constructed by</p><ul><li>Sidafa Conde, Imre Fekete, John N. Shadid. "Embedded error estimation and adaptive step-size control for optimal explicit strong stability preserving Runge–Kutta methods." <a href="https://arXiv.org/abs/1806.08693">arXiv: 1806.08693</a></li></ul><p>Efficient implementation (and optimized controller) developed by</p><ul><li>Hendrik Ranocha, Lisandro Dalcin, Matteo Parsani, David I. Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L93-L128">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK432" href="#OrdinaryDiffEqSSPRK.SSPRK432"><code>OrdinaryDiffEqSSPRK.SSPRK432</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK432(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-stage explicit strong stability preserving (SSP) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Optimal third-order explicit SSP method with four stages discovered by</p><ul><li>J. F. B. M. Kraaijevanger. "Contractivity of Runge-Kutta methods." In: BIT Numerical Mathematics 31.3 (1991), pp. 482–528. <a href="https://doi.org/10.1007/BF01933264">DOI: 10.1007/BF01933264</a>.</li></ul><p>Embedded method constructed by</p><ul><li>Sidafa Conde, Imre Fekete, John N. Shadid. "Embedded error estimation and adaptive step-size control for optimal explicit strong stability preserving Runge–Kutta methods." <a href="https://arXiv.org/abs/1806.08693">arXiv: 1806.08693</a></li></ul><p>Efficient implementation (and optimized controller) developed by</p><ul><li>Hendrik Ranocha, Lisandro Dalcin, Matteo Parsani, David I. Ketcheson (2021) Optimized Runge-Kutta Methods with Automatic Step Size Control for Compressible Computational Fluid Dynamics <a href="https://arxiv.org/abs/2104.06836">arXiv:2104.06836</a></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L93-L128">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK432" href="#OrdinaryDiffEqSSPRK.SSPRK432"><code>OrdinaryDiffEqSSPRK.SSPRK432</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK432(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-stage explicit strong stability preserving (SSP) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Gottlieb, Sigal, David I. Ketcheson, and Chi-Wang Shu. Strong stability preserving Runge-Kutta and multistep time discretizations. World Scientific, 2011. Example 6.1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L128-L147">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRKMSVS43" href="#OrdinaryDiffEqSSPRK.SSPRKMSVS43"><code>OrdinaryDiffEqSSPRK.SSPRKMSVS43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRKMSVS43(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-stage explicit strong stability preserving (SSP) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Gottlieb, Sigal, David I. Ketcheson, and Chi-Wang Shu. Strong stability preserving Runge-Kutta and multistep time discretizations. World Scientific, 2011. Example 6.1</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L128-L147">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRKMSVS43" href="#OrdinaryDiffEqSSPRK.SSPRKMSVS43"><code>OrdinaryDiffEqSSPRK.SSPRKMSVS43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRKMSVS43(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-step explicit strong stability preserving (SSP) linear multistep method. This method does not come with an error estimator and requires a fixed time step size.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang. Total-variation-diminishing time discretizations. SIAM Journal on Scientific and Statistical Computing 9, no. 6 (1988): 1073-1084. <a href="https://doi.org/10.1137/0909073">DOI: 10.1137/0909073</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L246-L267">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRKMSVS32" href="#OrdinaryDiffEqSSPRK.SSPRKMSVS32"><code>OrdinaryDiffEqSSPRK.SSPRKMSVS32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRKMSVS32(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, four-step explicit strong stability preserving (SSP) linear multistep method. This method does not come with an error estimator and requires a fixed time step size.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang. Total-variation-diminishing time discretizations. SIAM Journal on Scientific and Statistical Computing 9, no. 6 (1988): 1073-1084. <a href="https://doi.org/10.1137/0909073">DOI: 10.1137/0909073</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L246-L267">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRKMSVS32" href="#OrdinaryDiffEqSSPRK.SSPRKMSVS32"><code>OrdinaryDiffEqSSPRK.SSPRKMSVS32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRKMSVS32(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A second-order, three-step explicit strong stability preserving (SSP) linear multistep method. This method does not come with an error estimator and requires a fixed time step size.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang. Total-variation-diminishing time discretizations. SIAM Journal on Scientific and Statistical Computing 9, no. 6 (1988): 1073-1084. <a href="https://doi.org/10.1137/0909073">DOI: 10.1137/0909073</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L147-L168">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK932" href="#OrdinaryDiffEqSSPRK.SSPRK932"><code>OrdinaryDiffEqSSPRK.SSPRK932</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK932(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A second-order, three-step explicit strong stability preserving (SSP) linear multistep method. This method does not come with an error estimator and requires a fixed time step size.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Shu, Chi-Wang. Total-variation-diminishing time discretizations. SIAM Journal on Scientific and Statistical Computing 9, no. 6 (1988): 1073-1084. <a href="https://doi.org/10.1137/0909073">DOI: 10.1137/0909073</a></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L147-L168">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK932" href="#OrdinaryDiffEqSSPRK.SSPRK932"><code>OrdinaryDiffEqSSPRK.SSPRK932</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK932(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, nine-stage explicit strong stability preserving (SSP) method.</p><p>Consider using <code>SSPRK43</code> instead, which uses the same main method and an improved embedded method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Gottlieb, Sigal, David I. Ketcheson, and Chi-Wang Shu. Strong stability preserving Runge-Kutta and multistep time discretizations. World Scientific, 2011.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L225-L246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK54" href="#OrdinaryDiffEqSSPRK.SSPRK54"><code>OrdinaryDiffEqSSPRK.SSPRK54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A third-order, nine-stage explicit strong stability preserving (SSP) method.</p><p>Consider using <code>SSPRK43</code> instead, which uses the same main method and an improved embedded method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Gottlieb, Sigal, David I. Ketcheson, and Chi-Wang Shu. Strong stability preserving Runge-Kutta and multistep time discretizations. World Scientific, 2011.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L225-L246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK54" href="#OrdinaryDiffEqSSPRK.SSPRK54"><code>OrdinaryDiffEqSSPRK.SSPRK54</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, five-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L169-L188">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK104" href="#OrdinaryDiffEqSSPRK.SSPRK104"><code>OrdinaryDiffEqSSPRK.SSPRK104</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK104(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, five-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ruuth, Steven. Global optimization of explicit strong-stability-preserving Runge-Kutta methods. Mathematics of Computation 75.253 (2006): 183-207.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L169-L188">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSSPRK.SSPRK104" href="#OrdinaryDiffEqSSPRK.SSPRK104"><code>OrdinaryDiffEqSSPRK.SSPRK104</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPRK104(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, ten-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ketcheson, David I. Highly efficient strong stability-preserving Runge–Kutta methods with low-storage implementations. SIAM Journal on Scientific Computing 30.4 (2008): 2113-2136.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L206-L226">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../LowStorageRK/">« OrdinaryDiffEqLowStorageRK</a><a class="docs-footer-nextpage" href="../LowOrderRK/">OrdinaryDiffEqLowOrderRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fourth-order, ten-stage explicit strong stability preserving (SSP) method. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>Ketcheson, David I. Highly efficient strong stability-preserving Runge–Kutta methods with low-storage implementations. SIAM Journal on Scientific Computing 30.4 (2008): 2113-2136.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl#L206-L226">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../LowStorageRK/">« OrdinaryDiffEqLowStorageRK</a><a class="docs-footer-nextpage" href="../LowOrderRK/">OrdinaryDiffEqLowOrderRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/Tsit5/index.html b/dev/explicit/Tsit5/index.html index 741cbaa21e..2b02e6b411 100644 --- a/dev/explicit/Tsit5/index.html +++ b/dev/explicit/Tsit5/index.html @@ -16,4 +16,4 @@ prob = ODEProblem(lorenz!, u0, tspan) sol = solve(prob, Tsit5())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqTsit5.Tsit5" href="#OrdinaryDiffEqTsit5.Tsit5"><code>OrdinaryDiffEqTsit5.Tsit5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Tsit5(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, - thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fifth-order explicit Runge-Kutta method with embedded error estimator of Tsitouras. Free 4th order interpolant.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqTsit5/src/algorithms.jl#L1-L27">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqTsit5.AutoTsit5" href="#OrdinaryDiffEqTsit5.AutoTsit5"><code>OrdinaryDiffEqTsit5.AutoTsit5</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Tsit5()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoTsit5(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Tsit5(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqTsit5/src/algorithms.jl#L27-L35">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../usage/">« Usage</a><a class="docs-footer-nextpage" href="../Verner/">OrdinaryDiffEqVerner »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + thread = OrdinaryDiffEq.False())</code></pre><p>Explicit Runge-Kutta Method. A fifth-order explicit Runge-Kutta method with embedded error estimator of Tsitouras. Free 4th order interpolant.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqTsit5/src/algorithms.jl#L1-L27">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqTsit5.AutoTsit5" href="#OrdinaryDiffEqTsit5.AutoTsit5"><code>OrdinaryDiffEqTsit5.AutoTsit5</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Tsit5()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoTsit5(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Tsit5(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqTsit5/src/algorithms.jl#L27-L35">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../usage/">« Usage</a><a class="docs-footer-nextpage" href="../Verner/">OrdinaryDiffEqVerner »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/explicit/Verner/index.html b/dev/explicit/Verner/index.html index 9dd32bc1ef..9685429c10 100644 --- a/dev/explicit/Verner/index.html +++ b/dev/explicit/Verner/index.html @@ -17,13 +17,13 @@ sol = solve(prob, Vern6())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern6" href="#OrdinaryDiffEqVerner.Vern6"><code>OrdinaryDiffEqVerner.Vern6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern6(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 6/5 Runge-Kutta method. (lazy 6th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L1-L28">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern7" href="#OrdinaryDiffEqVerner.Vern7"><code>OrdinaryDiffEqVerner.Vern7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern7(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 6/5 Runge-Kutta method. (lazy 6th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L1-L28">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern7" href="#OrdinaryDiffEqVerner.Vern7"><code>OrdinaryDiffEqVerner.Vern7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern7(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 7/6 Runge-Kutta method. (lazy 7th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L30-L57">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern8" href="#OrdinaryDiffEqVerner.Vern8"><code>OrdinaryDiffEqVerner.Vern8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern8(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 7/6 Runge-Kutta method. (lazy 7th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L30-L57">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern8" href="#OrdinaryDiffEqVerner.Vern8"><code>OrdinaryDiffEqVerner.Vern8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern8(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 8/7 Runge-Kutta method. (lazy 8th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L59-L86">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern9" href="#OrdinaryDiffEqVerner.Vern9"><code>OrdinaryDiffEqVerner.Vern9</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern9(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, + lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 8/7 Runge-Kutta method. (lazy 8th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L59-L86">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.Vern9" href="#OrdinaryDiffEqVerner.Vern9"><code>OrdinaryDiffEqVerner.Vern9</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Vern9(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, thread = OrdinaryDiffEq.False(), - lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 9/8 Runge-Kutta method. (lazy9th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L88-L115">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern6" href="#OrdinaryDiffEqVerner.AutoVern6"><code>OrdinaryDiffEqVerner.AutoVern6</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern6()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern6(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern6(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L116-L124">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern7" href="#OrdinaryDiffEqVerner.AutoVern7"><code>OrdinaryDiffEqVerner.AutoVern7</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern7()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern7(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern7(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L126-L134">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern8" href="#OrdinaryDiffEqVerner.AutoVern8"><code>OrdinaryDiffEqVerner.AutoVern8</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern8()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern8(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern8(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L136-L144">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern9" href="#OrdinaryDiffEqVerner.AutoVern9"><code>OrdinaryDiffEqVerner.AutoVern9</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern9()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern9(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern9(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L146-L154">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Tsit5/">« OrdinaryDiffEqTsit5</a><a class="docs-footer-nextpage" href="../AdamsBashforthMoulton/">OrdinaryDiffEqAdamsBashforthMoulton »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + lazy = true)</code></pre><p>Explicit Runge-Kutta Method. Verner's “Most Efficient” 9/8 Runge-Kutta method. (lazy9th order interpolant).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>stage_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>lazy</code>: determines if the lazy interpolant is used.</li></ul><p><strong>References</strong></p><p>@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} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L88-L115">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern6" href="#OrdinaryDiffEqVerner.AutoVern6"><code>OrdinaryDiffEqVerner.AutoVern6</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern6()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern6(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern6(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L116-L124">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern7" href="#OrdinaryDiffEqVerner.AutoVern7"><code>OrdinaryDiffEqVerner.AutoVern7</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern7()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern7(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern7(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L126-L134">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern8" href="#OrdinaryDiffEqVerner.AutoVern8"><code>OrdinaryDiffEqVerner.AutoVern8</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern8()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern8(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern8(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L136-L144">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqVerner.AutoVern9" href="#OrdinaryDiffEqVerner.AutoVern9"><code>OrdinaryDiffEqVerner.AutoVern9</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>Automatic switching algorithm that can switch between the (non-stiff) <code>Vern9()</code> and <code>stiff_alg</code>.</p><pre><code class="nohighlight hljs">AutoVern9(stiff_alg; kwargs...)</code></pre><p>This method is equivalent to <code>AutoAlgSwitch(Vern9(), stiff_alg; kwargs...)</code>. To gain access to stiff algorithms you might have to install additional libraries, such as <code>OrdinaryDiffEqRosenbrock</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqVerner/src/algorithms.jl#L146-L154">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Tsit5/">« OrdinaryDiffEqTsit5</a><a class="docs-footer-nextpage" href="../AdamsBashforthMoulton/">OrdinaryDiffEqAdamsBashforthMoulton »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/fullyimplicitdae/BDF/index.html b/dev/fullyimplicitdae/BDF/index.html index 24dc5dbd78..da6e8422d3 100644 --- a/dev/fullyimplicitdae/BDF/index.html +++ b/dev/fullyimplicitdae/BDF/index.html @@ -15,7 +15,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :constant, - controller = :Standard)</code></pre><p>Multistep Method. Implicit Euler for implicit DAE form. It uses an apriori error estimator for adaptivity based on a finite differencing approximation from SPICE.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>DImplicitEuler(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L603-L681">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.DABDF2" href="#OrdinaryDiffEqBDF.DABDF2"><code>OrdinaryDiffEqBDF.DABDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DABDF2(; chunk_size = Val{0}(), + controller = :Standard)</code></pre><p>Multistep Method. Implicit Euler for implicit DAE form. It uses an apriori error estimator for adaptivity based on a finite differencing approximation from SPICE.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>DImplicitEuler(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L603-L681">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.DABDF2" href="#OrdinaryDiffEqBDF.DABDF2"><code>OrdinaryDiffEqBDF.DABDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DABDF2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -24,7 +24,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :constant, - controller = :Standard)</code></pre><p>Multistep Method. Fully implicit implementation of BDF2.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>DABDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{celaya2014implementation, title={Implementation of an Adaptive BDF2 Formula and Comparison with the MATLAB Ode15s}, author={Celaya, E Alberdi and Aguirrezabala, JJ Anza and Chatzipantelidis, Panagiotis}, journal={Procedia Computer Science}, volume={29}, pages={1014–1026}, year={2014}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L636-L720">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.DFBDF" href="#OrdinaryDiffEqBDF.DFBDF"><code>OrdinaryDiffEqBDF.DFBDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DFBDF(; chunk_size = Val{0}(), + controller = :Standard)</code></pre><p>Multistep Method. Fully implicit implementation of BDF2.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>DABDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{celaya2014implementation, title={Implementation of an Adaptive BDF2 Formula and Comparison with the MATLAB Ode15s}, author={Celaya, E Alberdi and Aguirrezabala, JJ Anza and Chatzipantelidis, Panagiotis}, journal={Procedia Computer Science}, volume={29}, pages={1014–1026}, year={2014}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L636-L720">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.DFBDF" href="#OrdinaryDiffEqBDF.DFBDF"><code>OrdinaryDiffEqBDF.DFBDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">DFBDF(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -36,4 +36,4 @@ nlsolve = NLNewton(), extrapolant = :linear, controller = :Standard, - max_order::Val{MO} = Val{5}())</code></pre><p>Multistep Method. Fully implicit implementation of FBDF based on Shampine's</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>DFBDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>max_order</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{shampine2002solving, title={Solving 0= F (t, y (t), y′(t)) in Matlab}, author={Shampine, Lawrence F}, year={2002}, publisher={Walter de Gruyter GmbH and Co. KG} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L688-L776">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../massmatrixdae/BDF/">« OrdinaryDiffEqBDF</a><a class="docs-footer-nextpage" href="../../misc/">- »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + max_order::Val{MO} = Val{5}())</code></pre><p>Multistep Method. Fully implicit implementation of FBDF based on Shampine's</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>DFBDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>max_order</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{shampine2002solving, title={Solving 0= F (t, y (t), y′(t)) in Matlab}, author={Shampine, Lawrence F}, year={2002}, publisher={Walter de Gruyter GmbH and Co. KG} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L688-L776">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../massmatrixdae/BDF/">« OrdinaryDiffEqBDF</a><a class="docs-footer-nextpage" href="../../misc/">- »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/imex/IMEXBDF/index.html b/dev/imex/IMEXBDF/index.html index 136f7ab79b..9f05891c4f 100644 --- a/dev/imex/IMEXBDF/index.html +++ b/dev/imex/IMEXBDF/index.html @@ -10,5 +10,5 @@ u0 = 1.0 tspan = (0.0, 1.0) prob = SplitODEProblem(f1, f2, u0, tspan) -sol = solve(prob, SBDF2(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><h3 id="IMEX-Multistep"><a class="docs-heading-anchor" href="#IMEX-Multistep">IMEX Multistep</a><a id="IMEX-Multistep-1"></a><a class="docs-heading-anchor-permalink" href="#IMEX-Multistep" title="Permalink"></a></h3><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>SBDF</code>. Check Documenter's build log for details.</p></div></div><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.SBDF2" href="#OrdinaryDiffEqBDF.SBDF2"><code>OrdinaryDiffEqBDF.SBDF2</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SBDF2(;kwargs...)</code></pre><p>The two-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>See also <code>SBDF</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L208-L220">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.SBDF3" href="#OrdinaryDiffEqBDF.SBDF3"><code>OrdinaryDiffEqBDF.SBDF3</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SBDF3(;kwargs...)</code></pre><p>The three-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>See also <code>SBDF</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L223-L235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.SBDF4" href="#OrdinaryDiffEqBDF.SBDF4"><code>OrdinaryDiffEqBDF.SBDF4</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SBDF4(;kwargs...)</code></pre><p>The four-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>See also <code>SBDF</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L238-L250">source</a></section></article><h3 id="IMEX-SDIRK"><a class="docs-heading-anchor" href="#IMEX-SDIRK">IMEX SDIRK</a><a id="IMEX-SDIRK-1"></a><a class="docs-heading-anchor-permalink" href="#IMEX-SDIRK" title="Permalink"></a></h3><p>Note that Implicit Euler is the 1st order BDF method, and is thus implemented here using the same machinery.</p><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.IMEXEuler" href="#OrdinaryDiffEqBDF.IMEXEuler"><code>OrdinaryDiffEqBDF.IMEXEuler</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IMEXEuler(;kwargs...)</code></pre><p>The one-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>When applied to a <code>SplitODEProblem</code> of the form</p><pre><code class="nohighlight hljs">u'(t) = f1(u) + f2(u)</code></pre><p>The default <code>IMEXEuler()</code> method uses an update of the form</p><pre><code class="nohighlight hljs">unew = uold + dt * (f1(unew) + f2(uold))</code></pre><p>See also <code>SBDF</code>, <code>IMEXEulerARK</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L546-L570">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.IMEXEulerARK" href="#OrdinaryDiffEqBDF.IMEXEulerARK"><code>OrdinaryDiffEqBDF.IMEXEulerARK</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IMEXEulerARK(;kwargs...)</code></pre><p>The one-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>When applied to a <code>SplitODEProblem</code> of the form</p><pre><code class="nohighlight hljs">u'(t) = f1(u) + f2(u)</code></pre><p>A classical additive Runge-Kutta method in the sense of <a href="https://doi.org/10.1137/S0036142995292128">Araújo, Murua, Sanz-Serna (1997)</a> consisting of the implicit and the explicit Euler method given by</p><pre><code class="nohighlight hljs">y1 = uold + dt * f1(y1) -unew = uold + dt * (f1(unew) + f2(y1))</code></pre><p>See also <code>SBDF</code>, <code>IMEXEuler</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L573-L600">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../StabilizedIRK/">« OrdinaryDiffEqStabilizedIRK</a><a class="docs-footer-nextpage" href="../../dynamicalodeexplicit/RKN/">OrdinaryDiffEqRKN »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, SBDF2(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><h3 id="IMEX-Multistep"><a class="docs-heading-anchor" href="#IMEX-Multistep">IMEX Multistep</a><a id="IMEX-Multistep-1"></a><a class="docs-heading-anchor-permalink" href="#IMEX-Multistep" title="Permalink"></a></h3><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>SBDF</code>. Check Documenter's build log for details.</p></div></div><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.SBDF2" href="#OrdinaryDiffEqBDF.SBDF2"><code>OrdinaryDiffEqBDF.SBDF2</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SBDF2(;kwargs...)</code></pre><p>The two-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>See also <code>SBDF</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L208-L220">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.SBDF3" href="#OrdinaryDiffEqBDF.SBDF3"><code>OrdinaryDiffEqBDF.SBDF3</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SBDF3(;kwargs...)</code></pre><p>The three-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>See also <code>SBDF</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L223-L235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.SBDF4" href="#OrdinaryDiffEqBDF.SBDF4"><code>OrdinaryDiffEqBDF.SBDF4</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SBDF4(;kwargs...)</code></pre><p>The four-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>See also <code>SBDF</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L238-L250">source</a></section></article><h3 id="IMEX-SDIRK"><a class="docs-heading-anchor" href="#IMEX-SDIRK">IMEX SDIRK</a><a id="IMEX-SDIRK-1"></a><a class="docs-heading-anchor-permalink" href="#IMEX-SDIRK" title="Permalink"></a></h3><p>Note that Implicit Euler is the 1st order BDF method, and is thus implemented here using the same machinery.</p><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.IMEXEuler" href="#OrdinaryDiffEqBDF.IMEXEuler"><code>OrdinaryDiffEqBDF.IMEXEuler</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IMEXEuler(;kwargs...)</code></pre><p>The one-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>When applied to a <code>SplitODEProblem</code> of the form</p><pre><code class="nohighlight hljs">u'(t) = f1(u) + f2(u)</code></pre><p>The default <code>IMEXEuler()</code> method uses an update of the form</p><pre><code class="nohighlight hljs">unew = uold + dt * (f1(unew) + f2(uold))</code></pre><p>See also <code>SBDF</code>, <code>IMEXEulerARK</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L546-L570">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.IMEXEulerARK" href="#OrdinaryDiffEqBDF.IMEXEulerARK"><code>OrdinaryDiffEqBDF.IMEXEulerARK</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IMEXEulerARK(;kwargs...)</code></pre><p>The one-step version of the IMEX multistep methods of</p><ul><li>Uri M. Ascher, Steven J. Ruuth, Brian T. R. Wetton. Implicit-Explicit Methods for Time-Dependent Partial Differential Equations. Society for Industrial and Applied Mathematics. Journal on Numerical Analysis, 32(3), pp 797-823, 1995. doi: <a href="https://doi.org/10.1137/0732037">https://doi.org/10.1137/0732037</a></li></ul><p>When applied to a <code>SplitODEProblem</code> of the form</p><pre><code class="nohighlight hljs">u'(t) = f1(u) + f2(u)</code></pre><p>A classical additive Runge-Kutta method in the sense of <a href="https://doi.org/10.1137/S0036142995292128">Araújo, Murua, Sanz-Serna (1997)</a> consisting of the implicit and the explicit Euler method given by</p><pre><code class="nohighlight hljs">y1 = uold + dt * f1(y1) +unew = uold + dt * (f1(unew) + f2(y1))</code></pre><p>See also <code>SBDF</code>, <code>IMEXEuler</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L573-L600">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../StabilizedIRK/">« OrdinaryDiffEqStabilizedIRK</a><a class="docs-footer-nextpage" href="../../dynamicalodeexplicit/RKN/">OrdinaryDiffEqRKN »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/imex/IMEXMultistep/index.html b/dev/imex/IMEXMultistep/index.html index cc96aa8870..80cbe19ccc 100644 --- a/dev/imex/IMEXMultistep/index.html +++ b/dev/imex/IMEXMultistep/index.html @@ -10,4 +10,4 @@ u0 = 1.0 tspan = (0.0, 1.0) prob = SplitODEProblem(f1, f2, u0, tspan) -sol = solve(prob, CNAB2(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqIMEXMultistep.CNAB2" href="#OrdinaryDiffEqIMEXMultistep.CNAB2"><code>OrdinaryDiffEqIMEXMultistep.CNAB2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CNAB2()</code></pre><p>IMEX Multistep method. Crank-Nicholson Adams-Bashforth 2.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{jorgenson2014unconditional, title={Unconditional stability of a Crank-Nicolson Adams-Bashforth 2 numerical method}, author={JORGENSON, ANDREW D}, journal={A (A- C)}, volume={1}, number={2}, pages={1}, year={2014}} @article{he2010numerical, title={Numerical implementation of the Crank–Nicolson/Adams–Bashforth scheme for the time-dependent Navier–Stokes equations}, author={He, Yinnian and Li, Jian}, journal={International journal for numerical methods in fluids}, volume={62}, number={6}, pages={647–659}, year={2010}, publisher={Wiley Online Library}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqIMEXMultistep/src/algorithms.jl#L3-L29">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqIMEXMultistep.CNLF2" href="#OrdinaryDiffEqIMEXMultistep.CNLF2"><code>OrdinaryDiffEqIMEXMultistep.CNLF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CNLF2()</code></pre><p>IMEX Multistep method. Crank-Nicholson Leapfrong 2.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{han2020second, title={A second order, linear, unconditionally stable, Crank–Nicolson–Leapfrog scheme for phase field models of two-phase incompressible flows}, author={Han, Daozhi and Jiang, Nan}, journal={Applied Mathematics Letters}, volume={108}, pages={106521}, year={2020}, publisher={Elsevier}} @article{jiang2015crank, title={A Crank–Nicolson Leapfrog stabilization: Unconditional stability and two applications}, author={Jiang, Nan and Kubacki, Michaela and Layton, William and Moraiti, Marina and Tran, Hoang}, journal={Journal of Computational and Applied Mathematics}, volume={281}, pages={263–276}, year={2015}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqIMEXMultistep/src/algorithms.jl#L44-L69">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../implicit/Nordsieck/">« OrdinaryDiffEqNordsieck</a><a class="docs-footer-nextpage" href="../StabilizedIRK/">OrdinaryDiffEqStabilizedIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, CNAB2(), dt = 1 / 10)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqIMEXMultistep.CNAB2" href="#OrdinaryDiffEqIMEXMultistep.CNAB2"><code>OrdinaryDiffEqIMEXMultistep.CNAB2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CNAB2()</code></pre><p>IMEX Multistep method. Crank-Nicholson Adams-Bashforth 2.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{jorgenson2014unconditional, title={Unconditional stability of a Crank-Nicolson Adams-Bashforth 2 numerical method}, author={JORGENSON, ANDREW D}, journal={A (A- C)}, volume={1}, number={2}, pages={1}, year={2014}} @article{he2010numerical, title={Numerical implementation of the Crank–Nicolson/Adams–Bashforth scheme for the time-dependent Navier–Stokes equations}, author={He, Yinnian and Li, Jian}, journal={International journal for numerical methods in fluids}, volume={62}, number={6}, pages={647–659}, year={2010}, publisher={Wiley Online Library}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqIMEXMultistep/src/algorithms.jl#L3-L29">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqIMEXMultistep.CNLF2" href="#OrdinaryDiffEqIMEXMultistep.CNLF2"><code>OrdinaryDiffEqIMEXMultistep.CNLF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CNLF2()</code></pre><p>IMEX Multistep method. Crank-Nicholson Leapfrong 2.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{han2020second, title={A second order, linear, unconditionally stable, Crank–Nicolson–Leapfrog scheme for phase field models of two-phase incompressible flows}, author={Han, Daozhi and Jiang, Nan}, journal={Applied Mathematics Letters}, volume={108}, pages={106521}, year={2020}, publisher={Elsevier}} @article{jiang2015crank, title={A Crank–Nicolson Leapfrog stabilization: Unconditional stability and two applications}, author={Jiang, Nan and Kubacki, Michaela and Layton, William and Moraiti, Marina and Tran, Hoang}, journal={Journal of Computational and Applied Mathematics}, volume={281}, pages={263–276}, year={2015}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqIMEXMultistep/src/algorithms.jl#L44-L69">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../implicit/Nordsieck/">« OrdinaryDiffEqNordsieck</a><a class="docs-footer-nextpage" href="../StabilizedIRK/">OrdinaryDiffEqStabilizedIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/imex/StabilizedIRK/index.html b/dev/imex/StabilizedIRK/index.html index 751c70fb72..c97e370156 100644 --- a/dev/imex/StabilizedIRK/index.html +++ b/dev/imex/StabilizedIRK/index.html @@ -12,4 +12,4 @@ u0 = randn(20, 1) tspan = (0.0, 1.0) prob = SplitODEProblem(f1, f2, u0, tspan) -sol = solve(prob, IRKC())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedIRK.IRKC" href="#OrdinaryDiffEqStabilizedIRK.IRKC"><code>OrdinaryDiffEqStabilizedIRK.IRKC</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IRKC(; eigen_est = nothing)</code></pre><p>Stabilized Implicit Runge Kutta method. Implicit Runge-Kutta-Chebyshev method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>REF TBD</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedIRK/src/algorithms.jl#L1-L15">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../IMEXMultistep/">« OrdinaryDiffEqIMEXMultistep</a><a class="docs-footer-nextpage" href="../IMEXBDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, IRKC())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedIRK.IRKC" href="#OrdinaryDiffEqStabilizedIRK.IRKC"><code>OrdinaryDiffEqStabilizedIRK.IRKC</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">IRKC(; eigen_est = nothing)</code></pre><p>Stabilized Implicit Runge Kutta method. Implicit Runge-Kutta-Chebyshev method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>REF TBD</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedIRK/src/algorithms.jl#L1-L15">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../IMEXMultistep/">« OrdinaryDiffEqIMEXMultistep</a><a class="docs-footer-nextpage" href="../IMEXBDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/implicit/BDF/index.html b/dev/implicit/BDF/index.html index de50dfce7e..eb01a08aa8 100644 --- a/dev/implicit/BDF/index.html +++ b/dev/implicit/BDF/index.html @@ -27,7 +27,7 @@ smooth_est = true, extrapolant = :linear, controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 L-stable fixed leading coefficient multistep BDF method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ABDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>E. Alberdi Celayaa, J. J. Anza Aguirrezabalab, P. Chatzipantelidisc. Implementation of an Adaptive BDF2 Formula and Comparison with The MATLAB Ode15s. Procedia Computer Science, 29, pp 1014-1026, 2014. doi: https://doi.org/10.1016/j.procs.2014.05.091</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L78-L166">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF" href="#OrdinaryDiffEqBDF.QNDF"><code>OrdinaryDiffEqBDF.QNDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 L-stable fixed leading coefficient multistep BDF method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ABDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>E. Alberdi Celayaa, J. J. Anza Aguirrezabalab, P. Chatzipantelidisc. Implementation of an Adaptive BDF2 Formula and Comparison with The MATLAB Ode15s. Procedia Computer Science, 29, pp 1014-1026, 2014. doi: https://doi.org/10.1016/j.procs.2014.05.091</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L78-L166">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF" href="#OrdinaryDiffEqBDF.QNDF"><code>OrdinaryDiffEqBDF.QNDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -40,7 +40,7 @@ extrapolant = :linear, kappa = promote(-0.1850, -1 // 9, -0.0823, -0.0415, 0), controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L364-L459">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF1" href="#OrdinaryDiffEqBDF.QNDF1"><code>OrdinaryDiffEqBDF.QNDF1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF1(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L364-L459">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF1" href="#OrdinaryDiffEqBDF.QNDF1"><code>OrdinaryDiffEqBDF.QNDF1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF1(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -51,7 +51,7 @@ extrapolant = :linear, kappa = -0.1850, controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 1 quasi-constant timestep L-stable numerical differentiation function (NDF) method. Optional parameter kappa defaults to Shampine's accuracy-optimal -0.1850.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF1(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L253-L344">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF2" href="#OrdinaryDiffEqBDF.QNDF2"><code>OrdinaryDiffEqBDF.QNDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 1 quasi-constant timestep L-stable numerical differentiation function (NDF) method. Optional parameter kappa defaults to Shampine's accuracy-optimal -0.1850.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF1(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L253-L344">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF2" href="#OrdinaryDiffEqBDF.QNDF2"><code>OrdinaryDiffEqBDF.QNDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -62,7 +62,7 @@ extrapolant = :linear, kappa = -1 // 9, controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 quasi-constant timestep L-stable numerical differentiation function (NDF) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L309-L399">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF" href="#OrdinaryDiffEqBDF.QBDF"><code>OrdinaryDiffEqBDF.QBDF</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF: Multistep Method</p><p>An alias of <code>QNDF</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L539-L543">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF1" href="#OrdinaryDiffEqBDF.QBDF1"><code>OrdinaryDiffEqBDF.QBDF1</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF1: Multistep Method</p><p>An alias of <code>QNDF1</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L525-L529">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF2" href="#OrdinaryDiffEqBDF.QBDF2"><code>OrdinaryDiffEqBDF.QBDF2</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF2: Multistep Method</p><p>An alias of <code>QNDF2</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L532-L536">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.MEBDF2" href="#OrdinaryDiffEqBDF.MEBDF2"><code>OrdinaryDiffEqBDF.MEBDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MEBDF2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 quasi-constant timestep L-stable numerical differentiation function (NDF) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L309-L399">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF" href="#OrdinaryDiffEqBDF.QBDF"><code>OrdinaryDiffEqBDF.QBDF</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF: Multistep Method</p><p>An alias of <code>QNDF</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L539-L543">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF1" href="#OrdinaryDiffEqBDF.QBDF1"><code>OrdinaryDiffEqBDF.QBDF1</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF1: Multistep Method</p><p>An alias of <code>QNDF1</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L525-L529">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF2" href="#OrdinaryDiffEqBDF.QBDF2"><code>OrdinaryDiffEqBDF.QBDF2</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF2: Multistep Method</p><p>An alias of <code>QNDF2</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L532-L536">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.MEBDF2" href="#OrdinaryDiffEqBDF.MEBDF2"><code>OrdinaryDiffEqBDF.MEBDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MEBDF2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -70,7 +70,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :constant)</code></pre><p>Multistep Method. The second order Modified Extended BDF method, which has improved stability properties over the standard BDF. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>MEBDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{cash2000modified, title={Modified extended backward differentiation formulae for the numerical solution of stiff initial value problems in ODEs and DAEs}, author={Cash, JR}, journal={Journal of Computational and Applied Mathematics}, volume={125}, number={1-2}, pages={117–130}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L428-L513">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.FBDF" href="#OrdinaryDiffEqBDF.FBDF"><code>OrdinaryDiffEqBDF.FBDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FBDF(; chunk_size = Val{0}(), + extrapolant = :constant)</code></pre><p>Multistep Method. The second order Modified Extended BDF method, which has improved stability properties over the standard BDF. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>MEBDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{cash2000modified, title={Modified extended backward differentiation formulae for the numerical solution of stiff initial value problems in ODEs and DAEs}, author={Cash, JR}, journal={Journal of Computational and Applied Mathematics}, volume={125}, number={1-2}, pages={117–130}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L428-L513">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.FBDF" href="#OrdinaryDiffEqBDF.FBDF"><code>OrdinaryDiffEqBDF.FBDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FBDF(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -83,4 +83,4 @@ extrapolant = :linear, controller = :Standard, step_limiter! = trivial_limiter!, - max_order::Val{MO} = Val{5}())</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Fixed leading coefficient BDF. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>FBDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>max_order</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{shampine2002solving, title={Solving 0= F (t, y (t), y′(t)) in Matlab}, author={Shampine, Lawrence F}, year={2002}, publisher={Walter de Gruyter GmbH \& Co. KG}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L468-L559">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../FIRK/">« OrdinaryDiffEqFIRK</a><a class="docs-footer-nextpage" href="../Extrapolation/">OrdinaryDiffEqExtrapolation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + max_order::Val{MO} = Val{5}())</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Fixed leading coefficient BDF. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>FBDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>max_order</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{shampine2002solving, title={Solving 0= F (t, y (t), y′(t)) in Matlab}, author={Shampine, Lawrence F}, year={2002}, publisher={Walter de Gruyter GmbH \& Co. KG}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L468-L559">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../FIRK/">« OrdinaryDiffEqFIRK</a><a class="docs-footer-nextpage" href="../Extrapolation/">OrdinaryDiffEqExtrapolation »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/implicit/Extrapolation/index.html b/dev/implicit/Extrapolation/index.html index cedaf73b2b..fefe597a03 100644 --- a/dev/implicit/Extrapolation/index.html +++ b/dev/implicit/Extrapolation/index.html @@ -25,7 +25,7 @@ min_order = 3, init_order = 5, thread = OrdinaryDiffEq.False(), - sequence = :harmonic)</code></pre><p>Parallelized Explicit Extrapolation Method. Extrapolation of implicit Euler method with Romberg sequence. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitEulerExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L38-L127">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ImplicitDeuflhardExtrapolation" href="#OrdinaryDiffEqExtrapolation.ImplicitDeuflhardExtrapolation"><code>OrdinaryDiffEqExtrapolation.ImplicitDeuflhardExtrapolation</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitDeuflhardExtrapolation(; chunk_size = Val{0}(), + sequence = :harmonic)</code></pre><p>Parallelized Explicit Extrapolation Method. Extrapolation of implicit Euler method with Romberg sequence. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitEulerExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L38-L127">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ImplicitDeuflhardExtrapolation" href="#OrdinaryDiffEqExtrapolation.ImplicitDeuflhardExtrapolation"><code>OrdinaryDiffEqExtrapolation.ImplicitDeuflhardExtrapolation</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitDeuflhardExtrapolation(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -36,7 +36,7 @@ min_order = 1, init_order = 5, thread = OrdinaryDiffEq.False(), - sequence = :harmonic)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitDeuflhardExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L180-L268">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ImplicitHairerWannerExtrapolation" href="#OrdinaryDiffEqExtrapolation.ImplicitHairerWannerExtrapolation"><code>OrdinaryDiffEqExtrapolation.ImplicitHairerWannerExtrapolation</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitHairerWannerExtrapolation(; chunk_size = Val{0}(), + sequence = :harmonic)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitDeuflhardExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L180-L268">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ImplicitHairerWannerExtrapolation" href="#OrdinaryDiffEqExtrapolation.ImplicitHairerWannerExtrapolation"><code>OrdinaryDiffEqExtrapolation.ImplicitHairerWannerExtrapolation</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitHairerWannerExtrapolation(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -47,7 +47,7 @@ min_order = 2, init_order = 5, thread = OrdinaryDiffEq.False(), - sequence = :harmonic)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates, following Hairer's SODEX in the adaptivity behavior.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitHairerWannerExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L326-L415">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ImplicitEulerBarycentricExtrapolation" href="#OrdinaryDiffEqExtrapolation.ImplicitEulerBarycentricExtrapolation"><code>OrdinaryDiffEqExtrapolation.ImplicitEulerBarycentricExtrapolation</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitEulerBarycentricExtrapolation(; chunk_size = Val{0}(), + sequence = :harmonic)</code></pre><p>Parallelized Explicit Extrapolation Method. Midpoint extrapolation using Barycentric coordinates, following Hairer's SODEX in the adaptivity behavior.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitHairerWannerExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L326-L415">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExtrapolation.ImplicitEulerBarycentricExtrapolation" href="#OrdinaryDiffEqExtrapolation.ImplicitEulerBarycentricExtrapolation"><code>OrdinaryDiffEqExtrapolation.ImplicitEulerBarycentricExtrapolation</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitEulerBarycentricExtrapolation(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -59,4 +59,4 @@ init_order = 5, thread = OrdinaryDiffEq.False(), sequence = :harmonic, - sequence_factor = 2)</code></pre><p>Parallelized Explicit Extrapolation Method. Euler extrapolation using Barycentric coordinates, following Hairer's SODEX in the adaptivity behavior.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitEulerBarycentricExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li><li><code>sequence_factor</code>: denotes which even multiple of sequence to take while evaluating internal discretizations.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L402-L493">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../BDF/">« OrdinaryDiffEqBDF</a><a class="docs-footer-nextpage" href="../PDIRK/">OrdinaryDiffEqPDIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + sequence_factor = 2)</code></pre><p>Parallelized Explicit Extrapolation Method. Euler extrapolation using Barycentric coordinates, following Hairer's SODEX in the adaptivity behavior.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitEulerBarycentricExtrapolation(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>max_order</code>: maximum order of the adaptive order algorithm.</li><li><code>min_order</code>: minimum order of the adaptive order algorithm.</li><li><code>init_order</code>: initial order of the adaptive order algorithm.</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li><li><code>sequence</code>: the step-number sequences, also called the subdividing sequence. Possible values are <code>:harmonic</code>, <code>:romberg</code> or <code>:bulirsch</code>.</li><li><code>sequence_factor</code>: denotes which even multiple of sequence to take while evaluating internal discretizations.</li></ul><p><strong>References</strong></p><p>@inproceedings{elrod2022parallelizing, title={Parallelizing explicit and implicit extrapolation methods for ordinary differential equations}, author={Elrod, Chris and Ma, Yingbo and Althaus, Konstantin and Rackauckas, Christopher and others}, booktitle={2022 IEEE High Performance Extreme Computing Conference (HPEC)}, pages={1–9}, year={2022}, organization={IEEE}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExtrapolation/src/algorithms.jl#L402-L493">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../BDF/">« OrdinaryDiffEqBDF</a><a class="docs-footer-nextpage" href="../PDIRK/">OrdinaryDiffEqPDIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/implicit/FIRK/index.html b/dev/implicit/FIRK/index.html index 2b6d431a72..a656852cf8 100644 --- a/dev/implicit/FIRK/index.html +++ b/dev/implicit/FIRK/index.html @@ -23,7 +23,7 @@ precs = DEFAULT_PRECS, extrapolant = :dense, smooth_est = true, - step_limiter! = trivial_limiter!)</code></pre><p>Fully-Implicit Runge-Kutta Method. An A-B-L stable fully implicit Runge-Kutta method with internal tableau complex basis transform for efficiency. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RadauIIA3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>extrapolant</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hairer1999stiff, title={Stiff differential equations solved by Radau methods}, author={Hairer, Ernst and Wanner, Gerhard}, journal={Journal of Computational and Applied Mathematics}, volume={111}, number={1-2}, pages={93–111}, year={1999}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqFIRK/src/algorithms.jl#L21-L106">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFIRK.RadauIIA5" href="#OrdinaryDiffEqFIRK.RadauIIA5"><code>OrdinaryDiffEqFIRK.RadauIIA5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RadauIIA5(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Fully-Implicit Runge-Kutta Method. An A-B-L stable fully implicit Runge-Kutta method with internal tableau complex basis transform for efficiency. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RadauIIA3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>extrapolant</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hairer1999stiff, title={Stiff differential equations solved by Radau methods}, author={Hairer, Ernst and Wanner, Gerhard}, journal={Journal of Computational and Applied Mathematics}, volume={111}, number={1-2}, pages={93–111}, year={1999}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqFIRK/src/algorithms.jl#L21-L106">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFIRK.RadauIIA5" href="#OrdinaryDiffEqFIRK.RadauIIA5"><code>OrdinaryDiffEqFIRK.RadauIIA5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RadauIIA5(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -32,7 +32,7 @@ precs = DEFAULT_PRECS, extrapolant = :dense, smooth_est = true, - step_limiter! = trivial_limiter!)</code></pre><p>Fully-Implicit Runge-Kutta Method. An A-B-L stable fully implicit Runge-Kutta method with internal tableau complex basis transform for efficiency. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RadauIIA5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>extrapolant</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hairer1999stiff, title={Stiff differential equations solved by Radau methods}, author={Hairer, Ernst and Wanner, Gerhard}, journal={Journal of Computational and Applied Mathematics}, volume={111}, number={1-2}, pages={93–111}, year={1999}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqFIRK/src/algorithms.jl#L64-L149">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFIRK.RadauIIA9" href="#OrdinaryDiffEqFIRK.RadauIIA9"><code>OrdinaryDiffEqFIRK.RadauIIA9</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RadauIIA9(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Fully-Implicit Runge-Kutta Method. An A-B-L stable fully implicit Runge-Kutta method with internal tableau complex basis transform for efficiency. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RadauIIA5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>extrapolant</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hairer1999stiff, title={Stiff differential equations solved by Radau methods}, author={Hairer, Ernst and Wanner, Gerhard}, journal={Journal of Computational and Applied Mathematics}, volume={111}, number={1-2}, pages={93–111}, year={1999}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqFIRK/src/algorithms.jl#L64-L149">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqFIRK.RadauIIA9" href="#OrdinaryDiffEqFIRK.RadauIIA9"><code>OrdinaryDiffEqFIRK.RadauIIA9</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RadauIIA9(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -41,4 +41,4 @@ precs = DEFAULT_PRECS, extrapolant = :dense, smooth_est = true, - step_limiter! = trivial_limiter!)</code></pre><p>Fully-Implicit Runge-Kutta Method. An A-B-L stable fully implicit Runge-Kutta method with internal tableau complex basis transform for efficiency. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RadauIIA9(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>extrapolant</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hairer1999stiff, title={Stiff differential equations solved by Radau methods}, author={Hairer, Ernst and Wanner, Gerhard}, journal={Journal of Computational and Applied Mathematics}, volume={111}, number={1-2}, pages={93–111}, year={1999}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqFIRK/src/algorithms.jl#L109-L194">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../SDIRK/">« OrdinaryDiffEqSDIRK</a><a class="docs-footer-nextpage" href="../BDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + step_limiter! = trivial_limiter!)</code></pre><p>Fully-Implicit Runge-Kutta Method. An A-B-L stable fully implicit Runge-Kutta method with internal tableau complex basis transform for efficiency. Similar to Hairer's SEULEX.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RadauIIA9(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>extrapolant</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hairer1999stiff, title={Stiff differential equations solved by Radau methods}, author={Hairer, Ernst and Wanner, Gerhard}, journal={Journal of Computational and Applied Mathematics}, volume={111}, number={1-2}, pages={93–111}, year={1999}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqFIRK/src/algorithms.jl#L109-L194">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../SDIRK/">« OrdinaryDiffEqSDIRK</a><a class="docs-footer-nextpage" href="../BDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/implicit/Nordsieck/index.html b/dev/implicit/Nordsieck/index.html index e07d2096cb..bf69693148 100644 --- a/dev/implicit/Nordsieck/index.html +++ b/dev/implicit/Nordsieck/index.html @@ -14,4 +14,4 @@ u0 = [1.0; 0.0; 0.0] tspan = (0.0, 100.0) prob = ODEProblem(lorenz!, u0, tspan) -sol = solve(prob, AN5())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.AN5" href="#OrdinaryDiffEqNordsieck.AN5"><code>OrdinaryDiffEqNordsieck.AN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AN5()</code></pre><p>Adaptive step size Adams explicit Method An adaptive 5th order fixed-leading coefficient Adams method in Nordsieck form.</p><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>AN5</code> is experimental, the solver <code>VCABM</code> is generally preferred.</p></div></div><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L2-L15">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.JVODE" href="#OrdinaryDiffEqNordsieck.JVODE"><code>OrdinaryDiffEqNordsieck.JVODE</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>JVODE</code> is experimental, the solver <code>VCABM</code> is generally preferred.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L13-L17">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.JVODE_Adams" href="#OrdinaryDiffEqNordsieck.JVODE_Adams"><code>OrdinaryDiffEqNordsieck.JVODE_Adams</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>JVODE</code> is experimental, the solver <code>VCABM</code> is generally preferred.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L30-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.JVODE_BDF" href="#OrdinaryDiffEqNordsieck.JVODE_BDF"><code>OrdinaryDiffEqNordsieck.JVODE_BDF</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>JVODE</code> is experimental, the solver <code>FBDF</code> is generally preferred.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L36-L40">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../PDIRK/">« OrdinaryDiffEqPDIRK</a><a class="docs-footer-nextpage" href="../../imex/IMEXMultistep/">OrdinaryDiffEqIMEXMultistep »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> +sol = solve(prob, AN5())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.AN5" href="#OrdinaryDiffEqNordsieck.AN5"><code>OrdinaryDiffEqNordsieck.AN5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">AN5()</code></pre><p>Adaptive step size Adams explicit Method An adaptive 5th order fixed-leading coefficient Adams method in Nordsieck form.</p><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>AN5</code> is experimental, the solver <code>VCABM</code> is generally preferred.</p></div></div><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L2-L15">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.JVODE" href="#OrdinaryDiffEqNordsieck.JVODE"><code>OrdinaryDiffEqNordsieck.JVODE</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>JVODE</code> is experimental, the solver <code>VCABM</code> is generally preferred.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L13-L17">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.JVODE_Adams" href="#OrdinaryDiffEqNordsieck.JVODE_Adams"><code>OrdinaryDiffEqNordsieck.JVODE_Adams</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>JVODE</code> is experimental, the solver <code>VCABM</code> is generally preferred.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L30-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqNordsieck.JVODE_BDF" href="#OrdinaryDiffEqNordsieck.JVODE_BDF"><code>OrdinaryDiffEqNordsieck.JVODE_BDF</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><div class="admonition is-warning"><header class="admonition-header">Experimental</header><div class="admonition-body"><p><code>JVODE</code> is experimental, the solver <code>FBDF</code> is generally preferred.</p></div></div></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqNordsieck/src/algorithms.jl#L36-L40">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../PDIRK/">« OrdinaryDiffEqPDIRK</a><a class="docs-footer-nextpage" href="../../imex/IMEXMultistep/">OrdinaryDiffEqIMEXMultistep »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/implicit/PDIRK/index.html b/dev/implicit/PDIRK/index.html index ec4649dcc0..37b096652f 100644 --- a/dev/implicit/PDIRK/index.html +++ b/dev/implicit/PDIRK/index.html @@ -23,4 +23,4 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :constant, - thread = OrdinaryDiffEq.True())</code></pre><p>Parallel Diagonally Implicit Runge-Kutta Method. A 2 processor 4th order diagonally non-adaptive implicit method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>PDIRK44(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD,</li><li><code>extrapolant</code>: TBD,</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>"@article{iserles1990theory, title={On the theory of parallel Runge—Kutta methods}, author={Iserles, Arieh and Norrsett, SP}, journal={IMA Journal of numerical Analysis}, volume={10}, number={4}, pages={463–488}, year={1990}, publisher={Oxford University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqPDIRK/src/algorithms.jl#L1-L86">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Extrapolation/">« OrdinaryDiffEqExtrapolation</a><a class="docs-footer-nextpage" href="../Nordsieck/">OrdinaryDiffEqNordsieck »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + thread = OrdinaryDiffEq.True())</code></pre><p>Parallel Diagonally Implicit Runge-Kutta Method. A 2 processor 4th order diagonally non-adaptive implicit method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>PDIRK44(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD,</li><li><code>extrapolant</code>: TBD,</li><li><code>thread</code>: determines whether internal broadcasting on appropriate CPU arrays should be serial (<code>thread = OrdinaryDiffEq.False()</code>) or use multiple threads (<code>thread = OrdinaryDiffEq.True()</code>) when Julia is started with multiple threads.</li></ul><p><strong>References</strong></p><p>"@article{iserles1990theory, title={On the theory of parallel Runge—Kutta methods}, author={Iserles, Arieh and Norrsett, SP}, journal={IMA Journal of numerical Analysis}, volume={10}, number={4}, pages={463–488}, year={1990}, publisher={Oxford University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqPDIRK/src/algorithms.jl#L1-L86">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Extrapolation/">« OrdinaryDiffEqExtrapolation</a><a class="docs-footer-nextpage" href="../Nordsieck/">OrdinaryDiffEqNordsieck »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/implicit/SDIRK/index.html b/dev/implicit/SDIRK/index.html index 087de7870d..f9cbf1c2fa 100644 --- a/dev/implicit/SDIRK/index.html +++ b/dev/implicit/SDIRK/index.html @@ -24,7 +24,7 @@ nlsolve = NLNewton(), extrapolant = :constant, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. A 1st order implicit solver. A-B-L-stable. Adaptive timestepping through a divided differences estimate via memory. Strong-stability preserving (SSP).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitEuler(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@book{wanner1996solving, title={Solving ordinary differential equations II}, author={Wanner, Gerhard and Hairer, Ernst}, volume={375}, year={1996}, publisher={Springer Berlin Heidelberg New York}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L81-L167">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ImplicitMidpoint" href="#OrdinaryDiffEqSDIRK.ImplicitMidpoint"><code>OrdinaryDiffEqSDIRK.ImplicitMidpoint</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitMidpoint(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. A 1st order implicit solver. A-B-L-stable. Adaptive timestepping through a divided differences estimate via memory. Strong-stability preserving (SSP).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitEuler(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@book{wanner1996solving, title={Solving ordinary differential equations II}, author={Wanner, Gerhard and Hairer, Ernst}, volume={375}, year={1996}, publisher={Springer Berlin Heidelberg New York}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L81-L167">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ImplicitMidpoint" href="#OrdinaryDiffEqSDIRK.ImplicitMidpoint"><code>OrdinaryDiffEqSDIRK.ImplicitMidpoint</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ImplicitMidpoint(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -33,7 +33,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :linear, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. A second order A-stable symplectic and symmetric implicit solver. Good for highly stiff equations which need symplectic integration.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitMidpoint(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@book{wanner1996solving, title={Solving ordinary differential equations II}, author={Wanner, Gerhard and Hairer, Ernst}, volume={375}, year={1996}, publisher={Springer Berlin Heidelberg New York}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L123-L206">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Trapezoid" href="#OrdinaryDiffEqSDIRK.Trapezoid"><code>OrdinaryDiffEqSDIRK.Trapezoid</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Trapezoid(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. A second order A-stable symplectic and symmetric implicit solver. Good for highly stiff equations which need symplectic integration.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ImplicitMidpoint(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@book{wanner1996solving, title={Solving ordinary differential equations II}, author={Wanner, Gerhard and Hairer, Ernst}, volume={375}, year={1996}, publisher={Springer Berlin Heidelberg New York}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L123-L206">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Trapezoid" href="#OrdinaryDiffEqSDIRK.Trapezoid"><code>OrdinaryDiffEqSDIRK.Trapezoid</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Trapezoid(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -43,7 +43,7 @@ nlsolve = NLNewton(), extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. Second order A-stable symmetric ESDIRK method. "Almost symplectic" without numerical dampening. Also known as Crank-Nicolson when applied to PDEs. Adaptive timestepping via divided differences approximation to the second derivative terms in the local truncation error estimate (the SPICE approximation strategy).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Trapezoid(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>Andre Vladimirescu. 1994. The Spice Book. John Wiley & Sons, Inc., New York, NY, USA.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L163-L246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.TRBDF2" href="#OrdinaryDiffEqSDIRK.TRBDF2"><code>OrdinaryDiffEqSDIRK.TRBDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TRBDF2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. Second order A-stable symmetric ESDIRK method. "Almost symplectic" without numerical dampening. Also known as Crank-Nicolson when applied to PDEs. Adaptive timestepping via divided differences approximation to the second derivative terms in the local truncation error estimate (the SPICE approximation strategy).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Trapezoid(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>Andre Vladimirescu. 1994. The Spice Book. John Wiley & Sons, Inc., New York, NY, USA.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L163-L246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.TRBDF2" href="#OrdinaryDiffEqSDIRK.TRBDF2"><code>OrdinaryDiffEqSDIRK.TRBDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">TRBDF2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -54,7 +54,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. A second order A-B-L-S-stable one-step ESDIRK method. Includes stiffness-robust error estimates for accurate adaptive timestepping, smoothed derivatives for highly stiff and oscillatory problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>TRBDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hosea1996analysis, title={Analysis and implementation of TR-BDF2}, author={Hosea, ME and Shampine, LF}, journal={Applied Numerical Mathematics}, volume={20}, number={1-2}, pages={21–37}, year={1996}, publisher={Elsevier}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L207-L298">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SDIRK2" href="#OrdinaryDiffEqSDIRK.SDIRK2"><code>OrdinaryDiffEqSDIRK.SDIRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SDIRK2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. A second order A-B-L-S-stable one-step ESDIRK method. Includes stiffness-robust error estimates for accurate adaptive timestepping, smoothed derivatives for highly stiff and oscillatory problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>TRBDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hosea1996analysis, title={Analysis and implementation of TR-BDF2}, author={Hosea, ME and Shampine, LF}, journal={Applied Numerical Mathematics}, volume={20}, number={1-2}, pages={21–37}, year={1996}, publisher={Elsevier}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L207-L298">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SDIRK2" href="#OrdinaryDiffEqSDIRK.SDIRK2"><code>OrdinaryDiffEqSDIRK.SDIRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SDIRK2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -65,7 +65,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. SDIRK2: SDIRK Method An A-B-L stable 2nd order SDIRK method</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SDIRK2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hindmarsh2005sundials, title={{SUNDIALS}: Suite of nonlinear and differential/algebraic equation solvers}, author={Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee, Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S}, journal={ACM Transactions on Mathematical Software (TOMS)}, volume={31}, number={3}, pages={363–396}, year={2005}, publisher={ACM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L256-L345">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SDIRK22" href="#OrdinaryDiffEqSDIRK.SDIRK22"><code>OrdinaryDiffEqSDIRK.SDIRK22</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SDIRK22(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. SDIRK2: SDIRK Method An A-B-L stable 2nd order SDIRK method</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SDIRK2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{hindmarsh2005sundials, title={{SUNDIALS}: Suite of nonlinear and differential/algebraic equation solvers}, author={Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee, Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S}, journal={ACM Transactions on Mathematical Software (TOMS)}, volume={31}, number={3}, pages={363–396}, year={2005}, publisher={ACM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L256-L345">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SDIRK22" href="#OrdinaryDiffEqSDIRK.SDIRK22"><code>OrdinaryDiffEqSDIRK.SDIRK22</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SDIRK22(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -76,7 +76,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. Description TBD</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SDIRK22(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@techreport{kennedy2016diagonally, title={Diagonally implicit Runge-Kutta methods for ordinary differential equations. A review}, author={Kennedy, Christopher A and Carpenter, Mark H}, year={2016}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L303-L387">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SSPSDIRK2" href="#OrdinaryDiffEqSDIRK.SSPSDIRK2"><code>OrdinaryDiffEqSDIRK.SSPSDIRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPSDIRK2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. Description TBD</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SDIRK22(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@techreport{kennedy2016diagonally, title={Diagonally implicit Runge-Kutta methods for ordinary differential equations. A review}, author={Kennedy, Christopher A and Carpenter, Mark H}, year={2016}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L303-L387">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SSPSDIRK2" href="#OrdinaryDiffEqSDIRK.SSPSDIRK2"><code>OrdinaryDiffEqSDIRK.SSPSDIRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SSPSDIRK2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -86,7 +86,7 @@ nlsolve = NLNewton(), smooth_est = true, extrapolant = :constant, - controller = :PI)</code></pre><p>SDIRK Method. SSPSDIRK is an SSP-optimized SDIRK method, so it's an implicit SDIRK method for handling stiffness but if the <code>dt</code> is below the SSP <code>coefficient * dt</code>, then the SSP property of the SSP integrators (the other page) is satisified. As such this is a method which is expected to be good on advection-dominated cases where an explicit SSP integrator would be used, but where reaction equations are sufficient stiff to justify implicit integration.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SSPSDIRK2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{ketcheson2009optimal, title={Optimal implicit strong stability preserving Runge–Kutta methods}, author={Ketcheson, David I and Macdonald, Colin B and Gottlieb, Sigal}, journal={Applied Numerical Mathematics}, volume={59}, number={2}, pages={373–392}, year={2009}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L347-L438">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Kvaerno3" href="#OrdinaryDiffEqSDIRK.Kvaerno3"><code>OrdinaryDiffEqSDIRK.Kvaerno3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Kvaerno3(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. SSPSDIRK is an SSP-optimized SDIRK method, so it's an implicit SDIRK method for handling stiffness but if the <code>dt</code> is below the SSP <code>coefficient * dt</code>, then the SSP property of the SSP integrators (the other page) is satisified. As such this is a method which is expected to be good on advection-dominated cases where an explicit SSP integrator would be used, but where reaction equations are sufficient stiff to justify implicit integration.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SSPSDIRK2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{ketcheson2009optimal, title={Optimal implicit strong stability preserving Runge–Kutta methods}, author={Ketcheson, David I and Macdonald, Colin B and Gottlieb, Sigal}, journal={Applied Numerical Mathematics}, volume={59}, number={2}, pages={373–392}, year={2009}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L347-L438">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Kvaerno3" href="#OrdinaryDiffEqSDIRK.Kvaerno3"><code>OrdinaryDiffEqSDIRK.Kvaerno3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Kvaerno3(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -97,7 +97,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 3rd order ESDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Kvaerno3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{kvaerno2004singly, title={Singly diagonally implicit Runge–Kutta methods with an explicit first stage}, author={Kv{\ae}rn{\o}, Anne}, journal={BIT Numerical Mathematics}, volume={44}, number={3}, pages={489–502}, year={2004}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L395-L484">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp3" href="#OrdinaryDiffEqSDIRK.KenCarp3"><code>OrdinaryDiffEqSDIRK.KenCarp3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp3(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 3rd order ESDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Kvaerno3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{kvaerno2004singly, title={Singly diagonally implicit Runge–Kutta methods with an explicit first stage}, author={Kv{\ae}rn{\o}, Anne}, journal={BIT Numerical Mathematics}, volume={44}, number={3}, pages={489–502}, year={2004}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L395-L484">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp3" href="#OrdinaryDiffEqSDIRK.KenCarp3"><code>OrdinaryDiffEqSDIRK.KenCarp3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp3(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -108,7 +108,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 3rd order ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@book{kennedy2001additive, title={Additive Runge-Kutta schemes for convection-diffusion-reaction equations}, author={Kennedy, Christopher Alan}, year={2001}, publisher={National Aeronautics and Space Administration, Langley Research Center}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L440-L525">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.CFNLIRK3" href="#OrdinaryDiffEqSDIRK.CFNLIRK3"><code>OrdinaryDiffEqSDIRK.CFNLIRK3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CFNLIRK3(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 3rd order ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@book{kennedy2001additive, title={Additive Runge-Kutta schemes for convection-diffusion-reaction equations}, author={Kennedy, Christopher Alan}, year={2001}, publisher={National Aeronautics and Space Administration, Langley Research Center}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L440-L525">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.CFNLIRK3" href="#OrdinaryDiffEqSDIRK.CFNLIRK3"><code>OrdinaryDiffEqSDIRK.CFNLIRK3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CFNLIRK3(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -116,7 +116,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :linear)</code></pre><p>SDIRK Method. Third order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>CFNLIRK3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{calvo2001linearly, title={Linearly implicit Runge–Kutta methods for advection–reaction–diffusion equations}, author={Calvo, MP and De Frutos, J and Novo, J}, journal={Applied Numerical Mathematics}, volume={37}, number={4}, pages={535–549}, year={2001}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L482-L565">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Cash4" href="#OrdinaryDiffEqSDIRK.Cash4"><code>OrdinaryDiffEqSDIRK.Cash4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Cash4(; chunk_size = Val{0}(), + extrapolant = :linear)</code></pre><p>SDIRK Method. Third order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>CFNLIRK3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{calvo2001linearly, title={Linearly implicit Runge–Kutta methods for advection–reaction–diffusion equations}, author={Calvo, MP and De Frutos, J and Novo, J}, journal={Applied Numerical Mathematics}, volume={37}, number={4}, pages={535–549}, year={2001}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L482-L565">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Cash4" href="#OrdinaryDiffEqSDIRK.Cash4"><code>OrdinaryDiffEqSDIRK.Cash4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Cash4(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -127,7 +127,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - embedding = 3)</code></pre><p>SDIRK Method. An A-L stable 4th order SDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Cash4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>embedding</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{hindmarsh2005sundials, title={{SUNDIALS}: Suite of nonlinear and differential/algebraic equation solvers}, author={Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee, Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S}, journal={ACM Transactions on Mathematical Software (TOMS)}, volume={31}, number={3}, pages={363–396}, year={2005}, publisher={ACM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L519-L608">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK4" href="#OrdinaryDiffEqSDIRK.SFSDIRK4"><code>OrdinaryDiffEqSDIRK.SFSDIRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK4(; chunk_size = Val{0}(), + embedding = 3)</code></pre><p>SDIRK Method. An A-L stable 4th order SDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Cash4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>embedding</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{hindmarsh2005sundials, title={{SUNDIALS}: Suite of nonlinear and differential/algebraic equation solvers}, author={Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee, Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S}, journal={ACM Transactions on Mathematical Software (TOMS)}, volume={31}, number={3}, pages={363–396}, year={2005}, publisher={ACM}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L519-L608">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK4" href="#OrdinaryDiffEqSDIRK.SFSDIRK4"><code>OrdinaryDiffEqSDIRK.SFSDIRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK4(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -135,7 +135,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L569-L652">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK5" href="#OrdinaryDiffEqSDIRK.SFSDIRK5"><code>OrdinaryDiffEqSDIRK.SFSDIRK5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK5(; chunk_size = Val{0}(), + extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L569-L652">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK5" href="#OrdinaryDiffEqSDIRK.SFSDIRK5"><code>OrdinaryDiffEqSDIRK.SFSDIRK5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK5(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -143,7 +143,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 5.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L606-L689">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK6" href="#OrdinaryDiffEqSDIRK.SFSDIRK6"><code>OrdinaryDiffEqSDIRK.SFSDIRK6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK6(; chunk_size = Val{0}(), + extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 5.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L606-L689">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK6" href="#OrdinaryDiffEqSDIRK.SFSDIRK6"><code>OrdinaryDiffEqSDIRK.SFSDIRK6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK6(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -151,7 +151,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 6.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK6(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L644-L727">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK7" href="#OrdinaryDiffEqSDIRK.SFSDIRK7"><code>OrdinaryDiffEqSDIRK.SFSDIRK7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK7(; chunk_size = Val{0}(), + extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 6.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK6(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L644-L727">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK7" href="#OrdinaryDiffEqSDIRK.SFSDIRK7"><code>OrdinaryDiffEqSDIRK.SFSDIRK7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK7(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -159,7 +159,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 7.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK7(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L682-L765">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK8" href="#OrdinaryDiffEqSDIRK.SFSDIRK8"><code>OrdinaryDiffEqSDIRK.SFSDIRK8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK8(; chunk_size = Val{0}(), + extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 7.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK7(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L682-L765">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.SFSDIRK8" href="#OrdinaryDiffEqSDIRK.SFSDIRK8"><code>OrdinaryDiffEqSDIRK.SFSDIRK8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SFSDIRK8(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -167,7 +167,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 8.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK8(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L720-L803">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Hairer4" href="#OrdinaryDiffEqSDIRK.Hairer4"><code>OrdinaryDiffEqSDIRK.Hairer4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Hairer4(; chunk_size = Val{0}(), + extrapolant = :linear)</code></pre><p>SDIRK Method. Method of order 8.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>SFSDIRK8(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li></ul><p><strong>References</strong></p><p>@article{ferracina2008strong, title={Strong stability of singly-diagonally-implicit Runge–Kutta methods}, author={Ferracina, Luca and Spijker, MN}, journal={Applied Numerical Mathematics}, volume={58}, number={11}, pages={1675–1686}, year={2008}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L720-L803">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Hairer4" href="#OrdinaryDiffEqSDIRK.Hairer4"><code>OrdinaryDiffEqSDIRK.Hairer4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Hairer4(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -177,7 +177,7 @@ nlsolve = NLNewton(), smooth_est = true, extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. An A-L stable 4th order SDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Hairer4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L758-L839">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Hairer42" href="#OrdinaryDiffEqSDIRK.Hairer42"><code>OrdinaryDiffEqSDIRK.Hairer42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Hairer42(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. An A-L stable 4th order SDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Hairer4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L758-L839">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Hairer42" href="#OrdinaryDiffEqSDIRK.Hairer42"><code>OrdinaryDiffEqSDIRK.Hairer42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Hairer42(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -187,7 +187,7 @@ nlsolve = NLNewton(), smooth_est = true, extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. An A-L stable 4th order SDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Hairer42(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L794-L875">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Kvaerno4" href="#OrdinaryDiffEqSDIRK.Kvaerno4"><code>OrdinaryDiffEqSDIRK.Kvaerno4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Kvaerno4(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. An A-L stable 4th order SDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Hairer42(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L794-L875">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Kvaerno4" href="#OrdinaryDiffEqSDIRK.Kvaerno4"><code>OrdinaryDiffEqSDIRK.Kvaerno4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Kvaerno4(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -198,7 +198,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 4th order ESDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Kvaerno4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kvaerno2004singly, title={Singly diagonally implicit Runge–Kutta methods with an explicit first stage}, author={Kv{\ae}rn{\o}, Anne}, journal={BIT Numerical Mathematics}, volume={44}, number={3}, pages={489–502}, year={2004}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L830-L919">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Kvaerno5" href="#OrdinaryDiffEqSDIRK.Kvaerno5"><code>OrdinaryDiffEqSDIRK.Kvaerno5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Kvaerno5(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 4th order ESDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Kvaerno4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kvaerno2004singly, title={Singly diagonally implicit Runge–Kutta methods with an explicit first stage}, author={Kv{\ae}rn{\o}, Anne}, journal={BIT Numerical Mathematics}, volume={44}, number={3}, pages={489–502}, year={2004}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L830-L919">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.Kvaerno5" href="#OrdinaryDiffEqSDIRK.Kvaerno5"><code>OrdinaryDiffEqSDIRK.Kvaerno5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Kvaerno5(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -209,7 +209,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 5th order ESDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Kvaerno5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kvaerno2004singly, title={Singly diagonally implicit Runge–Kutta methods with an explicit first stage}, author={Kv{\ae}rn{\o}, Anne}, journal={BIT Numerical Mathematics}, volume={44}, number={3}, pages={489–502}, year={2004}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L875-L964">source</a></section></article><h3 id="IMEX-SDIRK"><a class="docs-heading-anchor" href="#IMEX-SDIRK">IMEX SDIRK</a><a id="IMEX-SDIRK-1"></a><a class="docs-heading-anchor-permalink" href="#IMEX-SDIRK" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp4" href="#OrdinaryDiffEqSDIRK.KenCarp4"><code>OrdinaryDiffEqSDIRK.KenCarp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp4(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 5th order ESDIRK method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Kvaerno5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kvaerno2004singly, title={Singly diagonally implicit Runge–Kutta methods with an explicit first stage}, author={Kv{\ae}rn{\o}, Anne}, journal={BIT Numerical Mathematics}, volume={44}, number={3}, pages={489–502}, year={2004}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L875-L964">source</a></section></article><h3 id="IMEX-SDIRK"><a class="docs-heading-anchor" href="#IMEX-SDIRK">IMEX SDIRK</a><a id="IMEX-SDIRK-1"></a><a class="docs-heading-anchor-permalink" href="#IMEX-SDIRK" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp4" href="#OrdinaryDiffEqSDIRK.KenCarp4"><code>OrdinaryDiffEqSDIRK.KenCarp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp4(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -220,7 +220,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 4th order ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@book{kennedy2001additive, title={Additive Runge-Kutta schemes for convection-diffusion-reaction equations}, author={Kennedy, Christopher Alan}, year={2001}, publisher={National Aeronautics and Space Administration, Langley Research Center}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L920-L1005">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp47" href="#OrdinaryDiffEqSDIRK.KenCarp47"><code>OrdinaryDiffEqSDIRK.KenCarp47</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp47(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 4th order ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@book{kennedy2001additive, title={Additive Runge-Kutta schemes for convection-diffusion-reaction equations}, author={Kennedy, Christopher Alan}, year={2001}, publisher={National Aeronautics and Space Administration, Langley Research Center}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L920-L1005">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp47" href="#OrdinaryDiffEqSDIRK.KenCarp47"><code>OrdinaryDiffEqSDIRK.KenCarp47</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp47(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -230,7 +230,7 @@ nlsolve = NLNewton(), smooth_est = true, extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 4th order seven-stage ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp47(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kennedy2019higher, title={Higher-order additive Runge–Kutta schemes for ordinary differential equations}, author={Kennedy, Christopher A and Carpenter, Mark H}, journal={Applied Numerical Mathematics}, volume={136}, pages={183–205}, year={2019}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L964-L1050">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp5" href="#OrdinaryDiffEqSDIRK.KenCarp5"><code>OrdinaryDiffEqSDIRK.KenCarp5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp5(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 4th order seven-stage ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp47(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kennedy2019higher, title={Higher-order additive Runge–Kutta schemes for ordinary differential equations}, author={Kennedy, Christopher A and Carpenter, Mark H}, journal={Applied Numerical Mathematics}, volume={136}, pages={183–205}, year={2019}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L964-L1050">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp5" href="#OrdinaryDiffEqSDIRK.KenCarp5"><code>OrdinaryDiffEqSDIRK.KenCarp5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp5(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -241,7 +241,7 @@ smooth_est = true, extrapolant = :linear, controller = :PI, - step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 5th order ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@book{kennedy2001additive, title={Additive Runge-Kutta schemes for convection-diffusion-reaction equations}, author={Kennedy, Christopher Alan}, year={2001}, publisher={National Aeronautics and Space Administration, Langley Research Center}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1006-L1091">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp58" href="#OrdinaryDiffEqSDIRK.KenCarp58"><code>OrdinaryDiffEqSDIRK.KenCarp58</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp58(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 5th order ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp5(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter</code>: TBD</li></ul><p><strong>References</strong></p><p>@book{kennedy2001additive, title={Additive Runge-Kutta schemes for convection-diffusion-reaction equations}, author={Kennedy, Christopher Alan}, year={2001}, publisher={National Aeronautics and Space Administration, Langley Research Center}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1006-L1091">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.KenCarp58" href="#OrdinaryDiffEqSDIRK.KenCarp58"><code>OrdinaryDiffEqSDIRK.KenCarp58</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">KenCarp58(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -251,7 +251,7 @@ nlsolve = NLNewton(), smooth_est = true, extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 5th order eight-stage ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp58(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kennedy2019higher, title={Higher-order additive Runge–Kutta schemes for ordinary differential equations}, author={Kennedy, Christopher A and Carpenter, Mark H}, journal={Applied Numerical Mathematics}, volume={136}, pages={183–205}, year={2019}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1048-L1134">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK54I8L2SA" href="#OrdinaryDiffEqSDIRK.ESDIRK54I8L2SA"><code>OrdinaryDiffEqSDIRK.ESDIRK54I8L2SA</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK54I8L2SA(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. An A-L stable stiffly-accurate 5th order eight-stage ESDIRK method with splitting.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>KenCarp58(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>smooth_est</code>: TBD</li></ul></li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{kennedy2019higher, title={Higher-order additive Runge–Kutta schemes for ordinary differential equations}, author={Kennedy, Christopher A and Carpenter, Mark H}, journal={Applied Numerical Mathematics}, volume={136}, pages={183–205}, year={2019}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1048-L1134">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK54I8L2SA" href="#OrdinaryDiffEqSDIRK.ESDIRK54I8L2SA"><code>OrdinaryDiffEqSDIRK.ESDIRK54I8L2SA</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK54I8L2SA(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -260,7 +260,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK54I8L2SA(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1091-L1177">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK436L2SA2" href="#OrdinaryDiffEqSDIRK.ESDIRK436L2SA2"><code>OrdinaryDiffEqSDIRK.ESDIRK436L2SA2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK436L2SA2(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK54I8L2SA(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1091-L1177">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK436L2SA2" href="#OrdinaryDiffEqSDIRK.ESDIRK436L2SA2"><code>OrdinaryDiffEqSDIRK.ESDIRK436L2SA2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK436L2SA2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -269,7 +269,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK436L2SA2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1131-L1217">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK437L2SA" href="#OrdinaryDiffEqSDIRK.ESDIRK437L2SA"><code>OrdinaryDiffEqSDIRK.ESDIRK437L2SA</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK437L2SA(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK436L2SA2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1131-L1217">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK437L2SA" href="#OrdinaryDiffEqSDIRK.ESDIRK437L2SA"><code>OrdinaryDiffEqSDIRK.ESDIRK437L2SA</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK437L2SA(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -278,7 +278,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK437L2SA(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1171-L1257">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK547L2SA2" href="#OrdinaryDiffEqSDIRK.ESDIRK547L2SA2"><code>OrdinaryDiffEqSDIRK.ESDIRK547L2SA2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK547L2SA2(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK437L2SA(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1171-L1257">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK547L2SA2" href="#OrdinaryDiffEqSDIRK.ESDIRK547L2SA2"><code>OrdinaryDiffEqSDIRK.ESDIRK547L2SA2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK547L2SA2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -287,7 +287,7 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK547L2SA2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1211-L1297">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK659L2SA" href="#OrdinaryDiffEqSDIRK.ESDIRK659L2SA"><code>OrdinaryDiffEqSDIRK.ESDIRK659L2SA</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK659L2SA(; chunk_size = Val{0}(), + controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK547L2SA2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1211-L1297">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqSDIRK.ESDIRK659L2SA" href="#OrdinaryDiffEqSDIRK.ESDIRK659L2SA"><code>OrdinaryDiffEqSDIRK.ESDIRK659L2SA</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESDIRK659L2SA(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -296,4 +296,4 @@ precs = DEFAULT_PRECS, nlsolve = NLNewton(), extrapolant = :linear, - controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context. Currently has STABILITY ISSUES, causing it to fail the adaptive tests. Check issue https://github.com/SciML/OrdinaryDiffEq.jl/issues/1933 for more details.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK659L2SA(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1251-L1339">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../semiimplicit/ExponentialRK/">« OrdinaryDiffEqExponentialRK</a><a class="docs-footer-nextpage" href="../FIRK/">OrdinaryDiffEqFIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + controller = :PI)</code></pre><p>SDIRK Method. Optimized ESDIRK tableaus. Updates of the original KenCarp tableau expected to achieve lower error for the same steps in theory, but are still being fully evaluated in context. Currently has STABILITY ISSUES, causing it to fail the adaptive tests. Check issue https://github.com/SciML/OrdinaryDiffEq.jl/issues/1933 for more details.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ESDIRK659L2SA(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>nlsolve</code>: TBD<ul><li><code>extrapolant</code>: TBD</li></ul></li><li><code>controller</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{Kennedy2019DiagonallyIR, title={Diagonally implicit Runge–Kutta methods for stiff ODEs}, author={Christopher A. Kennedy and Mark H. Carpenter}, journal={Applied Numerical Mathematics}, year={2019}, volume={146}, pages={221-244} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqSDIRK/src/algorithms.jl#L1251-L1339">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../semiimplicit/ExponentialRK/">« OrdinaryDiffEqExponentialRK</a><a class="docs-footer-nextpage" href="../FIRK/">OrdinaryDiffEqFIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/index.html b/dev/index.html index 0f43839c42..077103b641 100644 --- a/dev/index.html +++ b/dev/index.html @@ -262,4 +262,4 @@ [8e850b90] libblastrampoline_jll v5.11.0+0 [8e850ede] nghttp2_jll v1.59.0+0 [3f19e933] p7zip_jll v17.4.0+2 -Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`</code></pre></details><p>You can also download the <a href="https://github.com/SciML/OrdinaryDiffEq.jl/tree/gh-pages/v6.90.0/assets/Manifest.toml">manifest</a> file and the <a href="https://github.com/SciML/OrdinaryDiffEq.jl/tree/gh-pages/v6.90.0/assets/Project.toml">project</a> file.</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="usage/">Usage »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`</code></pre></details><p>You can also download the <a href="https://github.com/SciML/OrdinaryDiffEq.jl/tree/gh-pages/v6.90.0/assets/Manifest.toml">manifest</a> file and the <a href="https://github.com/SciML/OrdinaryDiffEq.jl/tree/gh-pages/v6.90.0/assets/Project.toml">project</a> file.</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="usage/">Usage »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/dev/massmatrixdae/BDF/index.html b/dev/massmatrixdae/BDF/index.html index 5c143c31bd..16666064b6 100644 --- a/dev/massmatrixdae/BDF/index.html +++ b/dev/massmatrixdae/BDF/index.html @@ -29,7 +29,7 @@ smooth_est = true, extrapolant = :linear, controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 L-stable fixed leading coefficient multistep BDF method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ABDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>E. Alberdi Celayaa, J. J. Anza Aguirrezabalab, P. Chatzipantelidisc. Implementation of an Adaptive BDF2 Formula and Comparison with The MATLAB Ode15s. Procedia Computer Science, 29, pp 1014-1026, 2014. doi: https://doi.org/10.1016/j.procs.2014.05.091</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L78-L166">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QNDF-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QNDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 L-stable fixed leading coefficient multistep BDF method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ABDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>smooth_est</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>E. Alberdi Celayaa, J. J. Anza Aguirrezabalab, P. Chatzipantelidisc. Implementation of an Adaptive BDF2 Formula and Comparison with The MATLAB Ode15s. Procedia Computer Science, 29, pp 1014-1026, 2014. doi: https://doi.org/10.1016/j.procs.2014.05.091</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L78-L166">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QNDF-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QNDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -42,7 +42,7 @@ extrapolant = :linear, kappa = promote(-0.1850, -1 // 9, -0.0823, -0.0415, 0), controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L364-L459">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF1-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QNDF1-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QNDF1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF1(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L364-L459">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF1-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QNDF1-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QNDF1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF1(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -53,7 +53,7 @@ extrapolant = :linear, kappa = -0.1850, controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 1 quasi-constant timestep L-stable numerical differentiation function (NDF) method. Optional parameter kappa defaults to Shampine's accuracy-optimal -0.1850.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF1(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L253-L344">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF2-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QNDF2-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QNDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 1 quasi-constant timestep L-stable numerical differentiation function (NDF) method. Optional parameter kappa defaults to Shampine's accuracy-optimal -0.1850.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF1(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L253-L344">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QNDF2-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QNDF2-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QNDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">QNDF2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -64,7 +64,7 @@ extrapolant = :linear, kappa = -1 // 9, controller = :Standard, - step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 quasi-constant timestep L-stable numerical differentiation function (NDF) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L309-L399">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QBDF-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QBDF</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF: Multistep Method</p><p>An alias of <code>QNDF</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L539-L543">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF1-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QBDF1-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QBDF1</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF1: Multistep Method</p><p>An alias of <code>QNDF1</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L525-L529">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF2-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QBDF2-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QBDF2</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF2: Multistep Method</p><p>An alias of <code>QNDF2</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L532-L536">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.MEBDF2-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.MEBDF2-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.MEBDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MEBDF2(; chunk_size = Val{0}(), + step_limiter! = trivial_limiter!)</code></pre><p>Multistep Method. An adaptive order 2 quasi-constant timestep L-stable numerical differentiation function (NDF) method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>QNDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>kappa</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><p>@article{shampine1997matlab, title={The matlab ode suite}, author={Shampine, Lawrence F and Reichelt, Mark W}, journal={SIAM journal on scientific computing}, volume={18}, number={1}, pages={1–22}, year={1997}, publisher={SIAM} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L309-L399">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QBDF-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QBDF</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF: Multistep Method</p><p>An alias of <code>QNDF</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L539-L543">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF1-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QBDF1-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QBDF1</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF1: Multistep Method</p><p>An alias of <code>QNDF1</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L525-L529">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.QBDF2-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.QBDF2-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.QBDF2</code></a> — <span class="docstring-category">Function</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>QBDF2: Multistep Method</p><p>An alias of <code>QNDF2</code> with κ=0.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L532-L536">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.MEBDF2-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.MEBDF2-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.MEBDF2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MEBDF2(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -72,7 +72,7 @@ linsolve = nothing, precs = DEFAULT_PRECS, nlsolve = NLNewton(), - extrapolant = :constant)</code></pre><p>Multistep Method. The second order Modified Extended BDF method, which has improved stability properties over the standard BDF. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>MEBDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{cash2000modified, title={Modified extended backward differentiation formulae for the numerical solution of stiff initial value problems in ODEs and DAEs}, author={Cash, JR}, journal={Journal of Computational and Applied Mathematics}, volume={125}, number={1-2}, pages={117–130}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L428-L513">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.FBDF-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.FBDF-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.FBDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FBDF(; chunk_size = Val{0}(), + extrapolant = :constant)</code></pre><p>Multistep Method. The second order Modified Extended BDF method, which has improved stability properties over the standard BDF. Fixed timestep only.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>MEBDF2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{cash2000modified, title={Modified extended backward differentiation formulae for the numerical solution of stiff initial value problems in ODEs and DAEs}, author={Cash, JR}, journal={Journal of Computational and Applied Mathematics}, volume={125}, number={1-2}, pages={117–130}, year={2000}, publisher={Elsevier}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L428-L513">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqBDF.FBDF-massmatrixdae-BDF" href="#OrdinaryDiffEqBDF.FBDF-massmatrixdae-BDF"><code>OrdinaryDiffEqBDF.FBDF</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">FBDF(; chunk_size = Val{0}(), autodiff = true, standardtag = Val{true}(), concrete_jac = nothing, @@ -85,4 +85,4 @@ extrapolant = :linear, controller = :Standard, step_limiter! = trivial_limiter!, - max_order::Val{MO} = Val{5}())</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Fixed leading coefficient BDF. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>FBDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>max_order</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{shampine2002solving, title={Solving 0= F (t, y (t), y′(t)) in Matlab}, author={Shampine, Lawrence F}, year={2002}, publisher={Walter de Gruyter GmbH \& Co. KG}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L468-L559">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Rosenbrock/">« OrdinaryDiffEqRosenbrock</a><a class="docs-footer-nextpage" href="../../fullyimplicitdae/BDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + max_order::Val{MO} = Val{5}())</code></pre><p>Multistep Method. An adaptive order quasi-constant timestep NDF method. Fixed leading coefficient BDF. Utilizes Shampine's accuracy-optimal kappa values as defaults (has a keyword argument for a tuple of kappa coefficients).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>FBDF(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre>/n- <code>κ</code>: TBD</li><li><code>tol</code>: TBD</li><li><code>nlsolve</code>: TBD</li><li><code>extrapolant</code>: TBD</li><li><code>controller</code>: TBD</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li><li><code>max_order</code>: TBD</li></ul><p><strong>References</strong></p><p>@article{shampine2002solving, title={Solving 0= F (t, y (t), y′(t)) in Matlab}, author={Shampine, Lawrence F}, year={2002}, publisher={Walter de Gruyter GmbH \& Co. KG}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqBDF/src/algorithms.jl#L468-L559">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Rosenbrock/">« OrdinaryDiffEqRosenbrock</a><a class="docs-footer-nextpage" href="../../fullyimplicitdae/BDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/massmatrixdae/Rosenbrock/index.html b/dev/massmatrixdae/Rosenbrock/index.html index 7f087b2e31..a18bcce1af 100644 --- a/dev/massmatrixdae/Rosenbrock/index.html +++ b/dev/massmatrixdae/Rosenbrock/index.html @@ -23,14 +23,14 @@ diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method which is good for very stiff equations with oscillations at low tolerances. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock23(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L914-L990">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rosenbrock32-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rosenbrock32-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rosenbrock32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rosenbrock32(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method which is good for very stiff equations with oscillations at low tolerances. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock23(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L914-L990">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rosenbrock32-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rosenbrock32-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rosenbrock32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rosenbrock32(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 3/2 A-Stable Rosenbrock-W method which is good for mildly stiff equations without oscillations at low tolerances. Note that this method is prone to instability in the presence of oscillations, so use with caution. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock32(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L925-L1001">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 3/2 A-Stable Rosenbrock-W method which is good for mildly stiff equations without oscillations at low tolerances. Note that this method is prone to instability in the presence of oscillations, so use with caution. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock32(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L925-L1001">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -84,7 +84,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method. Keeps high accuracy on discretizations of nonlinear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Lang, J. & Verwer, ROS3P—An Accurate Third-Order Rosenbrock Solver Designed for Parabolic Problems J. BIT Numerical Mathematics (2001) 41: 731. doi:10.1023/A:1021900219772</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L936-L1012">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas3-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method. Keeps high accuracy on discretizations of nonlinear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Lang, J. & Verwer, ROS3P—An Accurate Third-Order Rosenbrock Solver Designed for Parabolic Problems J. BIT Numerical Mathematics (2001) 41: 731. doi:10.1023/A:1021900219772</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L936-L1012">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas3-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -138,14 +138,14 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1032-L1109">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas23W-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas23W-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas23W</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas23W(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1032-L1109">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas23W-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas23W-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas23W</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas23W(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method for stiff ODEs and DAEs in mass matrix form. 2nd order stiff-aware interpolation and additional error test for interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas23W(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L947-L1023">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas3P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method for stiff ODEs and DAEs in mass matrix form. 2nd order stiff-aware interpolation and additional error test for interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas23W(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L947-L1023">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas3P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -199,7 +199,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant and additional error test for interpolation. Keeps accuracy on discretizations of linear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1044-L1122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant and additional error test for interpolation. Keeps accuracy on discretizations of linear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1044-L1122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -253,7 +253,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order L-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1057-L1133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas42-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas42-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas42(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order L-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1057-L1133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas42-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas42-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas42(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -307,7 +307,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1080-L1156">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas4P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas4P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1080-L1156">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas4P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas4P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -361,14 +361,14 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems (as opposed to lower if not corrected).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1091-L1170">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas4P2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas4P2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P2(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems (as opposed to lower if not corrected).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1091-L1170">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas4P2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas4P2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P2(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems. It is an improvement of Roadas4P and in case of inexact Jacobians a second order W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas4P2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1105-L1184">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems. It is an improvement of Roadas4P and in case of inexact Jacobians a second order W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas4P2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1105-L1184">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -422,34 +422,34 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Di Marzo G. RODAS5(4) – Méthodes de Rosenbrock d’ordre 5(4) adaptées aux problemes différentiels-algébriques. MSc mathematics thesis, Faculty of Science, University of Geneva, Switzerland.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1119-L1196">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5P(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Di Marzo G. RODAS5(4) – Méthodes de Rosenbrock d’ordre 5(4) adaptées aux problemes différentiels-algébriques. MSc mathematics thesis, Faculty of Science, University of Geneva, Switzerland.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1119-L1196">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5P-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5P-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5P(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5P(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1131-L1209">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pe-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5Pe-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5Pe</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pe(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5P(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1131-L1209">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pe-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5Pe-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5Pe</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pe(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pe(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1157-L1235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pr-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5Pr-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5Pr</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pr(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pe(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1157-L1235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pr-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Rodas5Pr-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Rodas5Pr</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pr(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pr(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1144-L1222">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosenbrockW6S4OS(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pr(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1144-L1222">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosenbrockW6S4OS(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method (fixed step only).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RosenbrockW6S4OS(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>https://doi.org/10.1016/j.cam.2009.09.017</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/algorithms.jl#L142-L215">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method (fixed step only).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RosenbrockW6S4OS(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>https://doi.org/10.1016/j.cam.2009.09.017</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/algorithms.jl#L142-L215">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -502,7 +502,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. A 2nd order L-stable Rosenbrock method with 2 internal stages.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>J. G. Verwer et al. (1999): A second-order Rosenbrock method applied to photochemical dispersion problems https://doi.org/10.1137/S1064827597326651</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1253-L1327">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2PR-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS2PR-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS2PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. A 2nd order L-stable Rosenbrock method with 2 internal stages.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>J. G. Verwer et al. (1999): A second-order Rosenbrock method applied to photochemical dispersion problems https://doi.org/10.1137/S1064827597326651</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1253-L1327">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2PR-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS2PR-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS2PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -555,13 +555,13 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 2nd order stiffly accurate Rosenbrock method with 3 internal stages with (Rinf=0). For problems with medium stiffness the convergence behaviour is very poor and it is recommended to use <a href="../../semiimplicit/Rosenbrock/#OrdinaryDiffEqRosenbrock.ROS2S"><code>ROS2S</code></a> instead.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1288-L1365">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2S-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS2S-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS2S</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2S(; chunk_size = Val{0}(), + ```)</code></pre><p>Rosenbrock-Wanner Method. 2nd order stiffly accurate Rosenbrock method with 3 internal stages with (Rinf=0). For problems with medium stiffness the convergence behaviour is very poor and it is recommended to use <a href="../../semiimplicit/Rosenbrock/#OrdinaryDiffEqRosenbrock.ROS2S"><code>ROS2S</code></a> instead.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1288-L1365">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2S-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS2S-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS2S</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2S(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 2nd order stiffly accurate Rosenbrock-Wanner W-method with 3 internal stages with B_PR consistent of order 2 with (Rinf=0).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS2S(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1327-L1402">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 2nd order stiffly accurate Rosenbrock-Wanner W-method with 3 internal stages with B_PR consistent of order 2 with (Rinf=0).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS2S(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1327-L1402">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -614,7 +614,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order L-stable Rosenbrock method with 3 internal stages with an embedded strongly A-stable 2nd order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1361-L1436">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PR-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3PR-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order L-stable Rosenbrock method with 3 internal stages with an embedded strongly A-stable 2nd order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1361-L1436">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PR-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3PR-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -667,7 +667,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1395-L1470">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Scholz4_7-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Scholz4_7-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Scholz4_7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Scholz4_7(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1395-L1470">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Scholz4_7-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Scholz4_7-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Scholz4_7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Scholz4_7(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -720,37 +720,37 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73. Convergence with order 4 for the stiff case, but has a poor accuracy.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1431-L1507">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1a-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW1a-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW1a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1a(; chunk_size = Val{0}(), + ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73. Convergence with order 4 for the stiff case, but has a poor accuracy.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1431-L1507">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1a-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW1a-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW1a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1a(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L958-L1038">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1b-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW1b-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW1b</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1b(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L958-L1038">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1b-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW1b-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW1b</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1b(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1b(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L974-L1054">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW2(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1b(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L974-L1054">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW2(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order stiffy accurate Rosenbrock-W method for PDAEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L990-L1070">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW3-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW3-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW3(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order stiffy accurate Rosenbrock-W method for PDAEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L990-L1070">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW3-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PW3-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PW3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW3(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order strongly A-stable (Rinf~0.63) Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1006-L1086">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PRw-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PRw-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PRw</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PRw(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order strongly A-stable (Rinf~0.63) Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1006-L1086">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PRw-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS34PRw-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS34PRw</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PRw(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 3rd order stiffly accurate Rosenbrock-Wanner W-method with 4 internal stages, B_PR consistent of order 2. The order of convergence decreases if medium stiff problems are considered.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PRw(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Joachim Rang, Improved traditional Rosenbrock–Wanner methods for stiff ODEs and DAEs, Journal of Computational and Applied Mathematics, https://doi.org/10.1016/j.cam.2015.03.010</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1622-L1699">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3PRL-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3PRL</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 3rd order stiffly accurate Rosenbrock-Wanner W-method with 4 internal stages, B_PR consistent of order 2. The order of convergence decreases if medium stiff problems are considered.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PRw(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Joachim Rang, Improved traditional Rosenbrock–Wanner methods for stiff ODEs and DAEs, Journal of Computational and Applied Mathematics, https://doi.org/10.1016/j.cam.2015.03.010</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1622-L1699">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3PRL-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3PRL</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -803,7 +803,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 2 with Rinf=0. The order of convergence decreases if medium stiff problems are considered, but it has good results for very stiff cases.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1661-L1738">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3PRL2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3PRL2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 2 with Rinf=0. The order of convergence decreases if medium stiff problems are considered, but it has good results for very stiff cases.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1661-L1738">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL2-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROS3PRL2-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROS3PRL2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -856,13 +856,13 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 3. The order of convergence does NOT decreases if medium stiff problems are considered as it does for <a href="../../semiimplicit/Rosenbrock/#OrdinaryDiffEqRosenbrock.ROS3PRL"><code>ROS3PRL</code></a>.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1701-L1778">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROK4a-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROK4a-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROK4a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROK4a(; chunk_size = Val{0}(), + ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 3. The order of convergence does NOT decreases if medium stiff problems are considered as it does for <a href="../../semiimplicit/Rosenbrock/#OrdinaryDiffEqRosenbrock.ROS3PRL"><code>ROS3PRL</code></a>.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1701-L1778">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROK4a-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.ROK4a-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.ROK4a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROK4a(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 4rd order L-stable Rosenbrock-Krylov method with 4 internal stages, with a 3rd order embedded method which is strongly A-stable with Rinf~=0.55. (when using exact Jacobians)</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROK4a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Tranquilli, Paul and Sandu, Adrian (2014): Rosenbrock–Krylov Methods for Large Systems of Differential Equations https://doi.org/10.1137/130923336</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1739-L1815">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosShamp4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.RosShamp4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.RosShamp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosShamp4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 4rd order L-stable Rosenbrock-Krylov method with 4 internal stages, with a 3rd order embedded method which is strongly A-stable with Rinf~=0.55. (when using exact Jacobians)</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROK4a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Tranquilli, Paul and Sandu, Adrian (2014): Rosenbrock–Krylov Methods for Large Systems of Differential Equations https://doi.org/10.1137/130923336</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1739-L1815">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosShamp4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.RosShamp4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.RosShamp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosShamp4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -915,7 +915,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>L. F. Shampine, Implementation of Rosenbrock Methods, ACM Transactions on Mathematical Software (TOMS), 8: 2, 93-113. doi:10.1145/355993.355994</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1022-L1096">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Veldd4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Veldd4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Veldd4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Veldd4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>L. F. Shampine, Implementation of Rosenbrock Methods, ACM Transactions on Mathematical Software (TOMS), 8: 2, 93-113. doi:10.1145/355993.355994</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1022-L1096">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Veldd4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Veldd4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Veldd4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Veldd4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -969,14 +969,14 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order D-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1192-L1268">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Velds4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Velds4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Velds4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Velds4(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order D-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1192-L1268">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Velds4-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Velds4-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Velds4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Velds4(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order A-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Velds4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1203-L1279">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4T-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.GRK4T-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.GRK4T</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4T(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order A-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Velds4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1203-L1279">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4T-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.GRK4T-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.GRK4T</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4T(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -1030,7 +1030,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An efficient 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1170-L1246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4A-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.GRK4A-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.GRK4A</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4A(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An efficient 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1170-L1246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4A-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.GRK4A-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.GRK4A</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4A(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -1084,7 +1084,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method. Essentially "anti-L-stable" but efficient.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1181-L1257">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Ros4LStab-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Ros4LStab-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Ros4LStab</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ros4LStab(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method. Essentially "anti-L-stable" but efficient.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1181-L1257">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Ros4LStab-massmatrixdae-Rosenbrock" href="#OrdinaryDiffEqRosenbrock.Ros4LStab-massmatrixdae-Rosenbrock"><code>OrdinaryDiffEqRosenbrock.Ros4LStab</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ros4LStab(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -1138,4 +1138,4 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1068-L1144">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../semilinear/Linear/">« OrdinaryDiffEqLinear</a><a class="docs-footer-nextpage" href="../BDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1068-L1144">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../semilinear/Linear/">« OrdinaryDiffEqLinear</a><a class="docs-footer-nextpage" href="../BDF/">OrdinaryDiffEqBDF »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/misc/index.html b/dev/misc/index.html index 5ca88c0ad0..3909217359 100644 --- a/dev/misc/index.html +++ b/dev/misc/index.html @@ -3,4 +3,4 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-90474609-3', {'page_path': location.pathname + location.search + location.hash}); -</script><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img src="../assets/logo.png" alt="OrdinaryDiffEq.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit"><a href="../">OrdinaryDiffEq.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../">OrdinaryDiffEq.jl: ODE solvers and utilities</a></li><li><a class="tocitem" href="../usage/">Usage</a></li><li><span class="tocitem">Explicit Solvers</span><ul><li><a class="tocitem" href="../explicit/Tsit5/">OrdinaryDiffEqTsit5</a></li><li><a class="tocitem" href="../explicit/Verner/">OrdinaryDiffEqVerner</a></li><li><a class="tocitem" href="../explicit/AdamsBashforthMoulton/">OrdinaryDiffEqAdamsBashforthMoulton</a></li><li><a class="tocitem" href="../explicit/LowStorageRK/">OrdinaryDiffEqLowStorageRK</a></li><li><a class="tocitem" href="../explicit/SSPRK/">OrdinaryDiffEqSSPRK</a></li><li><a class="tocitem" href="../explicit/LowOrderRK/">OrdinaryDiffEqLowOrderRK</a></li><li><a class="tocitem" href="../explicit/HighOrderRK/">OrdinaryDiffEqHighOrderRK</a></li><li><a class="tocitem" href="../explicit/Feagin/">OrdinaryDiffEqFeagin</a></li><li><a class="tocitem" href="../explicit/PRK/">OrdinaryDiffEqPRK</a></li><li><a class="tocitem" href="../explicit/QPRK/">OrdinaryDiffEqQPRK</a></li><li><a class="tocitem" href="../explicit/Extrapolation/">OrdinaryDiffEqExtrapolation</a></li></ul></li><li><span class="tocitem">Semi-Implicit Solvers</span><ul><li><a class="tocitem" href="../semiimplicit/Rosenbrock/">OrdinaryDiffEqRosenbrock</a></li><li><a class="tocitem" href="../semiimplicit/StabilizedRK/">OrdinaryDiffEqStabilizedRK</a></li><li><a class="tocitem" href="../semiimplicit/ExponentialRK/">OrdinaryDiffEqExponentialRK</a></li></ul></li><li><span class="tocitem">Implicit Solvers</span><ul><li><a class="tocitem" href="../implicit/SDIRK/">OrdinaryDiffEqSDIRK</a></li><li><a class="tocitem" href="../implicit/FIRK/">OrdinaryDiffEqFIRK</a></li><li><a class="tocitem" href="../implicit/BDF/">OrdinaryDiffEqBDF</a></li><li><a class="tocitem" href="../implicit/Extrapolation/">OrdinaryDiffEqExtrapolation</a></li><li><a class="tocitem" href="../implicit/PDIRK/">OrdinaryDiffEqPDIRK</a></li><li><a class="tocitem" href="../implicit/Nordsieck/">OrdinaryDiffEqNordsieck</a></li></ul></li><li><span class="tocitem">IMEX Solvers</span><ul><li><a class="tocitem" href="../imex/IMEXMultistep/">OrdinaryDiffEqIMEXMultistep</a></li><li><a class="tocitem" href="../imex/StabilizedIRK/">OrdinaryDiffEqStabilizedIRK</a></li><li><a class="tocitem" href="../imex/IMEXBDF/">OrdinaryDiffEqBDF</a></li></ul></li><li><span class="tocitem">Dynamical ODE Explicit Solvers</span><ul><li><a class="tocitem" href="../dynamicalodeexplicit/RKN/">OrdinaryDiffEqRKN</a></li><li><a class="tocitem" href="../dynamicalodeexplicit/SymplecticRK/">OrdinaryDiffEqSymplecticRK</a></li></ul></li><li><span class="tocitem">Semilinear ODE Solvers</span><ul><li><a class="tocitem" href="../semilinear/ExponentialRK/">OrdinaryDiffEqExponentialRK</a></li><li><a class="tocitem" href="../semilinear/Linear/">OrdinaryDiffEqLinear</a></li></ul></li><li><span class="tocitem">Mass Matrix DAE Solvers</span><ul><li><a class="tocitem" href="../massmatrixdae/Rosenbrock/">OrdinaryDiffEqRosenbrock</a></li><li><a class="tocitem" href="../massmatrixdae/BDF/">OrdinaryDiffEqBDF</a></li></ul></li><li><span class="tocitem">Fully Implicit DAE Solvers</span><ul><li><a class="tocitem" href="../fullyimplicitdae/BDF/">OrdinaryDiffEqBDF</a></li></ul></li><li><span class="tocitem">Misc Solvers</span><ul><li class="is-active"><a class="tocitem" href>-</a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Misc Solvers</a></li><li class="is-active"><a href>-</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>-</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/SciML/OrdinaryDiffEq.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/docs/src/misc.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>SplitEuler</code>. Check Documenter's build log for details.</p></div></div><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>CompositeAlgorithm</code>. Check Documenter's build log for details.</p></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../fullyimplicitdae/BDF/">« OrdinaryDiffEqBDF</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +</script><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img src="../assets/logo.png" alt="OrdinaryDiffEq.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit"><a href="../">OrdinaryDiffEq.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../">OrdinaryDiffEq.jl: ODE solvers and utilities</a></li><li><a class="tocitem" href="../usage/">Usage</a></li><li><span class="tocitem">Explicit Solvers</span><ul><li><a class="tocitem" href="../explicit/Tsit5/">OrdinaryDiffEqTsit5</a></li><li><a class="tocitem" href="../explicit/Verner/">OrdinaryDiffEqVerner</a></li><li><a class="tocitem" href="../explicit/AdamsBashforthMoulton/">OrdinaryDiffEqAdamsBashforthMoulton</a></li><li><a class="tocitem" href="../explicit/LowStorageRK/">OrdinaryDiffEqLowStorageRK</a></li><li><a class="tocitem" href="../explicit/SSPRK/">OrdinaryDiffEqSSPRK</a></li><li><a class="tocitem" href="../explicit/LowOrderRK/">OrdinaryDiffEqLowOrderRK</a></li><li><a class="tocitem" href="../explicit/HighOrderRK/">OrdinaryDiffEqHighOrderRK</a></li><li><a class="tocitem" href="../explicit/Feagin/">OrdinaryDiffEqFeagin</a></li><li><a class="tocitem" href="../explicit/PRK/">OrdinaryDiffEqPRK</a></li><li><a class="tocitem" href="../explicit/QPRK/">OrdinaryDiffEqQPRK</a></li><li><a class="tocitem" href="../explicit/Extrapolation/">OrdinaryDiffEqExtrapolation</a></li></ul></li><li><span class="tocitem">Semi-Implicit Solvers</span><ul><li><a class="tocitem" href="../semiimplicit/Rosenbrock/">OrdinaryDiffEqRosenbrock</a></li><li><a class="tocitem" href="../semiimplicit/StabilizedRK/">OrdinaryDiffEqStabilizedRK</a></li><li><a class="tocitem" href="../semiimplicit/ExponentialRK/">OrdinaryDiffEqExponentialRK</a></li></ul></li><li><span class="tocitem">Implicit Solvers</span><ul><li><a class="tocitem" href="../implicit/SDIRK/">OrdinaryDiffEqSDIRK</a></li><li><a class="tocitem" href="../implicit/FIRK/">OrdinaryDiffEqFIRK</a></li><li><a class="tocitem" href="../implicit/BDF/">OrdinaryDiffEqBDF</a></li><li><a class="tocitem" href="../implicit/Extrapolation/">OrdinaryDiffEqExtrapolation</a></li><li><a class="tocitem" href="../implicit/PDIRK/">OrdinaryDiffEqPDIRK</a></li><li><a class="tocitem" href="../implicit/Nordsieck/">OrdinaryDiffEqNordsieck</a></li></ul></li><li><span class="tocitem">IMEX Solvers</span><ul><li><a class="tocitem" href="../imex/IMEXMultistep/">OrdinaryDiffEqIMEXMultistep</a></li><li><a class="tocitem" href="../imex/StabilizedIRK/">OrdinaryDiffEqStabilizedIRK</a></li><li><a class="tocitem" href="../imex/IMEXBDF/">OrdinaryDiffEqBDF</a></li></ul></li><li><span class="tocitem">Dynamical ODE Explicit Solvers</span><ul><li><a class="tocitem" href="../dynamicalodeexplicit/RKN/">OrdinaryDiffEqRKN</a></li><li><a class="tocitem" href="../dynamicalodeexplicit/SymplecticRK/">OrdinaryDiffEqSymplecticRK</a></li></ul></li><li><span class="tocitem">Semilinear ODE Solvers</span><ul><li><a class="tocitem" href="../semilinear/ExponentialRK/">OrdinaryDiffEqExponentialRK</a></li><li><a class="tocitem" href="../semilinear/Linear/">OrdinaryDiffEqLinear</a></li></ul></li><li><span class="tocitem">Mass Matrix DAE Solvers</span><ul><li><a class="tocitem" href="../massmatrixdae/Rosenbrock/">OrdinaryDiffEqRosenbrock</a></li><li><a class="tocitem" href="../massmatrixdae/BDF/">OrdinaryDiffEqBDF</a></li></ul></li><li><span class="tocitem">Fully Implicit DAE Solvers</span><ul><li><a class="tocitem" href="../fullyimplicitdae/BDF/">OrdinaryDiffEqBDF</a></li></ul></li><li><span class="tocitem">Misc Solvers</span><ul><li class="is-active"><a class="tocitem" href>-</a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Misc Solvers</a></li><li class="is-active"><a href>-</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>-</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/SciML/OrdinaryDiffEq.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/docs/src/misc.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>SplitEuler</code>. Check Documenter's build log for details.</p></div></div><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>CompositeAlgorithm</code>. Check Documenter's build log for details.</p></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../fullyimplicitdae/BDF/">« OrdinaryDiffEqBDF</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/dev/semiimplicit/ExponentialRK/index.html b/dev/semiimplicit/ExponentialRK/index.html index 8bdaf1bca0..d750f02a19 100644 --- a/dev/semiimplicit/ExponentialRK/index.html +++ b/dev/semiimplicit/ExponentialRK/index.html @@ -17,30 +17,30 @@ prob = ODEProblem(lorenz!, u0, tspan) sol = solve(prob, EPIRK5s3())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.LawsonEuler-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.LawsonEuler-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.LawsonEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LawsonEuler(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver First order exponential Euler scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.NorsettEuler-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.NorsettEuler-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.NorsettEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NorsettEuler(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver First order exponential Euler scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.NorsettEuler-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.NorsettEuler-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.NorsettEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NorsettEuler(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver First order exponential-RK scheme. Alias: <code>ETD1</code></p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETD2-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETD2-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETD2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>ETD2: Exponential Runge-Kutta Method Second order Exponential Time Differencing method (in development).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L143-L146">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK2-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETDRK2-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETDRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK2(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver First order exponential-RK scheme. Alias: <code>ETD1</code></p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETD2-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETD2-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETD2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>ETD2: Exponential Runge-Kutta Method Second order Exponential Time Differencing method (in development).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L143-L146">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK2-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETDRK2-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETDRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK2(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 2nd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK3-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETDRK3-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETDRK3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK3(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver 2nd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK3-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETDRK3-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETDRK3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK3(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 3rd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK4-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETDRK4-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETDRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver 3rd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK4-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.ETDRK4-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.ETDRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.HochOst4-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.HochOst4-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.HochOst4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">HochOst4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.HochOst4-semiimplicit-ExponentialRK" href="#OrdinaryDiffEqExponentialRK.HochOst4-semiimplicit-ExponentialRK"><code>OrdinaryDiffEqExponentialRK.HochOst4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">HochOst4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><h3 id="Adaptive-Exponential-Rosenbrock-Methods"><a class="docs-heading-anchor" href="#Adaptive-Exponential-Rosenbrock-Methods">Adaptive Exponential Rosenbrock Methods</a><a id="Adaptive-Exponential-Rosenbrock-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Adaptive-Exponential-Rosenbrock-Methods" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.Exprb32" href="#OrdinaryDiffEqExponentialRK.Exprb32"><code>OrdinaryDiffEqExponentialRK.Exprb32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Exprb32(; m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 3rd order adaptive Exponential-Rosenbrock scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, M., & Ostermann, A. (2010). Exponential integrators. Acta Numerica, 19, 209-286. (https://doi.org/10.1017/S0962492910000048)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L58-L74">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.Exprb43" href="#OrdinaryDiffEqExponentialRK.Exprb43"><code>OrdinaryDiffEqExponentialRK.Exprb43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Exprb43(; m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order adaptive Exponential-Rosenbrock scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, M., & Ostermann, A. (2010). Exponential integrators. Acta Numerica, 19, 209-286. (https://doi.org/10.1017/S0962492910000048)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L58-L74">source</a></section></article><h3 id="Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)"><a class="docs-heading-anchor" href="#Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)">Exponential Propagation Iterative Runge-Kutta Methods (EPIRK)</a><a id="Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)-1"></a><a class="docs-heading-anchor-permalink" href="#Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.Exp4" href="#OrdinaryDiffEqExponentialRK.Exp4"><code>OrdinaryDiffEqExponentialRK.Exp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Exp4(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><h3 id="Adaptive-Exponential-Rosenbrock-Methods"><a class="docs-heading-anchor" href="#Adaptive-Exponential-Rosenbrock-Methods">Adaptive Exponential Rosenbrock Methods</a><a id="Adaptive-Exponential-Rosenbrock-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Adaptive-Exponential-Rosenbrock-Methods" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.Exprb32" href="#OrdinaryDiffEqExponentialRK.Exprb32"><code>OrdinaryDiffEqExponentialRK.Exprb32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Exprb32(; m = 30, + iop = 0)</code></pre><p>Semilinear ODE solver 3rd order adaptive Exponential-Rosenbrock scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, M., & Ostermann, A. (2010). Exponential integrators. Acta Numerica, 19, 209-286. (https://doi.org/10.1017/S0962492910000048)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L58-L74">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.Exprb43" href="#OrdinaryDiffEqExponentialRK.Exprb43"><code>OrdinaryDiffEqExponentialRK.Exprb43</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Exprb43(; m = 30, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order adaptive Exponential-Rosenbrock scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, M., & Ostermann, A. (2010). Exponential integrators. Acta Numerica, 19, 209-286. (https://doi.org/10.1017/S0962492910000048)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L58-L74">source</a></section></article><h3 id="Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)"><a class="docs-heading-anchor" href="#Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)">Exponential Propagation Iterative Runge-Kutta Methods (EPIRK)</a><a id="Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)-1"></a><a class="docs-heading-anchor-permalink" href="#Exponential-Propagation-Iterative-Runge-Kutta-Methods-(EPIRK)" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.Exp4" href="#OrdinaryDiffEqExponentialRK.Exp4"><code>OrdinaryDiffEqExponentialRK.Exp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Exp4(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order EPIRK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, M., Lubich, C., & Selhofer, H. (1998). Exponential integrators for large systems of differential equations. SIAM Journal on Scientific Computing, 19(5), 1552-1574. (https://doi.org/10.1137/S1064827595295337)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK4s3A" href="#OrdinaryDiffEqExponentialRK.EPIRK4s3A"><code>OrdinaryDiffEqExponentialRK.EPIRK4s3A</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK4s3A(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order EPIRK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, M., Lubich, C., & Selhofer, H. (1998). Exponential integrators for large systems of differential equations. SIAM Journal on Scientific Computing, 19(5), 1552-1574. (https://doi.org/10.1137/S1064827595295337)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK4s3A" href="#OrdinaryDiffEqExponentialRK.EPIRK4s3A"><code>OrdinaryDiffEqExponentialRK.EPIRK4s3A</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK4s3A(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order EPIRK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK4s3B" href="#OrdinaryDiffEqExponentialRK.EPIRK4s3B"><code>OrdinaryDiffEqExponentialRK.EPIRK4s3B</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK4s3B(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order EPIRK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK4s3B" href="#OrdinaryDiffEqExponentialRK.EPIRK4s3B"><code>OrdinaryDiffEqExponentialRK.EPIRK4s3B</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK4s3B(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order EPIRK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK5s3" href="#OrdinaryDiffEqExponentialRK.EPIRK5s3"><code>OrdinaryDiffEqExponentialRK.EPIRK5s3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK5s3(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order EPIRK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK5s3" href="#OrdinaryDiffEqExponentialRK.EPIRK5s3"><code>OrdinaryDiffEqExponentialRK.EPIRK5s3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK5s3(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 5th order “horizontal” EPIRK scheme with stiff order 5. Broken.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EXPRB53s3" href="#OrdinaryDiffEqExponentialRK.EXPRB53s3"><code>OrdinaryDiffEqExponentialRK.EXPRB53s3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EXPRB53s3(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 5th order “horizontal” EPIRK scheme with stiff order 5. Broken.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EXPRB53s3" href="#OrdinaryDiffEqExponentialRK.EXPRB53s3"><code>OrdinaryDiffEqExponentialRK.EXPRB53s3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EXPRB53s3(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 5th order EPIRK scheme with stiff order 5.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK5P1" href="#OrdinaryDiffEqExponentialRK.EPIRK5P1"><code>OrdinaryDiffEqExponentialRK.EPIRK5P1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK5P1(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 5th order EPIRK scheme with stiff order 5.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Rainwater, G., & Tokman, M. (2016). A new approach to constructing efficient stiffly accurate EPIRK methods. Journal of Computational Physics, 323, 283-309. (https://doi.org/10.1016/j.jcp.2016.07.026)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK5P1" href="#OrdinaryDiffEqExponentialRK.EPIRK5P1"><code>OrdinaryDiffEqExponentialRK.EPIRK5P1</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK5P1(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 5th order EPIRK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Tokman, M., Loffeld, J., & Tranquilli, P. (2012). New Adaptive Exponential Propagation Iterative Methods of Runge–Kutta Type. SIAM Journal on Scientific Computing, 34(5), A2650-A2669. (https://doi.org/10.1137/110849961)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK5P2" href="#OrdinaryDiffEqExponentialRK.EPIRK5P2"><code>OrdinaryDiffEqExponentialRK.EPIRK5P2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK5P2(; adaptive_krylov = true, + iop = 0)</code></pre><p>Semilinear ODE solver 5th order EPIRK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Tokman, M., Loffeld, J., & Tranquilli, P. (2012). New Adaptive Exponential Propagation Iterative Methods of Runge–Kutta Type. SIAM Journal on Scientific Computing, 34(5), A2650-A2669. (https://doi.org/10.1137/110849961)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.EPIRK5P2" href="#OrdinaryDiffEqExponentialRK.EPIRK5P2"><code>OrdinaryDiffEqExponentialRK.EPIRK5P2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">EPIRK5P2(; adaptive_krylov = true, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 5th order EPIRK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Tokman, M., Loffeld, J., & Tranquilli, P. (2012). New Adaptive Exponential Propagation Iterative Methods of Runge–Kutta Type. SIAM Journal on Scientific Computing, 34(5), A2650-A2669. (https://doi.org/10.1137/110849961)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../StabilizedRK/">« OrdinaryDiffEqStabilizedRK</a><a class="docs-footer-nextpage" href="../../implicit/SDIRK/">OrdinaryDiffEqSDIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + iop = 0)</code></pre><p>Semilinear ODE solver 5th order EPIRK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>adaptive_krylov</code>: Determines if the adaptive Krylov algorithm with timestepping of Neisen & Wright is used.</li><li><code>m</code>: Controls the size of Krylov subspace. - <code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Tokman, M., Loffeld, J., & Tranquilli, P. (2012). New Adaptive Exponential Propagation Iterative Methods of Runge–Kutta Type. SIAM Journal on Scientific Computing, 34(5), A2650-A2669. (https://doi.org/10.1137/110849961)</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L111-L129">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../StabilizedRK/">« OrdinaryDiffEqStabilizedRK</a><a class="docs-footer-nextpage" href="../../implicit/SDIRK/">OrdinaryDiffEqSDIRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/semiimplicit/Rosenbrock/index.html b/dev/semiimplicit/Rosenbrock/index.html index 5cd7a302de..58ddede859 100644 --- a/dev/semiimplicit/Rosenbrock/index.html +++ b/dev/semiimplicit/Rosenbrock/index.html @@ -21,14 +21,14 @@ diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method which is good for very stiff equations with oscillations at low tolerances. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock23(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L914-L990">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rosenbrock32" href="#OrdinaryDiffEqRosenbrock.Rosenbrock32"><code>OrdinaryDiffEqRosenbrock.Rosenbrock32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rosenbrock32(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method which is good for very stiff equations with oscillations at low tolerances. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock23(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L914-L990">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rosenbrock32" href="#OrdinaryDiffEqRosenbrock.Rosenbrock32"><code>OrdinaryDiffEqRosenbrock.Rosenbrock32</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rosenbrock32(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 3/2 A-Stable Rosenbrock-W method which is good for mildly stiff equations without oscillations at low tolerances. Note that this method is prone to instability in the presence of oscillations, so use with caution. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock32(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L925-L1001">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3P" href="#OrdinaryDiffEqRosenbrock.ROS3P"><code>OrdinaryDiffEqRosenbrock.ROS3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 3/2 A-Stable Rosenbrock-W method which is good for mildly stiff equations without oscillations at low tolerances. Note that this method is prone to instability in the presence of oscillations, so use with caution. 2nd order stiff-aware interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rosenbrock32(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Shampine L.F. and Reichelt M., (1997) The MATLAB ODE Suite, SIAM Journal of</li></ul><p>Scientific Computing, 18 (1), pp. 1-22.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L925-L1001">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3P" href="#OrdinaryDiffEqRosenbrock.ROS3P"><code>OrdinaryDiffEqRosenbrock.ROS3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -82,7 +82,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method. Keeps high accuracy on discretizations of nonlinear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Lang, J. & Verwer, ROS3P—An Accurate Third-Order Rosenbrock Solver Designed for Parabolic Problems J. BIT Numerical Mathematics (2001) 41: 731. doi:10.1023/A:1021900219772</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L936-L1012">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3" href="#OrdinaryDiffEqRosenbrock.Rodas3"><code>OrdinaryDiffEqRosenbrock.Rodas3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method. Keeps high accuracy on discretizations of nonlinear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Lang, J. & Verwer, ROS3P—An Accurate Third-Order Rosenbrock Solver Designed for Parabolic Problems J. BIT Numerical Mathematics (2001) 41: 731. doi:10.1023/A:1021900219772</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L936-L1012">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3" href="#OrdinaryDiffEqRosenbrock.Rodas3"><code>OrdinaryDiffEqRosenbrock.Rodas3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -136,14 +136,14 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1032-L1109">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas23W" href="#OrdinaryDiffEqRosenbrock.Rodas23W"><code>OrdinaryDiffEqRosenbrock.Rodas23W</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas23W(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1032-L1109">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas23W" href="#OrdinaryDiffEqRosenbrock.Rodas23W"><code>OrdinaryDiffEqRosenbrock.Rodas23W</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas23W(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method for stiff ODEs and DAEs in mass matrix form. 2nd order stiff-aware interpolation and additional error test for interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas23W(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L947-L1023">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3P" href="#OrdinaryDiffEqRosenbrock.Rodas3P"><code>OrdinaryDiffEqRosenbrock.Rodas3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. An Order 2/3 L-Stable Rosenbrock-W method for stiff ODEs and DAEs in mass matrix form. 2nd order stiff-aware interpolation and additional error test for interpolation.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas23W(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L947-L1023">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas3P" href="#OrdinaryDiffEqRosenbrock.Rodas3P"><code>OrdinaryDiffEqRosenbrock.Rodas3P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas3P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -197,7 +197,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant and additional error test for interpolation. Keeps accuracy on discretizations of linear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1044-L1122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4" href="#OrdinaryDiffEqRosenbrock.Rodas4"><code>OrdinaryDiffEqRosenbrock.Rodas4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 3rd order A-stable and stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant and additional error test for interpolation. Keeps accuracy on discretizations of linear parabolic PDEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1044-L1122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4" href="#OrdinaryDiffEqRosenbrock.Rodas4"><code>OrdinaryDiffEqRosenbrock.Rodas4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -251,7 +251,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order L-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1057-L1133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas42" href="#OrdinaryDiffEqRosenbrock.Rodas42"><code>OrdinaryDiffEqRosenbrock.Rodas42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas42(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order L-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1057-L1133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas42" href="#OrdinaryDiffEqRosenbrock.Rodas42"><code>OrdinaryDiffEqRosenbrock.Rodas42</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas42(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -305,7 +305,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1080-L1156">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P" href="#OrdinaryDiffEqRosenbrock.Rodas4P"><code>OrdinaryDiffEqRosenbrock.Rodas4P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1080-L1156">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P" href="#OrdinaryDiffEqRosenbrock.Rodas4P"><code>OrdinaryDiffEqRosenbrock.Rodas4P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -359,14 +359,14 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems (as opposed to lower if not corrected).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1091-L1170">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P2" href="#OrdinaryDiffEqRosenbrock.Rodas4P2"><code>OrdinaryDiffEqRosenbrock.Rodas4P2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P2(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems (as opposed to lower if not corrected).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1091-L1170">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas4P2" href="#OrdinaryDiffEqRosenbrock.Rodas4P2"><code>OrdinaryDiffEqRosenbrock.Rodas4P2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas4P2(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems. It is an improvement of Roadas4P and in case of inexact Jacobians a second order W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas4P2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1105-L1184">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5" href="#OrdinaryDiffEqRosenbrock.Rodas5"><code>OrdinaryDiffEqRosenbrock.Rodas5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant. 4th order on linear parabolic problems and 3rd order accurate on nonlinear parabolic problems. It is an improvement of Roadas4P and in case of inexact Jacobians a second order W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas4P2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G., Rodas23W / Rodas32P - a Rosenbrock-type method for DAEs with additional error estimate for dense output and Julia implementation, In progress.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1105-L1184">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5" href="#OrdinaryDiffEqRosenbrock.Rodas5"><code>OrdinaryDiffEqRosenbrock.Rodas5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -420,34 +420,34 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Di Marzo G. RODAS5(4) – Méthodes de Rosenbrock d’ordre 5(4) adaptées aux problemes différentiels-algébriques. MSc mathematics thesis, Faculty of Science, University of Geneva, Switzerland.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1119-L1196">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5P" href="#OrdinaryDiffEqRosenbrock.Rodas5P"><code>OrdinaryDiffEqRosenbrock.Rodas5P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5P(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Di Marzo G. RODAS5(4) – Méthodes de Rosenbrock d’ordre 5(4) adaptées aux problemes différentiels-algébriques. MSc mathematics thesis, Faculty of Science, University of Geneva, Switzerland.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1119-L1196">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5P" href="#OrdinaryDiffEqRosenbrock.Rodas5P"><code>OrdinaryDiffEqRosenbrock.Rodas5P</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5P(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5P(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1131-L1209">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pe" href="#OrdinaryDiffEqRosenbrock.Rodas5Pe"><code>OrdinaryDiffEqRosenbrock.Rodas5Pe</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pe(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5P(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Construction of Rosenbrock–Wanner method Rodas5P and numerical benchmarks within the Julia Differential Equations package. In: BIT Numerical Mathematics, 63(2), 2023</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1131-L1209">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pe" href="#OrdinaryDiffEqRosenbrock.Rodas5Pe"><code>OrdinaryDiffEqRosenbrock.Rodas5Pe</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pe(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pe(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1157-L1235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pr" href="#OrdinaryDiffEqRosenbrock.Rodas5Pr"><code>OrdinaryDiffEqRosenbrock.Rodas5Pr</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pr(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pe(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1157-L1235">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Rodas5Pr" href="#OrdinaryDiffEqRosenbrock.Rodas5Pr"><code>OrdinaryDiffEqRosenbrock.Rodas5Pr</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Rodas5Pr(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pr(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1144-L1222">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS" href="#OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS"><code>OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosenbrockW6S4OS(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 5th order A-stable stiffly stable Rosenbrock method with a stiff-aware 4th order interpolant. Has improved stability in the adaptive time stepping embedding.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Rodas5Pr(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Steinebach G. Rosenbrock methods within OrdinaryDiffEq.jl - Overview, recent developments and applications - Preprint 2024 https://github.com/hbrs-cse/RosenbrockMethods/blob/main/paper/JuliaPaper.pdf</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1144-L1222">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS" href="#OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS"><code>OrdinaryDiffEqRosenbrock.RosenbrockW6S4OS</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosenbrockW6S4OS(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method (fixed step only).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RosenbrockW6S4OS(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>https://doi.org/10.1016/j.cam.2009.09.017</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/algorithms.jl#L142-L215">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2" href="#OrdinaryDiffEqRosenbrock.ROS2"><code>OrdinaryDiffEqRosenbrock.ROS2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method (fixed step only).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>RosenbrockW6S4OS(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>https://doi.org/10.1016/j.cam.2009.09.017</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/algorithms.jl#L142-L215">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2" href="#OrdinaryDiffEqRosenbrock.ROS2"><code>OrdinaryDiffEqRosenbrock.ROS2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -500,7 +500,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. A 2nd order L-stable Rosenbrock method with 2 internal stages.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>J. G. Verwer et al. (1999): A second-order Rosenbrock method applied to photochemical dispersion problems https://doi.org/10.1137/S1064827597326651</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1253-L1327">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2PR" href="#OrdinaryDiffEqRosenbrock.ROS2PR"><code>OrdinaryDiffEqRosenbrock.ROS2PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. A 2nd order L-stable Rosenbrock method with 2 internal stages.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>J. G. Verwer et al. (1999): A second-order Rosenbrock method applied to photochemical dispersion problems https://doi.org/10.1137/S1064827597326651</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1253-L1327">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2PR" href="#OrdinaryDiffEqRosenbrock.ROS2PR"><code>OrdinaryDiffEqRosenbrock.ROS2PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -553,13 +553,13 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 2nd order stiffly accurate Rosenbrock method with 3 internal stages with (Rinf=0). For problems with medium stiffness the convergence behaviour is very poor and it is recommended to use <a href="#OrdinaryDiffEqRosenbrock.ROS2S"><code>ROS2S</code></a> instead.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1288-L1365">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2S" href="#OrdinaryDiffEqRosenbrock.ROS2S"><code>OrdinaryDiffEqRosenbrock.ROS2S</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2S(; chunk_size = Val{0}(), + ```)</code></pre><p>Rosenbrock-Wanner Method. 2nd order stiffly accurate Rosenbrock method with 3 internal stages with (Rinf=0). For problems with medium stiffness the convergence behaviour is very poor and it is recommended to use <a href="#OrdinaryDiffEqRosenbrock.ROS2S"><code>ROS2S</code></a> instead.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1288-L1365">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS2S" href="#OrdinaryDiffEqRosenbrock.ROS2S"><code>OrdinaryDiffEqRosenbrock.ROS2S</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS2S(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 2nd order stiffly accurate Rosenbrock-Wanner W-method with 3 internal stages with B_PR consistent of order 2 with (Rinf=0).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS2S(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1327-L1402">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3" href="#OrdinaryDiffEqRosenbrock.ROS3"><code>OrdinaryDiffEqRosenbrock.ROS3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 2nd order stiffly accurate Rosenbrock-Wanner W-method with 3 internal stages with B_PR consistent of order 2 with (Rinf=0).</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS2S(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1327-L1402">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3" href="#OrdinaryDiffEqRosenbrock.ROS3"><code>OrdinaryDiffEqRosenbrock.ROS3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -612,7 +612,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order L-stable Rosenbrock method with 3 internal stages with an embedded strongly A-stable 2nd order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1361-L1436">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PR" href="#OrdinaryDiffEqRosenbrock.ROS3PR"><code>OrdinaryDiffEqRosenbrock.ROS3PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order L-stable Rosenbrock method with 3 internal stages with an embedded strongly A-stable 2nd order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1361-L1436">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PR" href="#OrdinaryDiffEqRosenbrock.ROS3PR"><code>OrdinaryDiffEqRosenbrock.ROS3PR</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PR(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -665,7 +665,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1395-L1470">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Scholz4_7" href="#OrdinaryDiffEqRosenbrock.Scholz4_7"><code>OrdinaryDiffEqRosenbrock.Scholz4_7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Scholz4_7(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1395-L1470">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Scholz4_7" href="#OrdinaryDiffEqRosenbrock.Scholz4_7"><code>OrdinaryDiffEqRosenbrock.Scholz4_7</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Scholz4_7(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -718,37 +718,37 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73. Convergence with order 4 for the stiff case, but has a poor accuracy.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1431-L1507">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1a" href="#OrdinaryDiffEqRosenbrock.ROS34PW1a"><code>OrdinaryDiffEqRosenbrock.ROS34PW1a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1a(; chunk_size = Val{0}(), + ```)</code></pre><p>Rosenbrock-Wanner Method. 3nd order stiffly accurate Rosenbrock method with 3 internal stages with B_PR consistent of order 3, which is strongly A-stable with Rinf~=-0.73. Convergence with order 4 for the stiff case, but has a poor accuracy.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1431-L1507">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1a" href="#OrdinaryDiffEqRosenbrock.ROS34PW1a"><code>OrdinaryDiffEqRosenbrock.ROS34PW1a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1a(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L958-L1038">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1b" href="#OrdinaryDiffEqRosenbrock.ROS34PW1b"><code>OrdinaryDiffEqRosenbrock.ROS34PW1b</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1b(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L958-L1038">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW1b" href="#OrdinaryDiffEqRosenbrock.ROS34PW1b"><code>OrdinaryDiffEqRosenbrock.ROS34PW1b</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW1b(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1b(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L974-L1054">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW2" href="#OrdinaryDiffEqRosenbrock.ROS34PW2"><code>OrdinaryDiffEqRosenbrock.ROS34PW2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW2(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order L-stable Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW1b(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L974-L1054">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW2" href="#OrdinaryDiffEqRosenbrock.ROS34PW2"><code>OrdinaryDiffEqRosenbrock.ROS34PW2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW2(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order stiffy accurate Rosenbrock-W method for PDAEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L990-L1070">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW3" href="#OrdinaryDiffEqRosenbrock.ROS34PW3"><code>OrdinaryDiffEqRosenbrock.ROS34PW3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW3(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order stiffy accurate Rosenbrock-W method for PDAEs.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW2(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L990-L1070">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PW3" href="#OrdinaryDiffEqRosenbrock.ROS34PW3"><code>OrdinaryDiffEqRosenbrock.ROS34PW3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PW3(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order strongly A-stable (Rinf~0.63) Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1006-L1086">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PRw" href="#OrdinaryDiffEqRosenbrock.ROS34PRw"><code>OrdinaryDiffEqRosenbrock.ROS34PRw</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PRw(; chunk_size = Val{0}(), + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order strongly A-stable (Rinf~0.63) Rosenbrock-W method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PW3(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><p>@article{rang2005new, title={New Rosenbrock W-methods of order 3 for partial differential algebraic equations of index 1}, author={Rang, Joachim and Angermann, L}, journal={BIT Numerical Mathematics}, volume={45}, pages={761–787}, year={2005}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1006-L1086">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS34PRw" href="#OrdinaryDiffEqRosenbrock.ROS34PRw"><code>OrdinaryDiffEqRosenbrock.ROS34PRw</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS34PRw(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 3rd order stiffly accurate Rosenbrock-Wanner W-method with 4 internal stages, B_PR consistent of order 2. The order of convergence decreases if medium stiff problems are considered.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PRw(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Joachim Rang, Improved traditional Rosenbrock–Wanner methods for stiff ODEs and DAEs, Journal of Computational and Applied Mathematics, https://doi.org/10.1016/j.cam.2015.03.010</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1622-L1699">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL" href="#OrdinaryDiffEqRosenbrock.ROS3PRL"><code>OrdinaryDiffEqRosenbrock.ROS3PRL</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 3rd order stiffly accurate Rosenbrock-Wanner W-method with 4 internal stages, B_PR consistent of order 2. The order of convergence decreases if medium stiff problems are considered.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROS34PRw(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Joachim Rang, Improved traditional Rosenbrock–Wanner methods for stiff ODEs and DAEs, Journal of Computational and Applied Mathematics, https://doi.org/10.1016/j.cam.2015.03.010</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1622-L1699">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL" href="#OrdinaryDiffEqRosenbrock.ROS3PRL"><code>OrdinaryDiffEqRosenbrock.ROS3PRL</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -801,7 +801,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 2 with Rinf=0. The order of convergence decreases if medium stiff problems are considered, but it has good results for very stiff cases.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1661-L1738">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL2" href="#OrdinaryDiffEqRosenbrock.ROS3PRL2"><code>OrdinaryDiffEqRosenbrock.ROS3PRL2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 2 with Rinf=0. The order of convergence decreases if medium stiff problems are considered, but it has good results for very stiff cases.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1661-L1738">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROS3PRL2" href="#OrdinaryDiffEqRosenbrock.ROS3PRL2"><code>OrdinaryDiffEqRosenbrock.ROS3PRL2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROS3PRL2(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -854,13 +854,13 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 3. The order of convergence does NOT decreases if medium stiff problems are considered as it does for <a href="#OrdinaryDiffEqRosenbrock.ROS3PRL"><code>ROS3PRL</code></a>.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1701-L1778">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROK4a" href="#OrdinaryDiffEqRosenbrock.ROK4a"><code>OrdinaryDiffEqRosenbrock.ROK4a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROK4a(; chunk_size = Val{0}(), + ```)</code></pre><p>Rosenbrock-Wanner Method. 3rd order stiffly accurate Rosenbrock method with 4 internal stages, B_PR consistent of order 3. The order of convergence does NOT decreases if medium stiff problems are considered as it does for <a href="#OrdinaryDiffEqRosenbrock.ROS3PRL"><code>ROS3PRL</code></a>.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>Rang, Joachim (2014): The Prothero and Robinson example: Convergence studies for Runge-Kutta and Rosenbrock-Wanner methods. https://doi.org/10.24355/dbbs.084-201408121139-0</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1701-L1778">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.ROK4a" href="#OrdinaryDiffEqRosenbrock.ROK4a"><code>OrdinaryDiffEqRosenbrock.ROK4a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROK4a(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, - precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 4rd order L-stable Rosenbrock-Krylov method with 4 internal stages, with a 3rd order embedded method which is strongly A-stable with Rinf~=0.55. (when using exact Jacobians)</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROK4a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Tranquilli, Paul and Sandu, Adrian (2014): Rosenbrock–Krylov Methods for Large Systems of Differential Equations https://doi.org/10.1137/130923336</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1739-L1815">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosShamp4" href="#OrdinaryDiffEqRosenbrock.RosShamp4"><code>OrdinaryDiffEqRosenbrock.RosShamp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosShamp4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + precs = DEFAULT_PRECS)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. 4rd order L-stable Rosenbrock-Krylov method with 4 internal stages, with a 3rd order embedded method which is strongly A-stable with Rinf~=0.55. (when using exact Jacobians)</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>ROK4a(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li></ul><p><strong>References</strong></p><ul><li>Tranquilli, Paul and Sandu, Adrian (2014): Rosenbrock–Krylov Methods for Large Systems of Differential Equations https://doi.org/10.1137/130923336</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1739-L1815">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.RosShamp4" href="#OrdinaryDiffEqRosenbrock.RosShamp4"><code>OrdinaryDiffEqRosenbrock.RosShamp4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RosShamp4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -913,7 +913,7 @@ is defined as: ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing - ```)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>L. F. Shampine, Implementation of Rosenbrock Methods, ACM Transactions on Mathematical Software (TOMS), 8: 2, 93-113. doi:10.1145/355993.355994</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1022-L1096">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Veldd4" href="#OrdinaryDiffEqRosenbrock.Veldd4"><code>OrdinaryDiffEqRosenbrock.Veldd4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Veldd4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + ```)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li></ul><p><strong>References</strong></p><ul><li>L. F. Shampine, Implementation of Rosenbrock Methods, ACM Transactions on Mathematical Software (TOMS), 8: 2, 93-113. doi:10.1145/355993.355994</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1022-L1096">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Veldd4" href="#OrdinaryDiffEqRosenbrock.Veldd4"><code>OrdinaryDiffEqRosenbrock.Veldd4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Veldd4(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -967,14 +967,14 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order D-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1192-L1268">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Velds4" href="#OrdinaryDiffEqRosenbrock.Velds4"><code>OrdinaryDiffEqRosenbrock.Velds4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Velds4(; chunk_size = Val{0}(), + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order D-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1192-L1268">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Velds4" href="#OrdinaryDiffEqRosenbrock.Velds4"><code>OrdinaryDiffEqRosenbrock.Velds4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Velds4(; chunk_size = Val{0}(), standardtag = Val{true}(), autodiff = Val{true}(), concrete_jac = nothing, diff_type = Val{:central}, linsolve = nothing, precs = DEFAULT_PRECS, - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order A-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Velds4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1203-L1279">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4T" href="#OrdinaryDiffEqRosenbrock.GRK4T"><code>OrdinaryDiffEqRosenbrock.GRK4T</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4T(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner-W(olfbrandt) Method. A 4th order A-stable Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: The chunk size used with ForwardDiff.jl. Defaults to <code>Val{0}()</code> and thus uses the internal ForwardDiff.jl algorithm for the choice.</li><li><code>standardtag</code>: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see <a href="https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/">this blog post</a>. Defaults to <code>Val{true}()</code>.</li><li><code>autodiff</code>: Specifies whether to use automatic differentiation via <a href="https://github.com/JuliaDiff/ForwardDiff.jl">ForwardDiff.jl</a> or finite differencing via <a href="https://github.com/JuliaDiff/FiniteDiff.jl">FiniteDiff.jl</a>. Defaults to <code>Val{true}()</code> for automatic differentiation.</li><li><code>concrete_jac</code>: Specifies whether a Jacobian should be constructed. Defaults to <code>nothing</code>, which means it will be chosen true/false depending on circumstances of the solver, such as whether a Krylov subspace method is used for <code>linsolve</code>.</li><li><code>diff_type</code>: The type of differentiation used in FiniteDiff.jl if <code>autodiff=false</code>. Defaults to <code>Val{:forward}</code>, with alternatives of <code>Val{:central}</code> and <code>Val{:complex}</code>.</li><li><code>linsolve</code>: Any <a href="https://github.com/SciML/LinearSolve.jl">LinearSolve.jl</a> compatible linear solver. For example, to use <a href="https://github.com/JuliaSparse/KLU.jl">KLU.jl</a>, specify <code>Velds4(linsolve = KLUFactorization()</code>). When <code>nothing</code> is passed, uses <code>DefaultLinearSolver</code>.</li><li><code>precs</code>: Any <a href="https://docs.sciml.ai/LinearSolve/stable/basics/Preconditioners/">LinearSolve.jl-compatible preconditioner</a> can be used as a left or right preconditioner. Preconditioners are specified by the <code>Pl,Pr = precs(W,du,u,p,t,newW,Plprev,Prprev,solverdata)</code> function where the arguments are defined as:<ul><li><code>W</code>: the current Jacobian of the nonlinear system. Specified as either <span>$I - \gamma J$</span> or <span>$I/\gamma - J$</span> depending on the algorithm. This will commonly be a <code>WOperator</code> type defined by OrdinaryDiffEq.jl. It is a lazy representation of the operator. Users can construct the W-matrix on demand by calling <code>convert(AbstractMatrix,W)</code> to receive an <code>AbstractMatrix</code> matching the <code>jac_prototype</code>.</li><li><code>du</code>: the current ODE derivative</li><li><code>u</code>: the current ODE state</li><li><code>p</code>: the ODE parameters</li><li><code>t</code>: the current ODE time</li><li><code>newW</code>: a <code>Bool</code> which specifies whether the <code>W</code> matrix has been updated since the last call to <code>precs</code>. It is recommended that this is checked to only update the preconditioner when <code>newW == true</code>.</li><li><code>Plprev</code>: the previous <code>Pl</code>.</li><li><code>Prprev</code>: the previous <code>Pr</code>.</li><li><code>solverdata</code>: Optional extra data the solvers can give to the <code>precs</code> function. Solver-dependent and subject to change.</li></ul>The return is a tuple <code>(Pl,Pr)</code> of the LinearSolve.jl-compatible preconditioners. To specify one-sided preconditioning, simply return <code>nothing</code> for the preconditioner which is not used. Additionally, <code>precs</code> must supply the dispatch:<pre><code class="language-julia hljs">Pl, Pr = precs(W, du, u, p, t, ::Nothing, ::Nothing, ::Nothing, solverdata)</code></pre>which is used in the solver setup phase to construct the integrator type with the preconditioners <code>(Pl,Pr)</code>. The default is <code>precs=DEFAULT_PRECS</code> where the default preconditioner function is defined as:<pre><code class="language-julia hljs">DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing</code></pre></li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>van Veldhuizen, D-stability and Kaps-Rentrop-methods, M. Computing (1984) 32: 229. doi:10.1007/BF02243574</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1203-L1279">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4T" href="#OrdinaryDiffEqRosenbrock.GRK4T"><code>OrdinaryDiffEqRosenbrock.GRK4T</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4T(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -1028,7 +1028,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An efficient 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1170-L1246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4A" href="#OrdinaryDiffEqRosenbrock.GRK4A"><code>OrdinaryDiffEqRosenbrock.GRK4A</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4A(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An efficient 4th order Rosenbrock method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1170-L1246">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.GRK4A" href="#OrdinaryDiffEqRosenbrock.GRK4A"><code>OrdinaryDiffEqRosenbrock.GRK4A</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">GRK4A(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -1082,7 +1082,7 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method. Essentially "anti-L-stable" but efficient.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1181-L1257">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Ros4LStab" href="#OrdinaryDiffEqRosenbrock.Ros4LStab"><code>OrdinaryDiffEqRosenbrock.Ros4LStab</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ros4LStab(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. An A-stable 4th order Rosenbrock method. Essentially "anti-L-stable" but efficient.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>Kaps, P. & Rentrop, Generalized Runge-Kutta methods of order four with stepsize control for stiff ordinary differential equations. P. Numer. Math. (1979) 33: 55. doi:10.1007/BF01396495</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1181-L1257">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqRosenbrock.Ros4LStab" href="#OrdinaryDiffEqRosenbrock.Ros4LStab"><code>OrdinaryDiffEqRosenbrock.Ros4LStab</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">Ros4LStab(; - `chunk_size`: The chunk size used with ForwardDiff.jl. Defaults to `Val{0}()` and thus uses the internal ForwardDiff.jl algorithm for the choice. - `standardtag`: Specifies whether to use package-specific tags instead of the ForwardDiff default function-specific tags. For more information, see @@ -1136,4 +1136,4 @@ ```julia DEFAULT_PRECS(W, du, u, p, t, newW, Plprev, Prprev, solverdata) = nothing, nothing ``` - step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1068-L1144">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../explicit/Extrapolation/">« OrdinaryDiffEqExtrapolation</a><a class="docs-footer-nextpage" href="../StabilizedRK/">OrdinaryDiffEqStabilizedRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + step_limiter! = OrdinaryDiffEq.trivial_limiter!)</code></pre><p>Rosenbrock-Wanner Method. A 4th order A-stable stiffly stable Rosenbrock method with a stiff-aware 3rd order interpolant</p><p><strong>Keyword Arguments</strong></p><ul><li><code>chunk_size</code>: TBD</li><li><code>standardtag</code>: TBD</li><li><code>autodiff</code>: boolean to control if the Jacobian should be computed via AD or not</li><li><code>concrete_jac</code>: function of the form <code>jac!(J, u, p, t)</code></li><li><code>diff_type</code>: TBD</li><li><code>linsolve</code>: custom solver for the inner linear systems</li><li><code>precs</code>: custom preconditioner for the inner linear solver</li><li><code>step_limiter!</code>: function of the form <code>limiter!(u, integrator, p, t)</code></li></ul><p><strong>References</strong></p><ul><li>E. Hairer, G. Wanner, Solving ordinary differential equations II, stiff and differential-algebraic problems. Computational mathematics (2nd revised ed.), Springer (1996)</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqRosenbrock/src/generic_rosenbrock.jl#L1068-L1144">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../explicit/Extrapolation/">« OrdinaryDiffEqExtrapolation</a><a class="docs-footer-nextpage" href="../StabilizedRK/">OrdinaryDiffEqStabilizedRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/semiimplicit/StabilizedRK/index.html b/dev/semiimplicit/StabilizedRK/index.html index 8e0cc4027a..c1108cdfed 100644 --- a/dev/semiimplicit/StabilizedRK/index.html +++ b/dev/semiimplicit/StabilizedRK/index.html @@ -16,7 +16,7 @@ prob = ODEProblem(lorenz!, u0, tspan) sol = solve(prob, ROCK4())</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ROCK2" href="#OrdinaryDiffEqStabilizedRK.ROCK2"><code>OrdinaryDiffEqStabilizedRK.ROCK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROCK2(; min_stages = 0, max_stages = 200, - eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Second order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>min_stages</code>: The minimum degree of the Chebyshev polynomial.</li><li><code>max_stages</code>: The maximumdegree of the Chebyshev polynomial.</li><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>Assyr Abdulle, Alexei A. Medovikov. Second Order Chebyshev Methods based on Orthogonal Polynomials. Numerische Mathematik, 90 (1), pp 1-18, 2001. doi: https://dx.doi.org/10.1007/s002110100292</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L2-L23">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ROCK4" href="#OrdinaryDiffEqStabilizedRK.ROCK4"><code>OrdinaryDiffEqStabilizedRK.ROCK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROCK4(; min_stages = 0, + eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Second order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>min_stages</code>: The minimum degree of the Chebyshev polynomial.</li><li><code>max_stages</code>: The maximumdegree of the Chebyshev polynomial.</li><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>Assyr Abdulle, Alexei A. Medovikov. Second Order Chebyshev Methods based on Orthogonal Polynomials. Numerische Mathematik, 90 (1), pp 1-18, 2001. doi: https://dx.doi.org/10.1007/s002110100292</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L2-L23">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ROCK4" href="#OrdinaryDiffEqStabilizedRK.ROCK4"><code>OrdinaryDiffEqStabilizedRK.ROCK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ROCK4(; min_stages = 0, max_stages = 152, - eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Fourth order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>min_stages</code>: The minimum degree of the Chebyshev polynomial.</li><li><code>max_stages</code>: The maximumdegree of the Chebyshev polynomial.</li><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>Assyr Abdulle. Fourth Order Chebyshev Methods With Recurrence Relation. 2002 Society for Industrial and Applied Mathematics Journal on Scientific Computing, 23(6), pp 2041-2054, 2001. doi: https://doi.org/10.1137/S1064827500379549</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L31-L53">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.RKC" href="#OrdinaryDiffEqStabilizedRK.RKC"><code>OrdinaryDiffEqStabilizedRK.RKC</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKC(; eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Second order method. Exhibits high stability for real eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>B. P. Sommeijer, L. F. Shampine, J. G. Verwer. RKC: An Explicit Solver for Parabolic PDEs, Journal of Computational and Applied Mathematics, 88(2), pp 315-326, 1998. doi: https://doi.org/10.1016/S0377-0427(97)00219-7</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L72-L89">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.SERK2" href="#OrdinaryDiffEqStabilizedRK.SERK2"><code>OrdinaryDiffEqStabilizedRK.SERK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SERK2(; controller = :PI - eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Second order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>controller</code>: TBD</li><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>@article{kleefeld2013serk2v2, title={SERK2v2: A new second-order stabilized explicit Runge-Kutta method for stiff problems}, author={Kleefeld, B and Martin-Vaquero, J}, journal={Numerical Methods for Partial Differential Equations}, volume={29}, number={1}, pages={170–185}, year={2013}, publisher={Wiley Online Library}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L128-L153">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ESERK4" href="#OrdinaryDiffEqStabilizedRK.ESERK4"><code>OrdinaryDiffEqStabilizedRK.ESERK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESERK4(; eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Fourth order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>J. Martín-Vaquero, B. Kleefeld. Extrapolated stabilized explicit Runge-Kutta methods, Journal of Computational Physics, 326, pp 141-155, 2016. doi: https://doi.org/10.1016/j.jcp.2016.08.042.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L90-L108">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ESERK5" href="#OrdinaryDiffEqStabilizedRK.ESERK5"><code>OrdinaryDiffEqStabilizedRK.ESERK5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESERK5(; eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Fifth order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>J. Martín-Vaquero, A. Kleefeld. ESERK5: A fifth-order extrapolated stabilized explicit Runge-Kutta method, Journal of Computational and Applied Mathematics, 356, pp 22-36, 2019. doi: https://doi.org/10.1016/j.cam.2019.01.040.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L109-L127">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Rosenbrock/">« OrdinaryDiffEqRosenbrock</a><a class="docs-footer-nextpage" href="../ExponentialRK/">OrdinaryDiffEqExponentialRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Fourth order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>min_stages</code>: The minimum degree of the Chebyshev polynomial.</li><li><code>max_stages</code>: The maximumdegree of the Chebyshev polynomial.</li><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>Assyr Abdulle. Fourth Order Chebyshev Methods With Recurrence Relation. 2002 Society for Industrial and Applied Mathematics Journal on Scientific Computing, 23(6), pp 2041-2054, 2001. doi: https://doi.org/10.1137/S1064827500379549</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L31-L53">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.RKC" href="#OrdinaryDiffEqStabilizedRK.RKC"><code>OrdinaryDiffEqStabilizedRK.RKC</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKC(; eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Second order method. Exhibits high stability for real eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>B. P. Sommeijer, L. F. Shampine, J. G. Verwer. RKC: An Explicit Solver for Parabolic PDEs, Journal of Computational and Applied Mathematics, 88(2), pp 315-326, 1998. doi: https://doi.org/10.1016/S0377-0427(97)00219-7</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L72-L89">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.SERK2" href="#OrdinaryDiffEqStabilizedRK.SERK2"><code>OrdinaryDiffEqStabilizedRK.SERK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">SERK2(; controller = :PI + eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Second order method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>controller</code>: TBD</li><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>@article{kleefeld2013serk2v2, title={SERK2v2: A new second-order stabilized explicit Runge-Kutta method for stiff problems}, author={Kleefeld, B and Martin-Vaquero, J}, journal={Numerical Methods for Partial Differential Equations}, volume={29}, number={1}, pages={170–185}, year={2013}, publisher={Wiley Online Library}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L128-L153">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ESERK4" href="#OrdinaryDiffEqStabilizedRK.ESERK4"><code>OrdinaryDiffEqStabilizedRK.ESERK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESERK4(; eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Fourth order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>J. Martín-Vaquero, B. Kleefeld. Extrapolated stabilized explicit Runge-Kutta methods, Journal of Computational Physics, 326, pp 141-155, 2016. doi: https://doi.org/10.1016/j.jcp.2016.08.042.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L90-L108">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqStabilizedRK.ESERK5" href="#OrdinaryDiffEqStabilizedRK.ESERK5"><code>OrdinaryDiffEqStabilizedRK.ESERK5</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ESERK5(; eigen_est = nothing)</code></pre><p>Stabilized Explicit Method. Fifth order method. Exhibits high stability for real eigenvalues and is smoothened to allow for moderate sized complex eigenvalues.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>eigen_est</code>: function of the form <code>(integrator) -> integrator.eigen_est = upper_bound</code>, where <code>upper_bound</code> is an estimated upper bound on the spectral radius of the Jacobian matrix. If <code>eigen_est</code> is not provided, <code>upper_bound</code> will be estimated using the power iteration.</li></ul><p><strong>References</strong></p><p>J. Martín-Vaquero, A. Kleefeld. ESERK5: A fifth-order extrapolated stabilized explicit Runge-Kutta method, Journal of Computational and Applied Mathematics, 356, pp 22-36, 2019. doi: https://doi.org/10.1016/j.cam.2019.01.040.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqStabilizedRK/src/algorithms.jl#L109-L127">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../Rosenbrock/">« OrdinaryDiffEqRosenbrock</a><a class="docs-footer-nextpage" href="../ExponentialRK/">OrdinaryDiffEqExponentialRK »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/semilinear/ExponentialRK/index.html b/dev/semilinear/ExponentialRK/index.html index 7a02cfd468..ef5c8a923b 100644 --- a/dev/semilinear/ExponentialRK/index.html +++ b/dev/semilinear/ExponentialRK/index.html @@ -14,14 +14,14 @@ prob = SplitODEProblem(linnonlin_fun_iip, u0, tspan) sol = solve(prob, ETDRK4(), dt = 1 / 4)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.LawsonEuler" href="#OrdinaryDiffEqExponentialRK.LawsonEuler"><code>OrdinaryDiffEqExponentialRK.LawsonEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LawsonEuler(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver First order exponential Euler scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.NorsettEuler" href="#OrdinaryDiffEqExponentialRK.NorsettEuler"><code>OrdinaryDiffEqExponentialRK.NorsettEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NorsettEuler(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver First order exponential Euler scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.NorsettEuler" href="#OrdinaryDiffEqExponentialRK.NorsettEuler"><code>OrdinaryDiffEqExponentialRK.NorsettEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">NorsettEuler(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver First order exponential-RK scheme. Alias: <code>ETD1</code></p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETD2" href="#OrdinaryDiffEqExponentialRK.ETD2"><code>OrdinaryDiffEqExponentialRK.ETD2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>ETD2: Exponential Runge-Kutta Method Second order Exponential Time Differencing method (in development).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L143-L146">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK2" href="#OrdinaryDiffEqExponentialRK.ETDRK2"><code>OrdinaryDiffEqExponentialRK.ETDRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK2(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver First order exponential-RK scheme. Alias: <code>ETD1</code></p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETD2" href="#OrdinaryDiffEqExponentialRK.ETD2"><code>OrdinaryDiffEqExponentialRK.ETD2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><p>ETD2: Exponential Runge-Kutta Method Second order Exponential Time Differencing method (in development).</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L143-L146">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK2" href="#OrdinaryDiffEqExponentialRK.ETDRK2"><code>OrdinaryDiffEqExponentialRK.ETDRK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK2(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 2nd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK3" href="#OrdinaryDiffEqExponentialRK.ETDRK3"><code>OrdinaryDiffEqExponentialRK.ETDRK3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK3(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver 2nd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK3" href="#OrdinaryDiffEqExponentialRK.ETDRK3"><code>OrdinaryDiffEqExponentialRK.ETDRK3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK3(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 3rd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK4" href="#OrdinaryDiffEqExponentialRK.ETDRK4"><code>OrdinaryDiffEqExponentialRK.ETDRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver 3rd order exponential-RK scheme.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.ETDRK4" href="#OrdinaryDiffEqExponentialRK.ETDRK4"><code>OrdinaryDiffEqExponentialRK.ETDRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">ETDRK4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.HochOst4" href="#OrdinaryDiffEqExponentialRK.HochOst4"><code>OrdinaryDiffEqExponentialRK.HochOst4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">HochOst4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqExponentialRK.HochOst4" href="#OrdinaryDiffEqExponentialRK.HochOst4"><code>OrdinaryDiffEqExponentialRK.HochOst4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">HochOst4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../dynamicalodeexplicit/SymplecticRK/">« OrdinaryDiffEqSymplecticRK</a><a class="docs-footer-nextpage" href="../Linear/">OrdinaryDiffEqLinear »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + iop = 0)</code></pre><p>Semilinear ODE solver 4th order exponential-RK scheme with stiff order 4.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>Hochbruck, Marlis, and Alexander Ostermann. “Exponential Integrators.” Acta Numerica 19 (2010): 209–286. doi:10.1017/S0962492910000048.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqExponentialRK/src/algorithms.jl#L14-L34">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../dynamicalodeexplicit/SymplecticRK/">« OrdinaryDiffEqSymplecticRK</a><a class="docs-footer-nextpage" href="../Linear/">OrdinaryDiffEqLinear »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/semilinear/Linear/index.html b/dev/semilinear/Linear/index.html index 81fdd73646..6b3a8e5f06 100644 --- a/dev/semilinear/Linear/index.html +++ b/dev/semilinear/Linear/index.html @@ -18,34 +18,34 @@ prob = ODEProblem(A, u0, tspan) sol = solve(prob, LieRK4(), dt = 1 / 4)</code></pre><h2 id="Full-list-of-solvers"><a class="docs-heading-anchor" href="#Full-list-of-solvers">Full list of solvers</a><a id="Full-list-of-solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Full-list-of-solvers" title="Permalink"></a></h2><h3 id="Time-and-State-Independent-Solvers"><a class="docs-heading-anchor" href="#Time-and-State-Independent-Solvers">Time and State-Independent Solvers</a><a id="Time-and-State-Independent-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Time-and-State-Independent-Solvers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.LinearExponential" href="#OrdinaryDiffEqLinear.LinearExponential"><code>OrdinaryDiffEqLinear.LinearExponential</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LinearExponential(; krylov = :off, m = 10, - iop = 0)</code></pre><p>Semilinear ODE solver Exact solution formula for linear, time-independent problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>:<ul><li><code>:off</code>: cache the operator beforehand. Requires Matrix(A) method defined for the operator A.</li><li><code>:simple</code>: uses simple Krylov approximations with fixed subspace size m.</li><li><code>:adaptive</code>: uses adaptive Krylov approximations with internal timestepping.</li></ul></li><li><code>m</code>: Controls the size of Krylov subspace if <code>krylov=:simple</code>, and the initial subspace size if <code>krylov=:adaptive</code>.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@book{strogatz2018nonlinear, title={Nonlinear dynamics and chaos: with applications to physics, biology, chemistry, and engineering}, author={Strogatz, Steven H}, year={2018}, publisher={CRC press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L146-L171">source</a></section></article><h3 id="Time-Dependent-and-State-Independent-Solvers"><a class="docs-heading-anchor" href="#Time-Dependent-and-State-Independent-Solvers">Time-Dependent and State-Independent Solvers</a><a id="Time-Dependent-and-State-Independent-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Time-Dependent-and-State-Independent-Solvers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusMidpoint" href="#OrdinaryDiffEqLinear.MagnusMidpoint"><code>OrdinaryDiffEqLinear.MagnusMidpoint</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusMidpoint(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Exact solution formula for linear, time-independent problems.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>:<ul><li><code>:off</code>: cache the operator beforehand. Requires Matrix(A) method defined for the operator A.</li><li><code>:simple</code>: uses simple Krylov approximations with fixed subspace size m.</li><li><code>:adaptive</code>: uses adaptive Krylov approximations with internal timestepping.</li></ul></li><li><code>m</code>: Controls the size of Krylov subspace if <code>krylov=:simple</code>, and the initial subspace size if <code>krylov=:adaptive</code>.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@book{strogatz2018nonlinear, title={Nonlinear dynamics and chaos: with applications to physics, biology, chemistry, and engineering}, author={Strogatz, Steven H}, year={2018}, publisher={CRC press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L146-L171">source</a></section></article><h3 id="Time-Dependent-and-State-Independent-Solvers"><a class="docs-heading-anchor" href="#Time-Dependent-and-State-Independent-Solvers">Time-Dependent and State-Independent Solvers</a><a id="Time-Dependent-and-State-Independent-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Time-Dependent-and-State-Independent-Solvers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusMidpoint" href="#OrdinaryDiffEqLinear.MagnusMidpoint"><code>OrdinaryDiffEqLinear.MagnusMidpoint</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusMidpoint(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Second order Magnus Midpoint method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>https://joshuagoings.com/2017/06/15/magnus/</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L112">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusLeapfrog" href="#OrdinaryDiffEqLinear.MagnusLeapfrog"><code>OrdinaryDiffEqLinear.MagnusLeapfrog</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusLeapfrog(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Second order Magnus Midpoint method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>https://joshuagoings.com/2017/06/15/magnus/</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L112">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusLeapfrog" href="#OrdinaryDiffEqLinear.MagnusLeapfrog"><code>OrdinaryDiffEqLinear.MagnusLeapfrog</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusLeapfrog(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Second order Magnus Leapfrog method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>https://joshuagoings.com/2017/06/15/magnus/</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L112">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGauss4" href="#OrdinaryDiffEqLinear.MagnusGauss4"><code>OrdinaryDiffEqLinear.MagnusGauss4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGauss4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Second order Magnus Leapfrog method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>https://joshuagoings.com/2017/06/15/magnus/</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L112">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGauss4" href="#OrdinaryDiffEqLinear.MagnusGauss4"><code>OrdinaryDiffEqLinear.MagnusGauss4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGauss4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Magnus method approximated using a two stage Gauss quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{hairer2011solving, title={Solving differential equations on manifolds}, author={Hairer, Ernst}, journal={Lecture notes}, year={2011} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L118">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusNC6" href="#OrdinaryDiffEqLinear.MagnusNC6"><code>OrdinaryDiffEqLinear.MagnusNC6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusNC6(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Magnus method approximated using a two stage Gauss quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{hairer2011solving, title={Solving differential equations on manifolds}, author={Hairer, Ernst}, journal={Lecture notes}, year={2011} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L118">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusNC6" href="#OrdinaryDiffEqLinear.MagnusNC6"><code>OrdinaryDiffEqLinear.MagnusNC6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusNC6(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Sixth order Magnus method approximated using Newton-Cotes quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGL6" href="#OrdinaryDiffEqLinear.MagnusGL6"><code>OrdinaryDiffEqLinear.MagnusGL6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGL6(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Sixth order Magnus method approximated using Newton-Cotes quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGL6" href="#OrdinaryDiffEqLinear.MagnusGL6"><code>OrdinaryDiffEqLinear.MagnusGL6</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGL6(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Sixth order Magnus method approximated using Gauss-Legendre quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGL8" href="#OrdinaryDiffEqLinear.MagnusGL8"><code>OrdinaryDiffEqLinear.MagnusGL8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGL8(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Sixth order Magnus method approximated using Gauss-Legendre quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGL8" href="#OrdinaryDiffEqLinear.MagnusGL8"><code>OrdinaryDiffEqLinear.MagnusGL8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGL8(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Eighth order Magnus method approximated using Newton-Cotes quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusNC8" href="#OrdinaryDiffEqLinear.MagnusNC8"><code>OrdinaryDiffEqLinear.MagnusNC8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusNC8(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Eighth order Magnus method approximated using Newton-Cotes quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusNC8" href="#OrdinaryDiffEqLinear.MagnusNC8"><code>OrdinaryDiffEqLinear.MagnusNC8</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusNC8(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Eighth order Magnus method approximated using Gauss-Legendre quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGL4" href="#OrdinaryDiffEqLinear.MagnusGL4"><code>OrdinaryDiffEqLinear.MagnusGL4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGL4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Eighth order Magnus method approximated using Gauss-Legendre quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2000improved, title={Improved high order integrators based on the Magnus expansion}, author={Blanes, Sergio and Casas, Fernando and Ros, Javier}, journal={BIT Numerical Mathematics}, volume={40}, number={3}, pages={434–450}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusGL4" href="#OrdinaryDiffEqLinear.MagnusGL4"><code>OrdinaryDiffEqLinear.MagnusGL4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusGL4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Magnus method approximated using Gauss-Legendre quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2009magnus, title={The Magnus expansion and some of its applications}, author={Blanes, Sergio and Casas, Fernando and Oteo, Jose-Angel and Ros, Jos{'e}}, journal={Physics reports}, volume={470}, number={5-6}, pages={151–238}, year={2009}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><h3 id="State-Dependent-Solvers"><a class="docs-heading-anchor" href="#State-Dependent-Solvers">State-Dependent Solvers</a><a id="State-Dependent-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#State-Dependent-Solvers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.LieEuler" href="#OrdinaryDiffEqLinear.LieEuler"><code>OrdinaryDiffEqLinear.LieEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LieEuler(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Magnus method approximated using Gauss-Legendre quadrature.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{blanes2009magnus, title={The Magnus expansion and some of its applications}, author={Blanes, Sergio and Casas, Fernando and Oteo, Jose-Angel and Ros, Jos{'e}}, journal={Physics reports}, volume={470}, number={5-6}, pages={151–238}, year={2009}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L122">source</a></section></article><h3 id="State-Dependent-Solvers"><a class="docs-heading-anchor" href="#State-Dependent-Solvers">State-Dependent Solvers</a><a id="State-Dependent-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#State-Dependent-Solvers" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.LieEuler" href="#OrdinaryDiffEqLinear.LieEuler"><code>OrdinaryDiffEqLinear.LieEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LieEuler(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver description</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.RKMK2" href="#OrdinaryDiffEqLinear.RKMK2"><code>OrdinaryDiffEqLinear.RKMK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKMK2(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver description</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.RKMK2" href="#OrdinaryDiffEqLinear.RKMK2"><code>OrdinaryDiffEqLinear.RKMK2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKMK2(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Second order Runge–Kutta–Munthe-Kaas method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.RKMK4" href="#OrdinaryDiffEqLinear.RKMK4"><code>OrdinaryDiffEqLinear.RKMK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKMK4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Second order Runge–Kutta–Munthe-Kaas method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.RKMK4" href="#OrdinaryDiffEqLinear.RKMK4"><code>OrdinaryDiffEqLinear.RKMK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">RKMK4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Runge–Kutta–Munthe-Kaas method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.LieRK4" href="#OrdinaryDiffEqLinear.LieRK4"><code>OrdinaryDiffEqLinear.LieRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LieRK4(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Runge–Kutta–Munthe-Kaas method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.LieRK4" href="#OrdinaryDiffEqLinear.LieRK4"><code>OrdinaryDiffEqLinear.LieRK4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">LieRK4(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Lie Runge-Kutta method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CG2" href="#OrdinaryDiffEqLinear.CG2"><code>OrdinaryDiffEqLinear.CG2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CG2(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Lie Runge-Kutta method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CG2" href="#OrdinaryDiffEqLinear.CG2"><code>OrdinaryDiffEqLinear.CG2</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CG2(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Second order Crouch–Grossman method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CG4a" href="#OrdinaryDiffEqLinear.CG4a"><code>OrdinaryDiffEqLinear.CG4a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CG4a(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Second order Crouch–Grossman method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{celledoni2014introduction, title={An introduction to Lie group integrators–basics, new developments and applications}, author={Celledoni, Elena and Marthinsen, H{a}kon and Owren, Brynjulf}, journal={Journal of Computational Physics}, volume={257}, pages={1040–1061}, year={2014}, publisher={Elsevier} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CG4a" href="#OrdinaryDiffEqLinear.CG4a"><code>OrdinaryDiffEqLinear.CG4a</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CG4a(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Crouch-Grossman method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{jackiewicz2000construction, title={Construction of Runge–Kutta methods of Crouch–Grossman type of high order}, author={Jackiewicz, Zdzislaw and Marthinsen, Arne and Owren, Brynjulf}, journal={Advances in Computational Mathematics}, volume={13}, pages={405–415}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusAdapt4" href="#OrdinaryDiffEqLinear.MagnusAdapt4"><code>OrdinaryDiffEqLinear.MagnusAdapt4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusAdapt4()</code></pre><p>Semilinear ODE solver Fourth Order Adaptive Magnus method.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{li2008adaptive, title={Adaptive explicit Magnus numerical method for nonlinear dynamical systems}, author={Li, Wen-cheng and Deng, Zi-chen}, journal={Applied Mathematics and Mechanics}, volume={29}, number={9}, pages={1111–1118}, year={2008}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L119-L137">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CayleyEuler" href="#OrdinaryDiffEqLinear.CayleyEuler"><code>OrdinaryDiffEqLinear.CayleyEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CayleyEuler()</code></pre><p>Semilinear ODE solver First order method using Cayley transformations.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{iserles2000lie, title={Lie-group methods}, author={Iserles, Arieh and Munthe-Kaas, Hans Z and Norsett, Syvert P and Zanna, Antonella}, journal={Acta numerica}, volume={9}, pages={215–365}, year={2000}, publisher={Cambridge University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L133-L150">source</a></section></article><h3 id="Time-and-State-Dependent-Operators"><a class="docs-heading-anchor" href="#Time-and-State-Dependent-Operators">Time and State-Dependent Operators</a><a id="Time-and-State-Dependent-Operators-1"></a><a class="docs-heading-anchor-permalink" href="#Time-and-State-Dependent-Operators" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CG3" href="#OrdinaryDiffEqLinear.CG3"><code>OrdinaryDiffEqLinear.CG3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CG3(; krylov = false, + iop = 0)</code></pre><p>Semilinear ODE solver Fourth order Crouch-Grossman method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{jackiewicz2000construction, title={Construction of Runge–Kutta methods of Crouch–Grossman type of high order}, author={Jackiewicz, Zdzislaw and Marthinsen, Arne and Owren, Brynjulf}, journal={Advances in Computational Mathematics}, volume={13}, pages={405–415}, year={2000}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.MagnusAdapt4" href="#OrdinaryDiffEqLinear.MagnusAdapt4"><code>OrdinaryDiffEqLinear.MagnusAdapt4</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">MagnusAdapt4()</code></pre><p>Semilinear ODE solver Fourth Order Adaptive Magnus method.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{li2008adaptive, title={Adaptive explicit Magnus numerical method for nonlinear dynamical systems}, author={Li, Wen-cheng and Deng, Zi-chen}, journal={Applied Mathematics and Mechanics}, volume={29}, number={9}, pages={1111–1118}, year={2008}, publisher={Springer}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L119-L137">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CayleyEuler" href="#OrdinaryDiffEqLinear.CayleyEuler"><code>OrdinaryDiffEqLinear.CayleyEuler</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CayleyEuler()</code></pre><p>Semilinear ODE solver First order method using Cayley transformations.</p><p><strong>Keyword Arguments</strong></p><p><strong>References</strong></p><p>@article{iserles2000lie, title={Lie-group methods}, author={Iserles, Arieh and Munthe-Kaas, Hans Z and Norsett, Syvert P and Zanna, Antonella}, journal={Acta numerica}, volume={9}, pages={215–365}, year={2000}, publisher={Cambridge University Press}}</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L133-L150">source</a></section></article><h3 id="Time-and-State-Dependent-Operators"><a class="docs-heading-anchor" href="#Time-and-State-Dependent-Operators">Time and State-Dependent Operators</a><a id="Time-and-State-Dependent-Operators-1"></a><a class="docs-heading-anchor-permalink" href="#Time-and-State-Dependent-Operators" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="OrdinaryDiffEqLinear.CG3" href="#OrdinaryDiffEqLinear.CG3"><code>OrdinaryDiffEqLinear.CG3</code></a> — <span class="docstring-category">Type</span><span class="is-flex-grow-1 docstring-article-toggle-button" title="Collapse docstring"></span></header><section><div><pre><code class="language-julia hljs">CG3(; krylov = false, m = 30, - iop = 0)</code></pre><p>Semilinear ODE solver Third order Crouch-Grossman method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{crouch1993numerical, title={Numerical integration of ordinary differential equations on manifolds}, author={Crouch, Peter E and Grossman, R}, journal={Journal of Nonlinear Science}, volume={3}, pages={1–33}, year={1993}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/eef9911648fa411804bac03511020a5d5975b7ab/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../ExponentialRK/">« OrdinaryDiffEqExponentialRK</a><a class="docs-footer-nextpage" href="../../massmatrixdae/Rosenbrock/">OrdinaryDiffEqRosenbrock »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> + iop = 0)</code></pre><p>Semilinear ODE solver Third order Crouch-Grossman method.</p><p><strong>Keyword Arguments</strong></p><ul><li><code>krylov</code>: Determines whether Krylov approximation or operator caching is used, the latter only available for semilinear problems. <code>krylov=true</code> is much faster for larger systems and is thus recommended whenever there are >100 ODEs.</li><li><code>m</code>: Controls the size of Krylov subspace.</li><li><code>iop</code>: If not zero, determines the length of the incomplete orthogonalization procedure (IOP). Note that if the linear operator/Jacobian is hermitian, then the Lanczos algorithm will always be used and the IOP setting is ignored.</li></ul><p><strong>References</strong></p><p>@article{crouch1993numerical, title={Numerical integration of ordinary differential equations on manifolds}, author={Crouch, Peter E and Grossman, R}, journal={Journal of Nonlinear Science}, volume={3}, pages={1–33}, year={1993}, publisher={Springer} }</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/SciML/OrdinaryDiffEq.jl/blob/f1e7a22cd81b4ad4eb2e805abae056ad58bca6bd/lib/OrdinaryDiffEqLinear/src/algorithms.jl#L94-L121">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../ExponentialRK/">« OrdinaryDiffEqExponentialRK</a><a class="docs-footer-nextpage" href="../../massmatrixdae/Rosenbrock/">OrdinaryDiffEqRosenbrock »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body><div data-docstringscollapsed="true"></div></html> diff --git a/dev/usage/index.html b/dev/usage/index.html index a62d84d4ce..43503cd5e9 100644 --- a/dev/usage/index.html +++ b/dev/usage/index.html @@ -39,4 +39,4 @@ initial_positions = [0.0, 0.1] initial_velocities = [0.5, 0.0] prob = SecondOrderODEProblem(HH_acceleration, initial_velocities, initial_positions, tspan) -sol2 = solve(prob, KahanLi8(), dt = 1 / 10);</code></pre><p>Other refined forms are IMEX and semi-linear ODEs (for exponential integrators).</p><h2 id="Available-Solvers"><a class="docs-heading-anchor" href="#Available-Solvers">Available Solvers</a><a id="Available-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Available-Solvers" title="Permalink"></a></h2><p>For the list of available solvers, please refer to the <a href="https://diffeq.sciml.ai/dev/solvers/ode_solve/">DifferentialEquations.jl ODE Solvers</a>, <a href="http://diffeq.sciml.ai/dev/solvers/dynamical_solve/">Dynamical ODE Solvers</a>, and the <a href="http://diffeq.sciml.ai/dev/solvers/split_ode_solve/">Split ODE Solvers</a> pages.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« OrdinaryDiffEq.jl: ODE solvers and utilities</a><a class="docs-footer-nextpage" href="../explicit/Tsit5/">OrdinaryDiffEqTsit5 »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 13:45">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> +sol2 = solve(prob, KahanLi8(), dt = 1 / 10);</code></pre><p>Other refined forms are IMEX and semi-linear ODEs (for exponential integrators).</p><h2 id="Available-Solvers"><a class="docs-heading-anchor" href="#Available-Solvers">Available Solvers</a><a id="Available-Solvers-1"></a><a class="docs-heading-anchor-permalink" href="#Available-Solvers" title="Permalink"></a></h2><p>For the list of available solvers, please refer to the <a href="https://diffeq.sciml.ai/dev/solvers/ode_solve/">DifferentialEquations.jl ODE Solvers</a>, <a href="http://diffeq.sciml.ai/dev/solvers/dynamical_solve/">Dynamical ODE Solvers</a>, and the <a href="http://diffeq.sciml.ai/dev/solvers/split_ode_solve/">Split ODE Solvers</a> pages.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« OrdinaryDiffEq.jl: ODE solvers and utilities</a><a class="docs-footer-nextpage" href="../explicit/Tsit5/">OrdinaryDiffEqTsit5 »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Monday 11 November 2024 14:26">Monday 11 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>