• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FEniCS / ufl / 34580646555
81%

Build:
DEFAULT BRANCH: main
Ran 11 Sep 2026 08:45AM UTC
Jobs 1
Files 110
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Sep 2026 08:40AM UTC coverage: 80.607% (+0.04%) from 80.564%
34580646555

push

github

web-flow
Evaluate interpolations on the reference cell in compute_form_data (#512)

* Evaluate interpolations on the reference cell in compute_form_data

A form compiler evaluates an Interpolate on the reference cell of its target
element, so the operand has to be mapped there and the result pulled back for
the integrand that holds it. TSFC did this in a pass of its own, before it
called compute_form_data, and carried its own copy of the inverse maps.

apply_interpolate_pullbacks does it here, at the start of compute_form_data
and under the same switch as the other pull backs, on top of the pull backs'
apply_inverse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155wQMTMSGiF9a6TbyTVK5P

* Apply the interpolation pull backs with DAG traversers

Both interpolation pull back passes were the older MultiFunction style, while
the rest of the algorithms package has moved to DAGTraverser.

InterpolatePullbackApplier becomes a DAGTraverser, with the Interpolate rule a
postorder handler, and apply_interpolate_pullbacks maps it over the integrands
directly, as the traverser walks the DAG itself.  apply_inverse_pullback keeps
its signature for TSFC and now wraps InversePullbackApplier, which carries the
element and the fallback domain as traverser state.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BP8aGcL37egqaMX9zXAYgX

* Apply every pull back with a DAG traverser, and test them

FunctionPullbackApplier was the last MultiFunction in the module, so it joins
the interpolation pass as a DAGTraverser: the form argument rule dispatches on
FormArgument and the traverser's own memoisation replaces memoized_handler.

apply_inverse_pullback goes back to being a plain function.  It is a rule on a
single node, not a traversal: it must not recurse into its argument, or the
interpolations there would be lowered a second time by the pass that runs
after it.  Wrapping it... (continued)

47 of 50 new or added lines in 3 files covered. (94.0%)

10404 of 12907 relevant lines covered (80.61%)

0.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
91.23
-0.08% ufl/algorithms/apply_function_pullbacks.py
Jobs
ID Job ID Ran Files Coverage
1 34580646555.1 11 Sep 2026 08:45AM UTC 110
80.61
GitHub Action Run
Source Files on build 34580646555
  • Tree
  • List 110
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 80629e92 on github
  • Prev Build on main (#34579120279)
  • Next Build on main (#34625200367)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc