Skip to content

Commit aea14a9

Browse files
author
FEniCS GitHub Actions
committed
1 parent 42c7c56 commit aea14a9

File tree

16 files changed

+82
-76
lines changed

16 files changed

+82
-76
lines changed

ufl/main/_modules/ufl/action.html

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,14 @@ <h1>Source code for ufl.action</h1><div class="highlight"><pre>
4242

4343
<span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">chain</span>
4444

45+
<span class="kn">from</span> <span class="nn">ufl</span> <span class="kn">import</span> <span class="n">matrix</span> <span class="c1"># noqa 401</span>
4546
<span class="kn">from</span> <span class="nn">ufl.algebra</span> <span class="kn">import</span> <span class="n">Sum</span>
4647
<span class="kn">from</span> <span class="nn">ufl.argument</span> <span class="kn">import</span> <span class="n">Argument</span><span class="p">,</span> <span class="n">Coargument</span>
47-
<span class="kn">from</span> <span class="nn">ufl.coefficient</span> <span class="kn">import</span> <span class="n">BaseCoefficient</span><span class="p">,</span> <span class="n">Coefficient</span><span class="p">,</span> <span class="n">Cofunction</span>
48+
<span class="kn">from</span> <span class="nn">ufl.coefficient</span> <span class="kn">import</span> <span class="n">BaseCoefficient</span><span class="p">,</span> <span class="n">Coefficient</span>
4849
<span class="kn">from</span> <span class="nn">ufl.constantvalue</span> <span class="kn">import</span> <span class="n">Zero</span>
49-
<span class="kn">from</span> <span class="nn">ufl.core.base_form_operator</span> <span class="kn">import</span> <span class="n">BaseFormOperator</span>
5050
<span class="kn">from</span> <span class="nn">ufl.core.ufl_type</span> <span class="kn">import</span> <span class="n">ufl_type</span>
5151
<span class="kn">from</span> <span class="nn">ufl.differentiation</span> <span class="kn">import</span> <span class="n">CoefficientDerivative</span>
5252
<span class="kn">from</span> <span class="nn">ufl.form</span> <span class="kn">import</span> <span class="n">BaseForm</span><span class="p">,</span> <span class="n">Form</span><span class="p">,</span> <span class="n">FormSum</span><span class="p">,</span> <span class="n">ZeroBaseForm</span>
53-
<span class="kn">from</span> <span class="nn">ufl.matrix</span> <span class="kn">import</span> <span class="n">Matrix</span>
5453

5554
<span class="c1"># --- The Action class represents the action of a numerical object that needs</span>
5655
<span class="c1"># to be computed at assembly time ---</span>
@@ -73,14 +72,14 @@ <h1>Source code for ufl.action</h1><div class="highlight"><pre>
7372
<span class="sd"> &quot;&quot;&quot;</span>
7473

7574
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
76-
<span class="s2">&quot;_left&quot;</span><span class="p">,</span>
77-
<span class="s2">&quot;_right&quot;</span><span class="p">,</span>
78-
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
79-
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
8075
<span class="s2">&quot;_arguments&quot;</span><span class="p">,</span>
8176
<span class="s2">&quot;_coefficients&quot;</span><span class="p">,</span>
8277
<span class="s2">&quot;_domains&quot;</span><span class="p">,</span>
8378
<span class="s2">&quot;_hash&quot;</span><span class="p">,</span>
79+
<span class="s2">&quot;_left&quot;</span><span class="p">,</span>
80+
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
81+
<span class="s2">&quot;_right&quot;</span><span class="p">,</span>
82+
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
8483
<span class="p">)</span>
8584

8685
<span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
@@ -210,29 +209,36 @@ <h1>Source code for ufl.action</h1><div class="highlight"><pre>
210209

