Skip to content

Commit 2afeb26

Browse files
author
Documenter.jl
committed
build based on 0d30f3c
1 parent f79cb26 commit 2afeb26

File tree

54 files changed

+62
-62
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+62
-62
lines changed

dev/.documenter-siteinfo.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"documenter":{"julia_version":"1.11.7","generation_timestamp":"2025-10-07T20:13:06","documenter_version":"1.14.1"}}
1+
{"documenter":{"julia_version":"1.12.0","generation_timestamp":"2025-10-09T13:12:56","documenter_version":"1.14.1"}}
23 KB
Loading

dev/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

dev/man/AdvOneD/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@
3939
k_3 & = \Delta{t} \cdot v_x(t^n+\Delta{t}/2,x_p^n + k_2/2) \\
4040
k_4 & = \Delta{t} \cdot v_x(t^n+\Delta{t},x_p^n+k_3) \\
4141
\end{split}
42-
\end{equation}\]</p><p><strong>3. Interpolate grid values</strong> of <span>$f(x,t)$</span> from the tracer positions <span>$\vec{x}_p$</span>, e.g., using bilinear interpolation.</p><p>Despite the advantages, care is required. Interpolation between grid and tracer data can cause smoothing and numerical diffusion, particularly in regions with sharp gradients. Additionally, clustering or depletion of tracers can introduce further errors and may require adaptive insertion of new tracers in under-sampled regions.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../AdvectMain/">« General</a><a class="docs-footer-nextpage" href="../AdvTwoD/">2D »</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.14.1 on <span class="colophon-date" title="Tuesday 7 October 2025 20:13">Tuesday 7 October 2025</span>. Using Julia version 1.11.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
42+
\end{equation}\]</p><p><strong>3. Interpolate grid values</strong> of <span>$f(x,t)$</span> from the tracer positions <span>$\vec{x}_p$</span>, e.g., using bilinear interpolation.</p><p>Despite the advantages, care is required. Interpolation between grid and tracer data can cause smoothing and numerical diffusion, particularly in regions with sharp gradients. Additionally, clustering or depletion of tracers can introduce further errors and may require adaptive insertion of new tracers in under-sampled regions.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../AdvectMain/">« General</a><a class="docs-footer-nextpage" href="../AdvTwoD/">2D »</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.14.1 on <span class="colophon-date" title="Thursday 9 October 2025 13:12">Thursday 9 October 2025</span>. Using Julia version 1.12.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

dev/man/AdvTwoD/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@
3434
k_4 &amp; = \Delta{t} \cdot v_x(t^n+\Delta{t},(x_p^n+k_3,y_p^n+m_3)) \\
3535
m_4 &amp; = \Delta{t} \cdot v_y(t^n+\Delta{t},(y_p^n+k_3,y_p^n+m_3)) \\
3636
\end{split}
37-
\end{equation}\]</p><p>Per default, the tracers are advected by the velocity of the staggered velocity vertices. However, if required the velocity on the centroids or a combination of both is possible. The tracer velocity is calculated using a bilinear interpolation scheme. </p><p>The tracers can also be advected parallel by defining the maximum number of threads in the VScode julia extension settings (&quot;julia.NumThreads&quot;). </p><p>Tracers can carry different properties such as absolute temperature or phase identification number (ID). For temperature, interpolation between centroids and tracer positions is required. Note that this implementation currently does not support fully coupled temperature-momentum simulations.</p><p>Alternatively, phase IDs (linked to properties like constant density or viscosity) can be advected to simulate compositional heterogeneity. Property interpolation is performed at vertices or centroids depending on the required context (e.g., viscosity for the momentum equations).</p><p>Caution is required when interpolating properties between the grid and tracers, especially when those properties influence the governing equations (e.g., viscosity in momentum conservation).</p><p>Currently, no new tracers are inserted where needed, limiting the applicability of this approach for coupled temperature-momentum models.</p><p>For implementation details, please refer to the <a href="https://github.com/GeoSci-FFM/GeoModBox.jl/blob/main/src/AdvectionEquation/2Dsolvers.jl">source code</a>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../AdvOneD/">« 1D</a><a class="docs-footer-nextpage" href="../MomentumMain/">General »</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.14.1 on <span class="colophon-date" title="Tuesday 7 October 2025 20:13">Tuesday 7 October 2025</span>. Using Julia version 1.11.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
37+
\end{equation}\]</p><p>Per default, the tracers are advected by the velocity of the staggered velocity vertices. However, if required the velocity on the centroids or a combination of both is possible. The tracer velocity is calculated using a bilinear interpolation scheme. </p><p>The tracers can also be advected parallel by defining the maximum number of threads in the VScode julia extension settings (&quot;julia.NumThreads&quot;). </p><p>Tracers can carry different properties such as absolute temperature or phase identification number (ID). For temperature, interpolation between centroids and tracer positions is required. Note that this implementation currently does not support fully coupled temperature-momentum simulations.</p><p>Alternatively, phase IDs (linked to properties like constant density or viscosity) can be advected to simulate compositional heterogeneity. Property interpolation is performed at vertices or centroids depending on the required context (e.g., viscosity for the momentum equations).</p><p>Caution is required when interpolating properties between the grid and tracers, especially when those properties influence the governing equations (e.g., viscosity in momentum conservation).</p><p>Currently, no new tracers are inserted where needed, limiting the applicability of this approach for coupled temperature-momentum models.</p><p>For implementation details, please refer to the <a href="https://github.com/GeoSci-FFM/GeoModBox.jl/blob/main/src/AdvectionEquation/2Dsolvers.jl">source code</a>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../AdvOneD/">« 1D</a><a class="docs-footer-nextpage" href="../MomentumMain/">General »</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.14.1 on <span class="colophon-date" title="Thursday 9 October 2025 13:12">Thursday 9 October 2025</span>. Using Julia version 1.12.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

