Skip to content

Commit f78476a

Browse files
author
FEniCS GitHub Actions
committed
1 parent 1624679 commit f78476a

File tree

8 files changed

+480
-481
lines changed

8 files changed

+480
-481
lines changed

dolfinx/main/cpp/demos/demo_biharmonic.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ <h3>Weak formulation<a class="headerlink" href="#weak-formulation" title="Link t
135135
\forall \ K \in \mathcal{T} \right\}
136136
\]</div>
137137
<p>and considering the boundary conditions</p>
138-
<div class="amsmath math notranslate nohighlight" id="equation-c71e9064-751d-4c26-95b8-26620dd67d00">
139-
<span class="eqno">(1)<a class="headerlink" href="#equation-c71e9064-751d-4c26-95b8-26620dd67d00" title="Permalink to this equation"></a></span>\[\begin{align}
138+
<div class="amsmath math notranslate nohighlight" id="equation-79c699de-77cf-4844-9553-75a79d1abdd0">
139+
<span class="eqno">(1)<a class="headerlink" href="#equation-79c699de-77cf-4844-9553-75a79d1abdd0" title="Permalink to this equation"></a></span>\[\begin{align}
140140
u &amp;= 0 \quad {\rm on} \ \partial\Omega, \\
141141
\nabla^{2} u &amp;= 0 \quad {\rm on} \ \partial\Omega,
142142
\end{align}\]</div>

dolfinx/main/cpp/doxygen/d2/d8a/interval_8h_source.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@
222222
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> = <a class="code hl_function" href="../../d9/dd6/namespacedolfinx_1_1refinement.html#aaa134a721f1c98625a950d8da05a29f4">adjust_indices</a>(*mesh.topology()-&gt;index_map(0), number_of_refined_cells);</div>
223223
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
224224
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// Build the topology on the new vertices</span></div>
225-
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">const</span> std::int32_t refined_cell_count</div>
225+
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> std::size_t refined_cell_count</div>
226226
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> = mesh.topology()-&gt;index_map(1)-&gt;size_local() + number_of_refined_cells;</div>
227227
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
228228
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> std::vector&lt;std::int64_t&gt; cell_topology;</div>

dolfinx/main/cpp/doxygen/d3/d12/discreteoperators_8h_source.html

+293-295
Large diffs are not rendered by default.

dolfinx/main/cpp/doxygen/d6/d6e/Expression_8h_source.html

+109-108
Large diffs are not rendered by default.

dolfinx/main/cpp/doxygen/df/d34/ADIOS2Writers_8h_source.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,9 @@
279279
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// 3**rank to ensure that we can visualize them correctly in Paraview</span></div>
280280
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> std::span&lt;const std::size_t&gt; value_shape</div>
281281
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> = u.function_space()-&gt;element()-&gt;value_shape();</div>
282-
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordtype">int</span> <a class="code hl_function" href="../../da/dfe/namespacedolfinx_1_1MPI.html#ab6a01b5be2487cb6674b70ce6a89bad0">rank</a> = value_shape.size();</div>
283-
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordtype">int</span> num_comp = std::reduce(value_shape.begin(), value_shape.end(), 1,</div>
284-
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> std::multiplies{});</div>
282+
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> std::size_t <a class="code hl_function" href="../../da/dfe/namespacedolfinx_1_1MPI.html#ab6a01b5be2487cb6674b70ce6a89bad0">rank</a> = value_shape.size();</div>
283+
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> std::size_t num_comp = std::reduce(value_shape.begin(), value_shape.end(), 1,</div>
284+
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> std::multiplies{});</div>
285285
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">if</span> (num_comp &lt; std::pow(3, rank))</div>
286286
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> num_comp = std::pow(3, rank);</div>
287287
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
@@ -483,8 +483,8 @@
483483
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">const</span> <span class="keyword">typename</span> adios2_writer::U&lt;T&gt;&amp; u, std::string engine,</div>
484484
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> VTXMeshPolicy mesh_policy = VTXMeshPolicy::update)</div>
485485
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> : ADIOS2Writer(comm, filename, <span class="stringliteral">&quot;VTX function writer&quot;</span>, engine),</div>
486-
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> _mesh(impl_adios2::extract_common_mesh&lt;T&gt;(u)),</div>
487-
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> _mesh_reuse_policy(mesh_policy), _u(u), _is_piecewise_constant(false)</div>
486+
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> _mesh(impl_adios2::extract_common_mesh&lt;T&gt;(u)), _u(u),</div>
487+
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> _mesh_reuse_policy(mesh_policy), _is_piecewise_constant(false)</div>
488488
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> {</div>
489489
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keywordflow">if</span> (u.empty())</div>
490490
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;VTXWriter fem::Function list is empty.&quot;</span>);</div>

