Skip to content

Commit 6070744

Browse files
author
FEniCS GitHub Actions
committed
1 parent 7609a0e commit 6070744

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

ufl/main/_modules/ufl/action.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,9 @@ <h1>Source code for ufl.action</h1><div class="highlight"><pre>
380380

381381
<span class="k">def</span><span class="w"> </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>
382382
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Create a new Action.&quot;&quot;&quot;</span>
383+
<span class="kn">from</span><span class="w"> </span><span class="nn">ufl.algorithms.analysis</span><span class="w"> </span><span class="kn">import</span> <span class="n">extract_arguments</span>
384+
<span class="kn">from</span><span class="w"> </span><span class="nn">ufl.algorithms.replace</span><span class="w"> </span><span class="kn">import</span> <span class="n">replace</span>
385+
383386
<span class="n">left</span><span class="p">,</span> <span class="n">right</span> <span class="o">=</span> <span class="n">args</span>
384387

385388
<span class="c1"># Check trivial case</span>
@@ -427,6 +430,12 @@ <h1>Source code for ufl.action</h1><div class="highlight"><pre>
427430
<span class="ow">and</span> <span class="nb">len</span><span class="p">(</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>
428431
<span class="p">):</span>
429432
<span class="n">v</span><span class="p">,</span> <span class="n">operand</span> <span class="o">=</span> <span class="n">right</span><span class="o">.</span><span class="n">argument_slots</span><span class="p">()</span>
433+
<span class="c1"># If the operand has an argument, replace it with number 0</span>
434+
<span class="n">operand_args</span> <span class="o">=</span> <span class="n">extract_arguments</span><span class="p">(</span><span class="n">operand</span><span class="p">)</span>
435+
<span class="k">if</span> <span class="n">operand_args</span><span class="p">:</span>
436+
<span class="p">(</span><span class="n">old_arg</span><span class="p">,)</span> <span class="o">=</span> <span class="n">operand_args</span>
437+
<span class="n">new_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">old_arg</span><span class="p">)(</span><span class="n">old_arg</span><span class="o">.</span><span class="n">ufl_function_space</span><span class="p">(),</span> <span class="mi">0</span><span class="p">,</span> <span class="n">old_arg</span><span class="o">.</span><span class="n">part</span><span class="p">())</span>
438+
<span class="n">operand</span> <span class="o">=</span> <span class="n">replace</span><span class="p">(</span><span class="n">operand</span><span class="p">,</span> <span class="p">{</span><span class="n">old_arg</span><span class="p">:</span> <span class="n">new_arg</span><span class="p">})</span>
430439
<span class="k">if</span> <span class="n">v</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>
431440
<span class="k">return</span> <span class="n">right</span><span class="o">.</span><span class="n">_ufl_expr_reconstruct_</span><span class="p">(</span><span class="n">operand</span><span class="p">,</span> <span class="n">v</span><span class="o">=</span><span class="n">left</span><span class="p">)</span>
432441

0 commit comments

Comments
 (0)