211210
<span class="k">def</span> <span class="nf">_check_function_spaces</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">):</span>
212211
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Check if the function spaces of left and right match.&quot;&quot;&quot;</span>
212+
<span class="c1"># Action differentiation pushes differentiation through</span>
213+
<span class="c1"># right as a consequence of Leibniz formula.</span>
213214
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">right</span><span class="p">,</span> <span class="n">CoefficientDerivative</span><span class="p">):</span>
214-
<span class="c1"># Action differentiation pushes differentiation through</span>
215-
<span class="c1"># right as a consequence of Leibniz formula.</span>
216215
<span class="n">right</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="o">=</span> <span class="n">right</span><span class="o">.</span><span class="n">ufl_operands</span>
216+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">CoefficientDerivative</span><span class="p">):</span>
217+
<span class="n">left</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="o">=</span> <span class="n">left</span><span class="o">.</span><span class="n">ufl_operands</span>
217218

218-
<span class="c1"># `left` can also be a Coefficient in V (= V**), e.g.</span>
219-
<span class="c1"># `action(Coefficient(V), Cofunction(V.dual()))`.</span>
220-
<span class="n">left_arg</span> <span class="o">=</span> <span class="n">left</span><span class="o">.</span><span class="n">arguments</span><span class="p">()[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">Coefficient</span><span class="p">)</span> <span class="k">else</span> <span class="n">left</span>
221-
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">right</span><span class="p">,</span> <span class="p">(</span><span class="n">Form</span><span class="p">,</span> <span class="n">Action</span><span class="p">,</span> <span class="n">Matrix</span><span class="p">,</span> <span class="n">ZeroBaseForm</span><span class="p">)):</span>
222-
<span class="k">if</span> <span class="n">left_arg</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">()</span><span class="o">.</span><span class="n">dual</span><span class="p">()</span> <span class="o">!=</span> <span class="n">right</span><span class="o">.</span><span class="n">arguments</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">():</span>
223-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Incompatible function spaces in Action&quot;</span><span class="p">)</span>
224-
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">right</span><span class="p">,</span> <span class="p">(</span><span class="n">Coefficient</span><span class="p">,</span> <span class="n">Cofunction</span><span class="p">,</span> <span class="n">Argument</span><span class="p">,</span> <span class="n">BaseFormOperator</span><span class="p">)):</span>
225-
<span class="k">if</span> <span class="n">left_arg</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">()</span> <span class="o">!=</span> <span class="n">right</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">():</span>
226-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Incompatible function spaces in Action&quot;</span><span class="p">)</span>
227219
<span class="c1"># `Zero` doesn&#39;t contain any information about the function space.</span>
228220
<span class="c1"># -&gt; Not a problem since Action will get simplified with a</span>
229221
<span class="c1"># `ZeroBaseForm` which won&#39;t take into account the arguments on</span>
230222
<span class="c1"># the right because of argument contraction.</span>
231223
<span class="c1"># This occurs for:</span>
232224
<span class="c1"># `derivative(Action(A, B), u)` with B is an `Expr` such that dB/du == 0</span>
233225
<span class="c1"># -&gt; `derivative(B, u)` becomes `Zero` when expanding derivatives since B is an Expr.</span>
234-
<span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">right</span><span class="p">,</span> <span class="n">Zero</span><span class="p">):</span>
235-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Incompatible argument in Action: </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="nb">type</span><span class="p">(</span><span class="n">right</span><span class="p">))</span>
226+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">Zero</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">right</span><span class="p">,</span> <span class="n">Zero</span><span class="p">):</span>
227+
<span class="k">return</span>
228+
229+
<span class="c1"># `left` can also be a Coefficient in V (= V**), e.g.</span>
230+
<span class="c1"># `action(Coefficient(V), Cofunction(V.dual()))`.</span>
231+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">Coefficient</span><span class="p">):</span>
232+
<span class="n">V_left</span> <span class="o">=</span> <span class="n">left</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">()</span>
233+
<span class="k">else</span><span class="p">:</span>
234+
<span class="n">V_left</span> <span class="o">=</span> <span class="n">left</span><span class="o">.</span><span class="n">arguments</span><span class="p">()[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">()</span><span class="o">.</span><span class="n">dual</span><span class="p">()</span>
235+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">right</span><span class="p">,</span> <span class="n">Coefficient</span><span class="p">):</span>
236+
<span class="n">V_right</span> <span class="o">=</span> <span class="n">right</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">()</span>
237+
<span class="k">else</span><span class="p">:</span>
238+
<span class="n">V_right</span> <span class="o">=</span> <span class="n">right</span><span class="o">.</span><span class="n">arguments</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">()</span><span class="o">.</span><span class="n">dual</span><span class="p">()</span>
239+
240+
<span class="k">if</span> <span class="n">V_left</span><span class="o">.</span><span class="n">dual</span><span class="p">()</span> <span class="o">!=</span> <span class="n">V_right</span><span class="p">:</span>
241+
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Incompatible function spaces in Action&quot;</span><span class="p">)</span>
236242