dolfinx/main/cpp/doxygen/df/df5/Function_8h_source.html

+4-4
Original file line numberDiff line numberDiff line change
@@ -770,10 +770,10 @@
770770
<div class="ttc" id="aclassdolfinx_1_1fem_1_1CoordinateElement_html_ac6b1bbe66ff8d6c90fc0ab516405b7fb"><div class="ttname"><a href="../../d9/d35/classdolfinx_1_1fem_1_1CoordinateElement.html#ac6b1bbe66ff8d6c90fc0ab516405b7fb">dolfinx::fem::CoordinateElement::is_affine</a></div><div class="ttdeci">bool is_affine() const noexcept</div><div class="ttdef"><b>Definition</b> CoordinateElement.h:266</div></div>
771771
<div class="ttc" id="aclassdolfinx_1_1fem_1_1CoordinateElement_html_ad1ee76129425323769389247a42971c8"><div class="ttname"><a href="../../d9/d35/classdolfinx_1_1fem_1_1CoordinateElement.html#ad1ee76129425323769389247a42971c8">dolfinx::fem::CoordinateElement::compute_jacobian_determinant</a></div><div class="ttdeci">static double compute_jacobian_determinant(const U &amp;J, std::span&lt; typename U::value_type &gt; w)</div><div class="ttdoc">Compute the determinant of the Jacobian.</div><div class="ttdef"><b>Definition</b> CoordinateElement.h:159</div></div>
772772
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html">dolfinx::fem::Expression</a></div><div class="ttdoc">An Expression represents a mathematical expression evaluated at a pre-defined points on a reference c...</div><div class="ttdef"><b>Definition</b> Expression.h:41</div></div>
773-
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a076c44ef333ff656ae7b28587f524aea"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a076c44ef333ff656ae7b28587f524aea">dolfinx::fem::Expression::X</a></div><div class="ttdeci">std::pair&lt; std::vector&lt; geometry_type &gt;, std::array&lt; std::size_t, 2 &gt; &gt; X() const</div><div class="ttdoc">Evaluation point coordinates on the reference cell.</div><div class="ttdef"><b>Definition</b> Expression.h:165</div></div>
774-
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a11e930f85bec72f7e366d5f47fd65688"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a11e930f85bec72f7e366d5f47fd65688">dolfinx::fem::Expression::coefficients</a></div><div class="ttdeci">const std::vector&lt; std::shared_ptr&lt; const Function&lt; scalar_type, geometry_type &gt; &gt; &gt; &amp; coefficients() const</div><div class="ttdoc">Expression coefficients.</div><div class="ttdef"><b>Definition</b> Expression.h:114</div></div>
775-
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a31c80a8331ab87d3b2c7cd89b1d50c99"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a31c80a8331ab87d3b2c7cd89b1d50c99">dolfinx::fem::Expression::argument_space</a></div><div class="ttdeci">std::shared_ptr&lt; const FunctionSpace&lt; geometry_type &gt; &gt; argument_space() const</div><div class="ttdoc">Argument function space.</div><div class="ttdef"><b>Definition</b> Expression.h:105</div></div>
776-
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a7d326295a6362a9b6f112e0efa5a7de7"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a7d326295a6362a9b6f112e0efa5a7de7">dolfinx::fem::Expression::value_size</a></div><div class="ttdeci">int value_size() const</div><div class="ttdoc">Value size of the Expression result.</div><div class="ttdef"><b>Definition</b> Expression.h:155</div></div>
773+
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a076c44ef333ff656ae7b28587f524aea"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a076c44ef333ff656ae7b28587f524aea">dolfinx::fem::Expression::X</a></div><div class="ttdeci">std::pair&lt; std::vector&lt; geometry_type &gt;, std::array&lt; std::size_t, 2 &gt; &gt; X() const</div><div class="ttdoc">Evaluation point coordinates on the reference cell.</div><div class="ttdef"><b>Definition</b> Expression.h:166</div></div>
774+
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a11e930f85bec72f7e366d5f47fd65688"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a11e930f85bec72f7e366d5f47fd65688">dolfinx::fem::Expression::coefficients</a></div><div class="ttdeci">const std::vector&lt; std::shared_ptr&lt; const Function&lt; scalar_type, geometry_type &gt; &gt; &gt; &amp; coefficients() const</div><div class="ttdoc">Expression coefficients.</div><div class="ttdef"><b>Definition</b> Expression.h:115</div></div>
775+
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a31c80a8331ab87d3b2c7cd89b1d50c99"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a31c80a8331ab87d3b2c7cd89b1d50c99">dolfinx::fem::Expression::argument_space</a></div><div class="ttdeci">std::shared_ptr&lt; const FunctionSpace&lt; geometry_type &gt; &gt; argument_space() const</div><div class="ttdoc">Argument function space.</div><div class="ttdef"><b>Definition</b> Expression.h:106</div></div>
776+
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Expression_html_a7d326295a6362a9b6f112e0efa5a7de7"><div class="ttname"><a href="../../d2/db9/classdolfinx_1_1fem_1_1Expression.html#a7d326295a6362a9b6f112e0efa5a7de7">dolfinx::fem::Expression::value_size</a></div><div class="ttdeci">int value_size() const</div><div class="ttdoc">Value size of the Expression result.</div><div class="ttdef"><b>Definition</b> Expression.h:156</div></div>
777777
<div class="ttc" id="aclassdolfinx_1_1fem_1_1FunctionSpace_html"><div class="ttname"><a href="../../d9/d69/classdolfinx_1_1fem_1_1FunctionSpace.html">dolfinx::fem::FunctionSpace</a></div><div class="ttdoc">This class represents a finite element function space defined by a mesh, a finite element,...</div><div class="ttdef"><b>Definition</b> FunctionSpace.h:34</div></div>
778778
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Function_html"><div class="ttname"><a href="../../d7/d76/classdolfinx_1_1fem_1_1Function.html">dolfinx::fem::Function</a></div><div class="ttdef"><b>Definition</b> Function.h:47</div></div>
779779
<div class="ttc" id="aclassdolfinx_1_1fem_1_1Function_html_a04ce55eb3c49b869437e81d8c4c14ffc"><div class="ttname"><a href="../../d7/d76/classdolfinx_1_1fem_1_1Function.html#a04ce55eb3c49b869437e81d8c4c14ffc">dolfinx::fem::Function::geometry_type</a></div><div class="ttdeci">U geometry_type</div><div class="ttdoc">Geometry type of the Mesh that the Function is defined on.</div><div class="ttdef"><b>Definition</b> Function.h:53</div></div>

