Skip to content

Commit

Permalink
build based on 8844430
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Dec 3, 2024
1 parent 8522124 commit f7dc080
Show file tree
Hide file tree
Showing 7 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion previews/PR147/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-12-03T03:10:38","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-12-03T14:52:56","documenter_version":"1.8.0"}}
8 changes: 4 additions & 4 deletions previews/PR147/api/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion previews/PR147/how_it_works/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@

ball(tρ, tθ, tφ) # for args in range [0, 1], maps to a corresponding Meshes.Point

ball(0, tθ, tφ) == center</code></pre><p>In effect, we can now use the geometry itself as a function that maps from three normalized (<span>$0 \le t \le 1$</span>) arguments to every point on the geometry. For the sake of generalization, let this parametric function be called <span>$g$</span>.</p><p class="math-container">\[\text{g}: (t_1,~t_2,~t_3) ~\mapsto~ \text{Point}\big[ x, ~y, ~z \big] \]</p><h2 id="Differential-Forms"><a class="docs-heading-anchor" href="#Differential-Forms">Differential Forms</a><a id="Differential-Forms-1"></a><a class="docs-heading-anchor-permalink" href="#Differential-Forms" title="Permalink"></a></h2><p>Using differential forms, the general solution for integrating a geometry with three parametric dimensions (<span>$t_1$</span>, <span>$t_2$</span>, and <span>$t_3$</span>) is</p><p class="math-container">\[\iiint f(r̄) ~ \text{d}V = \iiint f(\bar{r}) ~ \bar{\text{d}t_1} \wedge \bar{\text{d}t_2} \wedge \bar{\text{d}t_3}\]</p><p>This resultant differential (volume) element is formed at each point in the integration domain by taking <a href="https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant">the Jacobian</a> of the parametric function.</p><p class="math-container">\[\mathbf{J}_f = \begin{bmatrix} \bar{\text{d}t_1} &amp; \bar{\text{d}t_2} &amp; \bar{\text{d}t_3} \end{bmatrix}\]</p><p>where</p><p class="math-container">\[\bar{\text{d}t_n} = \frac{\partial}{\partial t_n} ~ \text{g}(t_1,~t_2,~t_3)\]</p><p>Each of these partial derivatives is a vector representing the direction that changing each parametric function argument will move the resultant point. The differential element (<span>$E$</span>) size is then calculated using geometric algebra as the magnitude of the exterior product (<span>$\wedge$</span>) of these three vectors.</p><p class="math-container">\[E(t_1,~t_2,~t_3) = \left\| \bar{\text{d}t_1} \wedge \bar{\text{d}t_2} \wedge \bar{\text{d}t_3} \right\|\]</p><p>Finally, we use the parametric function itself, <span>$g$</span>, as a map to all points <span>$\bar{r}$</span> in the integration domain. Since <code>Meshes.Geometry</code> parametric functions all operate on normalized domains, we can now solve any volume integral as simply</p><p class="math-container">\[\int_0^1 \int_0^1 \int_0^1 f\Big(\text{g}\big(t_1,~t_2,~t_3\big)\Big) ~ E(t_1,~t_2,~t_3) ~ \text{d}t_1 ~ \text{d}t_2 ~ \text{d}t_3\]</p><p>This form of integral can be trivially generalized to support <span>$n$</span>-dimensional geometries in a form that enables the use of a wide range of numerical integration libraries.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../usage/">« Example Usage</a><a class="docs-footer-nextpage" href="../specializations/">Specializations »</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.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 03:10">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
ball(0, tθ, tφ) == center</code></pre><p>In effect, we can now use the geometry itself as a function that maps from three normalized (<span>$0 \le t \le 1$</span>) arguments to every point on the geometry. For the sake of generalization, let this parametric function be called <span>$g$</span>.</p><p class="math-container">\[\text{g}: (t_1,~t_2,~t_3) ~\mapsto~ \text{Point}\big[ x, ~y, ~z \big] \]</p><h2 id="Differential-Forms"><a class="docs-heading-anchor" href="#Differential-Forms">Differential Forms</a><a id="Differential-Forms-1"></a><a class="docs-heading-anchor-permalink" href="#Differential-Forms" title="Permalink"></a></h2><p>Using differential forms, the general solution for integrating a geometry with three parametric dimensions (<span>$t_1$</span>, <span>$t_2$</span>, and <span>$t_3$</span>) is</p><p class="math-container">\[\iiint f(r̄) ~ \text{d}V = \iiint f(\bar{r}) ~ \bar{\text{d}t_1} \wedge \bar{\text{d}t_2} \wedge \bar{\text{d}t_3}\]</p><p>This resultant differential (volume) element is formed at each point in the integration domain by taking <a href="https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant">the Jacobian</a> of the parametric function.</p><p class="math-container">\[\mathbf{J}_f = \begin{bmatrix} \bar{\text{d}t_1} &amp; \bar{\text{d}t_2} &amp; \bar{\text{d}t_3} \end{bmatrix}\]</p><p>where</p><p class="math-container">\[\bar{\text{d}t_n} = \frac{\partial}{\partial t_n} ~ \text{g}(t_1,~t_2,~t_3)\]</p><p>Each of these partial derivatives is a vector representing the direction that changing each parametric function argument will move the resultant point. The differential element (<span>$E$</span>) size is then calculated using geometric algebra as the magnitude of the exterior product (<span>$\wedge$</span>) of these three vectors.</p><p class="math-container">\[E(t_1,~t_2,~t_3) = \left\| \bar{\text{d}t_1} \wedge \bar{\text{d}t_2} \wedge \bar{\text{d}t_3} \right\|\]</p><p>Finally, we use the parametric function itself, <span>$g$</span>, as a map to all points <span>$\bar{r}$</span> in the integration domain. Since <code>Meshes.Geometry</code> parametric functions all operate on normalized domains, we can now solve any volume integral as simply</p><p class="math-container">\[\int_0^1 \int_0^1 \int_0^1 f\Big(\text{g}\big(t_1,~t_2,~t_3\big)\Big) ~ E(t_1,~t_2,~t_3) ~ \text{d}t_1 ~ \text{d}t_2 ~ \text{d}t_3\]</p><p>This form of integral can be trivially generalized to support <span>$n$</span>-dimensional geometries in a form that enables the use of a wide range of numerical integration libraries.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../usage/">« Example Usage</a><a class="docs-footer-nextpage" href="../specializations/">Specializations »</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.8.0 on <span class="colophon-date" title="Tuesday 3 December 2024 14:52">Tuesday 3 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit f7dc080

Please sign in to comment.