237243

238244
<span class="k">def</span> <span class="nf">_get_action_form_arguments</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">):</span>

ufl/main/_modules/ufl/adjoint.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ <h1>Source code for ufl.adjoint</h1><div class="highlight"><pre>
6363
<span class="sd"> &quot;&quot;&quot;</span>
6464

6565
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
66-
<span class="s2">&quot;_form&quot;</span><span class="p">,</span>
67-
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
6866
<span class="s2">&quot;_arguments&quot;</span><span class="p">,</span>
6967
<span class="s2">&quot;_coefficients&quot;</span><span class="p">,</span>
7068
<span class="s2">&quot;_domains&quot;</span><span class="p">,</span>
71-
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
69+
<span class="s2">&quot;_form&quot;</span><span class="p">,</span>
7270
<span class="s2">&quot;_hash&quot;</span><span class="p">,</span>
71+
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
72+
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
7373
<span class="p">)</span>
7474

7575
<span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>

ufl/main/_modules/ufl/algorithms/domain_analysis.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ <h1>Source code for ufl.algorithms.domain_analysis</h1><div class="highlight"><p
6868

6969
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
7070
<span class="s2">&quot;domain&quot;</span><span class="p">,</span>
71+
<span class="s2">&quot;enabled_coefficients&quot;</span><span class="p">,</span>
72+
<span class="s2">&quot;integral_coefficients&quot;</span><span class="p">,</span>
7173
<span class="s2">&quot;integral_type&quot;</span><span class="p">,</span>
72-
<span class="s2">&quot;subdomain_id&quot;</span><span class="p">,</span>
7374
<span class="s2">&quot;integrals&quot;</span><span class="p">,</span>
7475
<span class="s2">&quot;metadata&quot;</span><span class="p">,</span>
75-
<span class="s2">&quot;integral_coefficients&quot;</span><span class="p">,</span>
76-
<span class="s2">&quot;enabled_coefficients&quot;</span><span class="p">,</span>
76+
<span class="s2">&quot;subdomain_id&quot;</span><span class="p">,</span>
7777
<span class="p">)</span>
7878

7979
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">domain</span><span class="p">,</span> <span class="n">integral_type</span><span class="p">,</span> <span class="n">subdomain_id</span><span class="p">,</span> <span class="n">integrals</span><span class="p">,</span> <span class="n">metadata</span><span class="p">):</span>

ufl/main/_modules/ufl/argument.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,11 +208,11 @@ <h1>Source code for ufl.argument</h1><div class="highlight"><pre>
208208
<span class="w"> </span><span class="sd">&quot;&quot;&quot;UFL value: Representation of an argument to a form.&quot;&quot;&quot;</span>
209209

210210
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
211-
<span class="s2">&quot;_ufl_function_space&quot;</span><span class="p">,</span>
212-
<span class="s2">&quot;_ufl_shape&quot;</span><span class="p">,</span>
213211
<span class="s2">&quot;_number&quot;</span><span class="p">,</span>
214212
<span class="s2">&quot;_part&quot;</span><span class="p">,</span>
215213
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
214+
<span class="s2">&quot;_ufl_function_space&quot;</span><span class="p">,</span>
215+
<span class="s2">&quot;_ufl_shape&quot;</span><span class="p">,</span>
216216
<span class="p">)</span>
217217