dolfinx/main/python/_downloads/9561cf6cd1a70079b986f4eb31580cbd/demo_poisson_matrix_free.ipynb

+29-29
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "markdown",
5-
"id": "4486d074",
5+
"id": "685ae755",
66
"metadata": {},
77
"source": [
88
"# Matrix-free conjugate gradient solver for the Poisson equation\n",
@@ -73,7 +73,7 @@
7373
{
7474
"cell_type": "code",
7575
"execution_count": null,
76-
"id": "bca0779c",
76+
"id": "ddc66fd9",
7777
"metadata": {},
7878
"outputs": [],
7979
"source": [
@@ -83,7 +83,7 @@
8383
{
8484
"cell_type": "code",
8585
"execution_count": null,
86-
"id": "c9947055",
86+
"id": "6964d0d1",
8787
"metadata": {},
8888
"outputs": [],
8989
"source": [
@@ -93,7 +93,7 @@
9393
{
9494
"cell_type": "code",
9595
"execution_count": null,
96-
"id": "1d2e4902",
96+
"id": "44255e51",
9797
"metadata": {},
9898
"outputs": [],
9999
"source": [
@@ -104,7 +104,7 @@
104104
},
105105
{
106106
"cell_type": "markdown",
107-
"id": "46b2652a",
107+
"id": "59c3e9e9",
108108
"metadata": {},
109109
"source": [
110110
"We begin by using {py:func}`create_rectangle\n",
@@ -117,7 +117,7 @@
117117
{
118118
"cell_type": "code",
119119
"execution_count": null,
120-
"id": "0421b6f3",
120+
"id": "6b6f83fb",
121121
"metadata": {},
122122
"outputs": [],
123123
"source": [
@@ -130,7 +130,7 @@
130130
{
131131
"cell_type": "code",
132132
"execution_count": null,
133-
"id": "1ad4cabc",
133+
"id": "3a8a67e4",
134134
"metadata": {},
135135
"outputs": [],
136136
"source": [
@@ -141,7 +141,7 @@
141141
},
142142
{
143143
"cell_type": "markdown",
144-
"id": "3d4bf154",
144+
"id": "6365aa84",
145145
"metadata": {},
146146
"source": [
147147
"The second argument to {py:class}`functionspace\n",
@@ -160,7 +160,7 @@
160160
{
161161
"cell_type": "code",
162162
"execution_count": null,
163-
"id": "d1915452",
163+
"id": "876114dd",
164164
"metadata": {},
165165
"outputs": [],
166166
"source": [
@@ -171,7 +171,7 @@
171171
},
172172
{
173173
"cell_type": "markdown",
174-
"id": "ad6a49c7",
174+
"id": "167fdd03",
175175
"metadata": {},
176176
"source": [
177177
"We now find the degrees of freedom that are associated with the boundary\n",
@@ -182,7 +182,7 @@
182182
{
183183
"cell_type": "code",
184184
"execution_count": null,
185-
"id": "31b1c299",
185+
"id": "198bd848",
186186
"metadata": {},
187187
"outputs": [],
188188
"source": [
@@ -191,7 +191,7 @@
191191
},
192192
{
193193
"cell_type": "markdown",
194-
"id": "734df530",
194+
"id": "0cd1423c",
195195
"metadata": {},
196196
"source": [
197197
"and use {py:func}`dirichletbc <dolfinx.fem.dirichletbc>` to define the\n",
@@ -204,7 +204,7 @@
204204
{
205205
"cell_type": "code",
206206
"execution_count": null,
207-
"id": "89d4ec67",
207+
"id": "bf29a7d3",
208208
"metadata": {},
209209
"outputs": [],
210210
"source": [
@@ -215,7 +215,7 @@
215215
},
216216
{
217217
"cell_type": "markdown",
218-
"id": "a687b3f1",
218+
"id": "c5e4c95f",
219219
"metadata": {},
220220
"source": [
221221
"Next, we express the variational problem using UFL."
@@ -224,7 +224,7 @@
224224
{
225225
"cell_type": "code",
226226
"execution_count": null,
227-
"id": "9457e35d",
227+
"id": "2c9126c7",
228228
"metadata": {},
229229
"outputs": [],
230230
"source": [
@@ -239,7 +239,7 @@
239239
},
240240
{
241241
"cell_type": "markdown",
242-
"id": "e56777dc",
242+
"id": "2a3ee408",
243243
"metadata": {},
244244
"source": [
245245
"For the matrix-free solvers we also define a second linear form `M` as\n",
@@ -255,7 +255,7 @@
255255
{
256256
"cell_type": "code",
257257
"execution_count": null,
258-
"id": "92e2df3d",
258+
"id": "5cec9588",
259259
"metadata": {},
260260
"outputs": [],
261261
"source": [
@@ -266,7 +266,7 @@
266266
},
267267
{
268268
"cell_type": "markdown",
269-
"id": "8c4e304f",
269+
"id": "779cb6a8",
270270
"metadata": {},
271271
"source": [
272272
"### Matrix-free conjugate gradient solver\n",
@@ -280,7 +280,7 @@
280280
{
281281
"cell_type": "code",
282282
"execution_count": null,
283-
"id": "116d0266",
283+
"id": "a22a065b",
284284
"metadata": {},
285285
"outputs": [],
286286
"source": [
@@ -295,7 +295,7 @@
295295
{
296296
"cell_type": "code",
297297
"execution_count": null,
298-
"id": "3302e107",
298+
"id": "a8d3f546",
299299
"metadata": {},
300300
"outputs": [],
301301
"source": [
@@ -306,7 +306,7 @@
306306
},
307307
{
308308
"cell_type": "markdown",
309-
"id": "8654e846",
309+
"id": "331102cb",
310310
"metadata": {
311311
"lines_to_next_cell": 2
312312
},
@@ -319,7 +319,7 @@
319319
{
320320
"cell_type": "code",
321321
"execution_count": null,
322-
"id": "d6b8ac8e",
322+
"id": "15242a9f",
323323
"metadata": {
324324
"lines_to_next_cell": 2
325325
},
@@ -342,7 +342,7 @@
342342
},
343343
{
344344
"cell_type": "markdown",
345-
"id": "65d78966",
345+
"id": "8e07715b",
346346
"metadata": {
347347
"lines_to_next_cell": 2
348348
},
@@ -358,7 +358,7 @@
358358
{
359359
"cell_type": "code",
360360
"execution_count": null,
361-
"id": "b385c10f",
361+
"id": "17cc1fbe",
362362
"metadata": {},
363363
"outputs": [],
364364
"source": [
@@ -404,7 +404,7 @@
404404
},
405405
{
406406
"cell_type": "markdown",
407-
"id": "6e45da1a",
407+
"id": "1af84b00",
408408
"metadata": {},
409409
"source": [
410410
"This matrix-free solver is now used to compute the finite element\n",
@@ -415,7 +415,7 @@
415415
{
416416
"cell_type": "code",
417417
"execution_count": null,
418-
"id": "1968ac88",
418+
"id": "d59e612d",
419419
"metadata": {},
420420
"outputs": [],
421421
"source": [
@@ -427,7 +427,7 @@
427427
{
428428
"cell_type": "code",
429429
"execution_count": null,
430-
"id": "4dafa784",
430+
"id": "d9a56f9b",
431431
"metadata": {},
432432
"outputs": [],
433433
"source": [
@@ -438,7 +438,7 @@
438438
{
439439
"cell_type": "code",
440440
"execution_count": null,
441-
"id": "291f1b7e",
441+
"id": "f7edce05",
442442
"metadata": {},
443443
"outputs": [],
444444
"source": [
@@ -450,7 +450,7 @@
450450
{
451451
"cell_type": "code",
452452
"execution_count": null,
453-
"id": "fe7733e9",
453+
"id": "6a6913df",
454454
"metadata": {},
455455
"outputs": [],
456456
"source": [

0 commit comments

Comments
 (0)