dev/man/AdvectMain/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
\frac{Dx_i}{Dt} = v_i,
1010
\end{equation}\]</p><p>where <span>$x_i$</span> are the coordinates and <span>$v_i$</span> the corresponding velocity components.</p><h2 id="Discretization-Schemes"><a class="docs-heading-anchor" href="#Discretization-Schemes">Discretization Schemes</a><a id="Discretization-Schemes-1"></a><a class="docs-heading-anchor-permalink" href="#Discretization-Schemes" title="Permalink"></a></h2><p>Although simple in form, the advection equation is challenging to solve numerically. The choice of discretization and interpolation schemes can introduce numerical artifacts such as diffusion, dispersion, or instability.</p><p>To promote clarity and modularity, <code>GeoModBox.jl</code> employs an <strong>operator-splitting</strong> strategy. This approach decouples the advective and diffusive terms of the temperature conservation equation and solves them sequentially. First, the advective (convective) term is solved, followed by the diffusive term. The latter is handled using the schemes described in the <a href="../DiffMain/">Diffusion Equation documentation</a>. </p><blockquote><p><strong>Note:</strong> The energy equation can also be solved for diffusion and advection simultaneously using combined schemes. Interestingly, the <em>Forward in Time and Centered in Space (FTCS)</em> scheme—although unstable for pure advection—can exhibit numerical stability due to diffusion when both processes are active.</p></blockquote><p>For the advection term, <code>GeoModBox.jl</code> includes the following numerical schemes:</p><ul><li>Upwind </li><li>Lax </li><li>Staggered leapfrog </li><li>Semi-Lagrangian </li><li>Passive tracer/marker method</li></ul><p>The first four schemes work for any scalar field defined at <strong>centroids</strong>, including ghost nodes, and use centroid-defined velocity fields.</p><p><strong>Passive tracers</strong> can be used to advect temperature or phase identifiers. When advecting phase IDs, the tracer data must also include material parameters such as viscosity or density. These values are interpolated either to centroids or to vertices, depending on the quantity (e.g., viscosity at vertices). The <strong>tracer or marker-in-cell (MIC) method</strong> tracks material properties along particle paths and solves the associated ODE system using standard time integration methods, including:</p><ul><li>Euler method </li><li>Runge–Kutta methods</li></ul><p>The <code>GeoModBox.jl</code> focuses on the tracer advection using a fourth-order Runge–Kutta method, with velocities from the staggered grid.</p><p>An important consideration in advection is the <strong>preservation of amplitude and shape</strong>, especially in problems involving rigid body rotation. Numerical diffusion and interpolation artifacts can significantly affect the solution quality depending on the chosen scheme, making the selection of an appropriate method crucial.</p><h2 id="Advection-Stability-Criterion"><a class="docs-heading-anchor" href="#Advection-Stability-Criterion">Advection Stability Criterion</a><a id="Advection-Stability-Criterion-1"></a><a class="docs-heading-anchor-permalink" href="#Advection-Stability-Criterion" title="Permalink"></a></h2><p>To avoid spurious oscillations in the advected field between adjacent grid points, the <em>Courant–Friedrichs–Lewy (CFL)</em> criterion must be satisfied:</p><p class="math-container">\[\begin{equation}
1111
\Delta{t} \le \frac{\textrm{min}\left(\Delta{x},\Delta{y}\right)}{\textrm{max}\left(v_x,v_y\right)},
12-
\end{equation}\]</p><p>where <span>$\Delta{x}$</span> and <span>$\Delta{y}$</span> are the spatial resolutions in the <span>$x$</span>- and <span>$y$</span>-directions, and <span>$v_x$</span>, <span>$v_y$</span> are the corresponding velocity components.</p><p>This criterion ensures that no particle is advected a greater distance than the minimum grid spacing within one time step.</p><h2 id="Examples"><a class="docs-heading-anchor" href="#Examples">Examples</a><a id="Examples-1"></a><a class="docs-heading-anchor-permalink" href="#Examples" title="Permalink"></a></h2><ul><li><a href="../examples/Advection2D/">2-D advection with constant velocity field</a> </li><li><a href="../examples/AdvectionRestest2D/">Resolution test of 2-D advection</a></li></ul><p>See the <a href="../Examples/">examples documentation</a> for further details.</p><h2 id="Exercises"><a class="docs-heading-anchor" href="#Exercises">Exercises</a><a id="Exercises-1"></a><a class="docs-heading-anchor-permalink" href="#Exercises" title="Permalink"></a></h2><ul><li><a href="../exercises/06_1D_Advection/">1-D Gaussian or block anomaly advection</a> </li><li><a href="../exercises/07_2D_Energy_Equation/">2-D coupled advection-diffusion</a></li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../DiffTwoD/">« 2D</a><a class="docs-footer-nextpage" href="../AdvOneD/">1D »</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.14.1 on <span class="colophon-date" title="Tuesday 7 October 2025 20:13">Tuesday 7 October 2025</span>. Using Julia version 1.11.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
12+
\end{equation}\]</p><p>where <span>$\Delta{x}$</span> and <span>$\Delta{y}$</span> are the spatial resolutions in the <span>$x$</span>- and <span>$y$</span>-directions, and <span>$v_x$</span>, <span>$v_y$</span> are the corresponding velocity components.</p><p>This criterion ensures that no particle is advected a greater distance than the minimum grid spacing within one time step.</p><h2 id="Examples"><a class="docs-heading-anchor" href="#Examples">Examples</a><a id="Examples-1"></a><a class="docs-heading-anchor-permalink" href="#Examples" title="Permalink"></a></h2><ul><li><a href="../examples/Advection2D/">2-D advection with constant velocity field</a> </li><li><a href="../examples/AdvectionRestest2D/">Resolution test of 2-D advection</a></li></ul><p>See the <a href="../Examples/">examples documentation</a> for further details.</p><h2 id="Exercises"><a class="docs-heading-anchor" href="#Exercises">Exercises</a><a id="Exercises-1"></a><a class="docs-heading-anchor-permalink" href="#Exercises" title="Permalink"></a></h2><ul><li><a href="../exercises/06_1D_Advection/">1-D Gaussian or block anomaly advection</a> </li><li><a href="../exercises/07_2D_Energy_Equation/">2-D coupled advection-diffusion</a></li></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../DiffTwoD/">« 2D</a><a class="docs-footer-nextpage" href="../AdvOneD/">1D »</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.14.1 on <span class="colophon-date" title="Thursday 9 October 2025 13:12">Thursday 9 October 2025</span>. Using Julia version 1.12.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>

0 commit comments

Comments
 (0)