218218
<span class="n">_primal</span> <span class="o">=</span> <span class="kc">True</span>
@@ -260,15 +260,15 @@ <h1>Source code for ufl.argument</h1><div class="highlight"><pre>
260260
<span class="w"> </span><span class="sd">&quot;&quot;&quot;UFL value: Representation of an argument to a form in a dual space.&quot;&quot;&quot;</span>
261261

262262
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
263-
<span class="s2">&quot;_ufl_function_space&quot;</span><span class="p">,</span>
264-
<span class="s2">&quot;_ufl_shape&quot;</span><span class="p">,</span>
265263
<span class="s2">&quot;_arguments&quot;</span><span class="p">,</span>
266264
<span class="s2">&quot;_coefficients&quot;</span><span class="p">,</span>
267-
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
265+
<span class="s2">&quot;_hash&quot;</span><span class="p">,</span>
268266
<span class="s2">&quot;_number&quot;</span><span class="p">,</span>
269267
<span class="s2">&quot;_part&quot;</span><span class="p">,</span>
270268
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
271-
<span class="s2">&quot;_hash&quot;</span><span class="p">,</span>
269+
<span class="s2">&quot;_ufl_function_space&quot;</span><span class="p">,</span>
270+
<span class="s2">&quot;_ufl_shape&quot;</span><span class="p">,</span>
271+
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
272272
<span class="p">)</span>
273273

274274
<span class="n">_primal</span> <span class="o">=</span> <span class="kc">False</span>

ufl/main/_modules/ufl/cell.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,11 +359,11 @@ <h1>Source code for ufl.cell</h1><div class="highlight"><pre>
359359

360360
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
361361
<span class="s2">&quot;_cellname&quot;</span><span class="p">,</span>
362-
<span class="s2">&quot;_tdim&quot;</span><span class="p">,</span>
363362
<span class="s2">&quot;_num_cell_entities&quot;</span><span class="p">,</span>
364-
<span class="s2">&quot;_sub_entity_types&quot;</span><span class="p">,</span>
365363
<span class="s2">&quot;_sub_entities&quot;</span><span class="p">,</span>
366364
<span class="s2">&quot;_sub_entity_types&quot;</span><span class="p">,</span>
365+
<span class="s2">&quot;_sub_entity_types&quot;</span><span class="p">,</span>
366+
<span class="s2">&quot;_tdim&quot;</span><span class="p">,</span>
367367
<span class="p">)</span>
368368

369369
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cellname</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>

ufl/main/_modules/ufl/coefficient.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,15 @@ <h1>Source code for ufl.coefficient</h1><div class="highlight"><pre>
159159
<span class="w"> </span><span class="sd">&quot;&quot;&quot;UFL form argument type: Representation of a form coefficient from a dual space.&quot;&quot;&quot;</span>
160160

161161
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
162-
<span class="s2">&quot;_count&quot;</span><span class="p">,</span>
163-
<span class="s2">&quot;_counted_class&quot;</span><span class="p">,</span>
164162
<span class="s2">&quot;_arguments&quot;</span><span class="p">,</span>
165163
<span class="s2">&quot;_coefficients&quot;</span><span class="p">,</span>
166-
<span class="s2">&quot;_ufl_function_space&quot;</span><span class="p">,</span>
167-
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
164+
<span class="s2">&quot;_count&quot;</span><span class="p">,</span>
165+
<span class="s2">&quot;_counted_class&quot;</span><span class="p">,</span>
166+
<span class="s2">&quot;_hash&quot;</span><span class="p">,</span>
168167
<span class="s2">&quot;_repr&quot;</span><span class="p">,</span>
168+
<span class="s2">&quot;_ufl_function_space&quot;</span><span class="p">,</span>
169169
<span class="s2">&quot;_ufl_shape&quot;</span><span class="p">,</span>
170-
<span class="s2">&quot;_hash&quot;</span><span class="p">,</span>
170+
<span class="s2">&quot;ufl_operands&quot;</span><span class="p">,</span>
171171
<span class="p">)</span>
172172
<span class="n">_primal</span> <span class="o">=</span> <span class="kc">False</span>
173173
<span class="n">_dual</span> <span class="o">=</span> <span class="kc">True</span>

0 commit comments

Comments
 (0)