Skip to content

Commit

Permalink
build based on 27e4be6
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Nov 8, 2024
1 parent 851de41 commit 7d84dc9
Show file tree
Hide file tree
Showing 28 changed files with 62 additions and 62 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-08T07:13:05","documenter_version":"1.7.0"}}
{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-08T13:22:12","documenter_version":"1.7.0"}}
34 changes: 17 additions & 17 deletions dev/docstrings/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@
cb = Colorbar(fig[1, 3], h1, size = 20, height = 200)
ax2 = Axis(fig[1, 2]; title = "Approx. solution", opts...)
h2 = heatmap!(ax2, xx,yy, (x, y) -> inside((x,y)) ? uₕ((x,y)) : NaN, colorrange = cb.limits[])
viz!(msh; segmentsize = 3)</code></pre><img src="index-d6bc3839.png" alt="Example block output"/><div class="admonition is-info"><header class="admonition-header">Formulation of the problem as an integral equation</header><div class="admonition-body"><p>Given a PDE and boundary conditions, there are often many ways to recast the problem as an integral equation, and the choice of formulation plays an important role in the unique solvability, efficiency, and accuracy of the numerical solution. Inti.jl provides a flexible framework for experimenting with different formulations, but it is up to the user to choose the most appropriate one for their problem.</p></div></div><p>While the example above is a simple one, Inti.jl can handle significantly more complex problems involving multiple domains, heterogeneous coefficients, vector-valued PDEs, and three-dimensional geometries. The best way to dive deeper into Inti.jl&#39;s capabilities is the <a href="tutorials/getting_started/#Getting-started">tutorials</a> section. More advanced usage can be found in the <a href="pluto-examples/toy_example/#Toy-example">examples</a> section.</p><h2 id="Contributing"><a class="docs-heading-anchor" href="#Contributing">Contributing</a><a id="Contributing-1"></a><a class="docs-heading-anchor-permalink" href="#Contributing" title="Permalink"></a></h2><p>There are several ways to contribute to Inti.jl:</p><ul><li><strong>Reporting bugs</strong>: If you encounter a bug, please <a href="https://github.com/IntegralEquations/Inti.jl/issues/new">open an issue</a> on the GitHub. If possible, please include a minimal working example that reproduces the problem.</li><li><strong>Examples</strong>: If you have a cool example that showcases Inti.jl&#39;s capabilities, consider submitting a PR to add it to the examples section.</li><li><strong>Contributing code</strong>: If you would like to contribute code to Inti.jl, please fork the repository and submit a pull request. Feel free to open a draft PR early in the development process to get feedback on your changes.</li><li><strong>Feature requests</strong>: If you have an idea for a new feature or improvement, we would love to hear about it.</li><li><strong>Documentation</strong>: If you find any part of the documentation unclear or incomplete, please let us know. Or even better, submit a PR with the improved documentation.</li></ul><h2 id="Acknowledgements"><a class="docs-heading-anchor" href="#Acknowledgements">Acknowledgements</a><a id="Acknowledgements-1"></a><a class="docs-heading-anchor-permalink" href="#Acknowledgements" title="Permalink"></a></h2></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="tutorials/getting_started/">Getting started »</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="Friday 8 November 2024 07:13">Friday 8 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
viz!(msh; segmentsize = 3)</code></pre><img src="index-d6bc3839.png" alt="Example block output"/><div class="admonition is-info"><header class="admonition-header">Formulation of the problem as an integral equation</header><div class="admonition-body"><p>Given a PDE and boundary conditions, there are often many ways to recast the problem as an integral equation, and the choice of formulation plays an important role in the unique solvability, efficiency, and accuracy of the numerical solution. Inti.jl provides a flexible framework for experimenting with different formulations, but it is up to the user to choose the most appropriate one for their problem.</p></div></div><p>While the example above is a simple one, Inti.jl can handle significantly more complex problems involving multiple domains, heterogeneous coefficients, vector-valued PDEs, and three-dimensional geometries. The best way to dive deeper into Inti.jl&#39;s capabilities is the <a href="tutorials/getting_started/#Getting-started">tutorials</a> section. More advanced usage can be found in the <a href="pluto-examples/toy_example/#Toy-example">examples</a> section.</p><h2 id="Contributing"><a class="docs-heading-anchor" href="#Contributing">Contributing</a><a id="Contributing-1"></a><a class="docs-heading-anchor-permalink" href="#Contributing" title="Permalink"></a></h2><p>There are several ways to contribute to Inti.jl:</p><ul><li><strong>Reporting bugs</strong>: If you encounter a bug, please <a href="https://github.com/IntegralEquations/Inti.jl/issues/new">open an issue</a> on the GitHub. If possible, please include a minimal working example that reproduces the problem.</li><li><strong>Examples</strong>: If you have a cool example that showcases Inti.jl&#39;s capabilities, consider submitting a PR to add it to the examples section.</li><li><strong>Contributing code</strong>: If you would like to contribute code to Inti.jl, please fork the repository and submit a pull request. Feel free to open a draft PR early in the development process to get feedback on your changes.</li><li><strong>Feature requests</strong>: If you have an idea for a new feature or improvement, we would love to hear about it.</li><li><strong>Documentation</strong>: If you find any part of the documentation unclear or incomplete, please let us know. Or even better, submit a PR with the improved documentation.</li></ul><h2 id="Acknowledgements"><a class="docs-heading-anchor" href="#Acknowledgements">Acknowledgements</a><a id="Acknowledgements-1"></a><a class="docs-heading-anchor-permalink" href="#Acknowledgements" title="Permalink"></a></h2></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="tutorials/getting_started/">Getting started »</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="Friday 8 November 2024 13:22">Friday 8 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Binary file modified dev/objects.inv
Binary file not shown.
12 changes: 6 additions & 6 deletions dev/pluto-examples/helmholtz_scattering/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@
meshsize = λ / 5
gmsh_circle(; meshsize, order = gorder, name)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Info : Meshing 1D...
Info : Meshing curve 1 (Ellipse)
Info : Done meshing 1D (Wall 0.000146754s, CPU 0.000148s)
Info : Done meshing 1D (Wall 0.000163636s, CPU 0.000166s)
Info : 63 nodes 64 elements
Info : Meshing order 2 (curvilinear on)...
Info : [ 0%] Meshing curve 1 order 2
Info : [ 60%] Meshing surface 1 order 2
Info : Done meshing order 2 (Wall 0.000377535s, CPU 0.000374s)
Info : Done meshing order 2 (Wall 0.000376095s, CPU 0.000373s)
Info : Writing &#39;/home/runner/work/Inti.jl/Inti.jl/docs/build/pluto-examples/circle.msh&#39;...
Info : Done writing &#39;/home/runner/work/Inti.jl/Inti.jl/docs/build/pluto-examples/circle.msh&#39;</code></pre><p>We can now import the file and parse the mesh and domain information into <code>Inti.jl</code> using the <a href="../../docstrings/#Inti.import_mesh-Tuple"><code>import_mesh</code></a> function:</p><pre><code class="language-julia hljs">Inti.clear_entities!() # empty the entity cache
msh = Inti.import_mesh(name; dim = 2)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Inti.Mesh{2, Float64} containing:
63 elements of type Inti.LagrangeElement{Inti.ReferenceHyperCube{1}, 3, StaticArraysCore.SVector{2, Float64}}
1 elements of type StaticArraysCore.SVector{2, Float64}</code></pre><p>The code above will import the mesh with all of its geometrical entities. The <code>dim=2</code> projects all points to two dimensions by ignoring the third component. To extract the domain <span>$\Omega$</span> we need to filter the entities in the mesh; here we will simply filter them based on the <code>geometric_dimension</code>:</p><pre><code class="language-julia hljs">Ω = Inti.Domain(e -&gt; Inti.geometric_dimension(e) == 2, Inti.entities(msh))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Domain with 1 entity
1 elements of type StaticArraysCore.SVector{2, Float64}
63 elements of type Inti.LagrangeElement{Inti.ReferenceHyperCube{1}, 3, StaticArraysCore.SVector{2, Float64}}</code></pre><p>The code above will import the mesh with all of its geometrical entities. The <code>dim=2</code> projects all points to two dimensions by ignoring the third component. To extract the domain <span>$\Omega$</span> we need to filter the entities in the mesh; here we will simply filter them based on the <code>geometric_dimension</code>:</p><pre><code class="language-julia hljs">Ω = Inti.Domain(e -&gt; Inti.geometric_dimension(e) == 2, Inti.entities(msh))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Domain with 1 entity
EntityKey: (2, 1) =&gt; Inti.GeometricEntity with labels String[]</code></pre><p>To solve our boundary integral equation usign a Nyström method, we actually need a quadrature of our curve/surface (and possibly the normal vectors at the quadrature nodes). Once a mesh is available, creating a quadrature object can be done via the <a href="../../docstrings/#Inti.Quadrature"><code>Quadrature</code></a> constructor, which requires passing a mesh of the domain that one wishes to generate a quadrature for:</p><pre><code class="language-julia hljs">Γ = Inti.boundary(Ω)
Γ_msh = view(msh, Γ)
Q = Inti.Quadrature(Γ_msh; qorder)</code></pre><div class="admonition is-success"><header class="admonition-header">Views of a mesh</header><div class="admonition-body"><p>In <code>Inti.jl</code>, you can use domain to create a <em>view</em> of a mesh containing <em>only the elements in the domain</em>. For example <code>view(msh,Γ)</code> will return an <code>SubMesh</code> type that you can use to iterate over the elements in the boundary of the disk without actually creating a new mesh. You can use <code>msh[Γ]</code>, or <code>collect(view(msh,Γ))</code> to create a new mesh containing <em>only</em> the elements and nodes in <code>Γ</code>.</p></div></div><p>The object <code>Q</code> now contains a quadrature (of order <code>4</code>) that can be used to solve a boundary integral equation on <code>Γ</code>. As a sanity check, let&#39;s make sure integrating the function <code>x-&gt;1</code> over <code>Q</code> gives an approximation to the perimeter:</p><pre><code class="language-julia hljs">abs(Inti.integrate(x -&gt; 1, Q) - 2π)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">6.470135849312442e-7</code></pre><p>With the <a href="../../docstrings/#Inti.Quadrature"><code>Quadrature</code></a> constructed, we now can define discrete approximation to the integral operators <span>$\mathrm{S}$</span> and <span>$\mathrm{D}$</span> as follows:</p><pre><code class="language-julia hljs">op = Inti.Helmholtz(; k, dim = 2)
Expand Down Expand Up @@ -213,7 +213,7 @@
x = 2 * x̂
return abs(uₛ_3d(x) - uₑ_3d(x))
end
@info &quot;error with correction = $er_3d&quot;</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">[ Info: error with correction = 3.2643662518176203e-5</code></pre><p>We see that, once again, the approximation is quite accurate. Let us now visualize the solution on the punctured plane (which we labeled as &quot;sigma&quot;). Since evaluating the integral representation of the solution at many points is expensive, we will use again use a method to accelerate the evaluation:</p><pre><code class="language-julia hljs">Σ_msh = view(msh_3d, Σ_3d)
@info &quot;error with correction = $er_3d&quot;</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">[ Info: error with correction = 3.1928794362372006e-5</code></pre><p>We see that, once again, the approximation is quite accurate. Let us now visualize the solution on the punctured plane (which we labeled as &quot;sigma&quot;). Since evaluating the integral representation of the solution at many points is expensive, we will use again use a method to accelerate the evaluation:</p><pre><code class="language-julia hljs">Σ_msh = view(msh_3d, Σ_3d)
target = Inti.nodes(Σ_msh)

S_viz, D_viz = Inti.single_double_layer(;
Expand All @@ -234,4 +234,4 @@
ax_3d = Axis3(fig_3d[1, 1]; aspect = :data)
viz!(Γ_msh_3d; colorrange, colormap, color = zeros(nv), interpolate = true)
viz!(Σ_msh; colorrange, colormap, color = real(u_eval_msh))
cb = Colorbar(fig_3d[1, 2]; label = &quot;real(u)&quot;, colormap, colorrange)</code></pre><img src="d51694bb.png" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../toy_example/">« Toy example</a><a class="docs-footer-nextpage" href="../poisson/">Poisson problem »</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="Friday 8 November 2024 07:13">Friday 8 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
cb = Colorbar(fig_3d[1, 2]; label = &quot;real(u)&quot;, colormap, colorrange)</code></pre><img src="d51694bb.png" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../toy_example/">« Toy example</a><a class="docs-footer-nextpage" href="../poisson/">Poisson problem »</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="Friday 8 November 2024 13:22">Friday 8 November 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 7d84dc9

Please sign in to comment.