Skip to content

Commit

Permalink
build based on 6839f2e
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Oct 5, 2023
0 parents commit 96010eb
Show file tree
Hide file tree
Showing 1,695 changed files with 745,180 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-10-05T23:20:59","documenter_version":"1.1.0"}}
13 changes: 13 additions & 0 deletions dev/algorithm_formulations/lsrk/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Old LSRK Formulations · ClimaTimeSteppers</title><meta name="title" content="Old LSRK Formulations · ClimaTimeSteppers"/><meta property="og:title" content="Old LSRK Formulations · ClimaTimeSteppers"/><meta property="twitter:title" content="Old LSRK Formulations · ClimaTimeSteppers"/><meta name="description" content="Documentation for ClimaTimeSteppers."/><meta property="og:description" content="Documentation for ClimaTimeSteppers."/><meta property="twitter:description" content="Documentation for ClimaTimeSteppers."/><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/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></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">ClimaTimeSteppers</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="../../">ClimaTimeSteppers.jl</a></li><li><input class="collapse-toggle" id="menuitem-2" type="checkbox" checked/><label class="tocitem" for="menuitem-2"><span class="docs-label">Algorithm Formulations</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../ode_solvers/">ODE Solvers</a></li><li><a class="tocitem" href="../newtons_method/">Newtons Method</a></li><li class="is-active"><a class="tocitem" href>Old LSRK Formulations</a></li><li><a class="tocitem" href="../mrrk/">Old MRRK Formulations</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-3" type="checkbox"/><label class="tocitem" for="menuitem-3"><span class="docs-label">Test problems</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../test_problems/">Test problems</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-4" type="checkbox"/><label class="tocitem" for="menuitem-4"><span class="docs-label">API docs</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../api/ode_solvers/">ODE Solvers</a></li><li><a class="tocitem" href="../../api/newtons_method/">Newtons Method</a></li><li><a class="tocitem" href="../../api/callbacks/">Callbacks</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-5" type="checkbox"/><label class="tocitem" for="menuitem-5"><span class="docs-label">Developer docs</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../dev/types/">Types</a></li><li><a class="tocitem" href="../../dev/report_gen/">Report generator</a></li></ul></li><li><a class="tocitem" href="../../references/">References</a></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">Algorithm Formulations</a></li><li class="is-active"><a href>Old LSRK Formulations</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Old LSRK Formulations</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/CliMA/ClimaTimeSteppers.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/CliMA/ClimaTimeSteppers.jl/blob/main/docs/src/algorithm_formulations/lsrk.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"><h1 id="Low-storage-Runge–Kutta-methods"><a class="docs-heading-anchor" href="#Low-storage-Runge–Kutta-methods">Low-storage Runge–Kutta methods</a><a id="Low-storage-Runge–Kutta-methods-1"></a><a class="docs-heading-anchor-permalink" href="#Low-storage-Runge–Kutta-methods" title="Permalink"></a></h1><p>LSRK methods are self-starting, with <span>$U^{(1)} = u^n$</span>, and then using stage updates of the form</p><p class="math-container">\[\begin{aligned}
dU^{(i)} &amp;= f(U^{(i)}, t + c_i \Delta t) + A_i dU^{(i-1)}\\
U^{(i+1)} &amp;= U^{(i)} + \Delta t B_i dU^{(i)}
\end{aligned}\]</p><p>where <span>$A_1 = c_1 = 0$</span> (implying <span>$dU^{(1)} = f(u^n, t)$</span>), with the value at the next step being the <span>$N+1$</span>th stage value <span>$u^{n+1} = U^{(N+1)})$</span>.</p><p>This allows the updates to be performed with only two copies of the state vector (so long as <code>f</code> can be evaluated in incrementing form).</p><p>It can be written as an RK scheme with Butcher tableau coefficients defined by the recurrences</p><p class="math-container">\[\begin{aligned}
a_{i,i} &amp;= 0 \\
a_{i,j} &amp;= B_j + A_{j+1} a_{i,j+1}\\
b_N &amp;= B_N \\
b_i &amp;= B_i + A_{i+1} b_{i+1}
\end{aligned}\]</p><p>or equivalently</p><p class="math-container">\[\begin{aligned}
a_{j,j} &amp;= 0 \\
a_{i,j} &amp;= a_{i-1,j} + B_{i-1} \prod_{k=j+1}^{i-1} A_k
\end{aligned}\]</p><p>with <span>$b_j$</span> treated analogously as <span>$a_{N+1,j}$</span>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../newtons_method/">« Newtons Method</a><a class="docs-footer-nextpage" href="../mrrk/">Old MRRK Formulations »</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="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.0 on <span class="colophon-date" title="Thursday 5 October 2023 23:20">Thursday 5 October 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
28 changes: 28 additions & 0 deletions dev/algorithm_formulations/mrrk/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Old MRRK Formulations · ClimaTimeSteppers</title><meta name="title" content="Old MRRK Formulations · ClimaTimeSteppers"/><meta property="og:title" content="Old MRRK Formulations · ClimaTimeSteppers"/><meta property="twitter:title" content="Old MRRK Formulations · ClimaTimeSteppers"/><meta name="description" content="Documentation for ClimaTimeSteppers."/><meta property="og:description" content="Documentation for ClimaTimeSteppers."/><meta property="twitter:description" content="Documentation for ClimaTimeSteppers."/><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/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></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">ClimaTimeSteppers</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="../../">ClimaTimeSteppers.jl</a></li><li><input class="collapse-toggle" id="menuitem-2" type="checkbox" checked/><label class="tocitem" for="menuitem-2"><span class="docs-label">Algorithm Formulations</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../ode_solvers/">ODE Solvers</a></li><li><a class="tocitem" href="../newtons_method/">Newtons Method</a></li><li><a class="tocitem" href="../lsrk/">Old LSRK Formulations</a></li><li class="is-active"><a class="tocitem" href>Old MRRK Formulations</a><ul class="internal"><li><a class="tocitem" href="#Low-storage"><span>Low-storage</span></a></li><li><a class="tocitem" href="#Multirate-Infinitesimal-Step-(MIS)"><span>Multirate Infinitesimal Step (MIS)</span></a></li><li><a class="tocitem" href="#Wicker-Skamarock"><span>Wicker Skamarock</span></a></li></ul></li></ul></li><li><input class="collapse-toggle" id="menuitem-3" type="checkbox"/><label class="tocitem" for="menuitem-3"><span class="docs-label">Test problems</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../test_problems/">Test problems</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-4" type="checkbox"/><label class="tocitem" for="menuitem-4"><span class="docs-label">API docs</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../api/ode_solvers/">ODE Solvers</a></li><li><a class="tocitem" href="../../api/newtons_method/">Newtons Method</a></li><li><a class="tocitem" href="../../api/callbacks/">Callbacks</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-5" type="checkbox"/><label class="tocitem" for="menuitem-5"><span class="docs-label">Developer docs</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../dev/types/">Types</a></li><li><a class="tocitem" href="../../dev/report_gen/">Report generator</a></li></ul></li><li><a class="tocitem" href="../../references/">References</a></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">Algorithm Formulations</a></li><li class="is-active"><a href>Old MRRK Formulations</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Old MRRK Formulations</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/CliMA/ClimaTimeSteppers.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/CliMA/ClimaTimeSteppers.jl/blob/main/docs/src/algorithm_formulations/mrrk.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"><h1 id="Multirate-Runge-Kutta"><a class="docs-heading-anchor" href="#Multirate-Runge-Kutta">Multirate Runge Kutta</a><a id="Multirate-Runge-Kutta-1"></a><a class="docs-heading-anchor-permalink" href="#Multirate-Runge-Kutta" title="Permalink"></a></h1><p>Given a problem with two components that operate at two rates:</p><p class="math-container">\[\frac{du}{dt} = f_F(u,t) + f_S(u,t)\]</p><p>where <span>$f_F$</span> is the <em>fast</em> component, and <span>$f_S$</span> is the <em>slow</em> component.</p><p><a href="../../references/#SKAW2012">[3]</a> defines the following method.</p><p>Given an outer explicit Runge–Kutta scheme with tableau <span>$(a,b,c)$</span></p><p>We can define the stage values <span>$U^{(i)} = v_i(\tau_i)$</span> as the solution to the <em>inner</em> ODE problem</p><p class="math-container">\[\frac{dv_i}{d\tau}
= \sum_{j=1}^i \frac{a_{ij} - a_{i-1,j}}{c_i - c_{i-1}} f_S (U^{(j)}, \tau_j)
+ f_F(v_i, \tau),
\quad \tau \in [\tau_{i-1}, \tau]\]</p><p>where <span>$\tau_i = t + \Delta t c_i$</span>, with initial condition <span>$v_i(\tau_{i-1}) = U^{(i-1)}$</span>. If <span>$c_i == c_{i-1}$</span>, we can treat it as a correction step:</p><p class="math-container">\[U^{(i)} = U^{(i-1)} + \Delta t \frac{\sum_{j=1}^i (a_{ij} - a_{i-1,j})}{c_i - c_{i-1}} f_S (U^{(j)}, \tau_i)\]</p><p>The final summation stage treating analogously to <span>$i=N+1$</span>, with <span>$a_{N+1,j} = b_j$</span> and <span>$c_{N+1} = 1$</span>.</p><h2 id="Low-storage"><a class="docs-heading-anchor" href="#Low-storage">Low-storage</a><a id="Low-storage-1"></a><a class="docs-heading-anchor-permalink" href="#Low-storage" title="Permalink"></a></h2><p>If using a low-storage Runge–Kutta method is used as an outer solver, then this reduces to</p><p class="math-container">\[\frac{dv_i}{d\tau}
= \frac{B_{i-1}}{c_i - c_{i-1}} dU_S^{(i-1)}
+ f_F(v_i, \tau),
\quad \tau \in [\tau_{i-1}, \tau]\]</p><p>where</p><p class="math-container">\[dU_S^{(i)} = f_S(U^{(i)}, \tau_i) + A_i dU_S^{(i-1)}\]</p><h2 id="Multirate-Infinitesimal-Step-(MIS)"><a class="docs-heading-anchor" href="#Multirate-Infinitesimal-Step-(MIS)">Multirate Infinitesimal Step (MIS)</a><a id="Multirate-Infinitesimal-Step-(MIS)-1"></a><a class="docs-heading-anchor-permalink" href="#Multirate-Infinitesimal-Step-(MIS)" title="Permalink"></a></h2><p>Multirate Infinitesimal Step (MIS) methods (<a href="../../references/#WKG2009">[4]</a>, <a href="../../references/#KW2014">[5]</a>)</p><p class="math-container">\[\begin{aligned}
v_i (0)
&amp;= u^n + \sum_{j=1}^{i-1} \alpha_{ij} (U^{(j)} - u^n)
\\
\frac{dv_i}{d\tau}
&amp;= \sum_{j=1}^{i-1} \frac{\gamma_{ij}}{d_i \Delta t} (U^{(j)} - u^n)
+ \sum_{j=1}^i \frac{\beta_{ij}}{d_i} f_S (U^{(j)}, t + \Delta t c_i)
+ f_F(v_i, t^n + \Delta t \tilde c_i + \frac{c_i - \tilde c_i}{d_i} \tau),
\quad \tau \in [0, \Delta t d_i]
\\
U^{(i)} &amp;= v_i(\Delta t d_i)
\end{aligned}\]</p><p>The method is defined in terms of the lower-triangular matrices <span>$\alpha$</span>, <span>$\beta$</span> and <span>$\gamma$</span>, with <span>$d_i = \sum_j \beta_{ij}$</span>, <span>$c_i = (I - \alpha - \gamma)^{-1} d$</span> and <span>$\tilde c = \alpha c$</span>.</p><h2 id="Wicker-Skamarock"><a class="docs-heading-anchor" href="#Wicker-Skamarock">Wicker Skamarock</a><a id="Wicker-Skamarock-1"></a><a class="docs-heading-anchor-permalink" href="#Wicker-Skamarock" title="Permalink"></a></h2><p><a href="../../references/#WS1998">[6]</a> and <a href="../../references/#WS2002">[7]</a> define RK2 and RK3 multirate schemes:</p><p class="math-container">\[\begin{aligned}
v_i (t) &amp;= u^n
\\
\frac{dv_i}{d\tau}
&amp;= f_S (U^{(i-1)}, t + \Delta t c_{i-1})
+ f_F(v_i, \tau),
\quad \tau \in [t, t+ \Delta t c_i ]
\\
U^{(i)} &amp;= v_i(t + \Delta t c_i)
\end{aligned}\]</p><p>which corresponds to an MIS method with <span>$\alpha = \gamma = 0$</span> and <span>$\beta = \operatorname{diag}(c)$</span>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../lsrk/">« Old LSRK Formulations</a><a class="docs-footer-nextpage" href="../../test_problems/">Test problems »</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="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.0 on <span class="colophon-date" title="Thursday 5 October 2023 23:20">Thursday 5 October 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 96010eb

Please sign in to comment.