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

FEniCS / ufl
80%

Build:
DEFAULT BRANCH: main
Repo Added 09 Sep 2019 04:02PM UTC
Files 109
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

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 2025.2.0.post0
  • 2025.2.1
  • 2025.3.0
  • 2026.1.0
  • chris/coveralls-token
  • chris/pydocstyle
  • chris/readme-updates
  • chris/update-pyproject-license
  • code-of-conduct
  • dependabot/github_actions/actions/checkout-5
  • dependabot/github_actions/actions/download-artifact-5
  • dependabot/github_actions/actions/setup-python-5
  • dependabot/github_actions/actions/setup-python-6
  • dokken/diagonalise
  • dokken/fix-warnings
  • dokken/multiple_coordinate_elements
  • dokken/test-release
  • garth-wells-patch-1
  • garth/spack-ci-update
  • gh-readonly-queue/main/pr-264-dd46e978f319d05f91bc6e22b255375282120be1
  • gh-readonly-queue/main/pr-387-e45f4018a6187f87ca068f8318c3ff012f8e0344
  • gh-readonly-queue/main/pr-402-00d0a9ce91d8c9fc18d92fd38f640aa01aa79a99
  • gh-readonly-queue/main/pr-403-ed988abce06978cefd0b6a13862b61a1b386910a
  • gh-readonly-queue/main/pr-404-9824b20e00730bffa7025572a34f55a64b28a150
  • gh-readonly-queue/main/pr-408-29ba01b7da3904b20a293164a6687ca9e2174121
  • gh-readonly-queue/main/pr-409-7d74ff55da811a8f3ba6a184c9ba8603c592fad3
  • gh-readonly-queue/main/pr-410-4adcd7b33288d4144e74e75a21fff8fb62b8b0d7
  • gh-readonly-queue/main/pr-413-848435cf9ee6d186ef9fe3e50cd0f9c4fce387d5
  • gh-readonly-queue/main/pr-414-f355a44d00761cf98fb5560fa10b46baee4b15be
  • gh-readonly-queue/main/pr-416-c2e5a1cd00b14958c7d20bca33ddd824e7bc7666
  • gh-readonly-queue/main/pr-417-295669375a72c41a3f90199a156ecce3a3cf7bd9
  • gh-readonly-queue/main/pr-418-fe3cf5d9eafbba59ec0d45bde25006811ff6233e
  • gh-readonly-queue/main/pr-419-04dad8133af9777d7295ec58aa9a548a79f1853b
  • gh-readonly-queue/main/pr-420-4b39fd0dc9f26eabbf38f777c2dcf0abdaef5c21
  • gh-readonly-queue/main/pr-421-efbc75f5a2e11aafc1f4e6a3b87f1f6e5f83529e
  • gh-readonly-queue/main/pr-422-22a9cb650d2520e703653154a9f711160bb4141e
  • gh-readonly-queue/main/pr-423-334f20ec6924b975b57b9857b320e5fdb9dec3c4
  • gh-readonly-queue/main/pr-428-fe31a3fbdc07eba724ce90120e2d60298e652a94
  • gh-readonly-queue/main/pr-430-afc60351b31f5d33c18f5f06c5de5561d3a401e1
  • gh-readonly-queue/main/pr-433-67e8380a6d0519fdf0458f694a4f95807046c352
  • jorgensd-patch-1
  • main
  • master
  • michal/group-after-degree
  • michal/group-form-integrals-optional
  • patch-coveralls-badge
  • release
  • rm-as-native-str
  • schnellerhase/ci-badges
  • schnellerhase/drop-python-3.9
  • schnellerhase/ffcx-werror
  • schnellerhase/fix-documentation
  • schnellerhase/fix_169
  • schnellerhase/fix_386
  • schnellerhase/new-ruff
  • schnellerhase/python-3.14
  • schnellerhase/remove-type-system
  • simplify-ci
  • spdx
  • wence/fix/traversal-slow
  • wence/flake8-update

19 Aug 2026 01:16PM UTC coverage: 79.746% (+0.2%) from 79.553%
32257537194

push

github

web-flow
Cancel contractions of the Jacobian with its inverse (#496)

* Cancel contractions of the Jacobian with its inverse

Preserve Jacobian, JacobianInverse and JacobianDeterminant during
geometry lowering, and cancel J-Jinv contractions into Kronecker
deltas before the inverse is expanded into individual matrix entries.
Eliminate the resulting Identity tensors by contraction against the
remaining factors, and cancel reciprocal factors within products,
such as detJ**2 * (1/detJ)**2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Address review: convert to DAGTraverser, add tests

IndexSumSimplifier (and its JacobianCanceller/IdentityEliminator
subclasses) and ReciprocalCanceller were plain MultiFunctions; convert
them to DAGTraverser, matching the convention used by the rest of the
newer algorithms modules (apply_derivatives.py,
apply_coefficient_split.py). This switches the driver function from
map_integrand_dags (the MultiFunction-compatible entry point) to
map_integrands, since a DAGTraverser is called directly rather than
through map_expr_dag.

Add test/test_cancel_jacobian_products.py, covering JacobianCanceller
and IdentityEliminator on both contraction orders (J.K and K.J),
ReciprocalCanceller on both a fully- and a partially-cancelling
reciprocal product, the full pass end-to-end on a div-div form over a
contravariant Piola-mapped (Raviart-Thomas) element (verifying both
the size reduction and that the opt-in flag defaults to off), and a
no-op check on a form with no Jacobian contractions to cancel.

* Address review: test mathematical correctness, not just size/absence

The div-div test only checked that the cancelled integrand's string
representation was shorter than the uncancelled one -- a check that
would pass even for a wrong simplification, as long as it happened to
produce something smaller.

Replace it with two meaningful checks against the intermediate result
cancel_jacobian_products actually produces (before further geometry
... (continued)

201 of 229 new or added lines in 2 files covered. (87.77%)

9989 of 12526 relevant lines covered (79.75%)

0.8 hits per line

Relevant lines Covered
Build:
Build:
12526 RELEVANT LINES 9989 COVERED LINES
0.8 HITS PER LINE
Source Files on main
  • Tree
  • List 109
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
32257537194 main Cancel contractions of the Jacobian with its inverse (#496) * Cancel contractions of the Jacobian with its inverse Preserve Jacobian, JacobianInverse and JacobianDeterminant during geometry lowering, and cancel J-Jinv contractions into Kronecker... push 19 Aug 2026 01:22PM UTC web-flow github
79.75
32009042654 main Fix generic terminal traversal for BaseForm types in extract_domains (#502) * Fix extract_domains for BaseForm to expand MeshSequence The BaseForm-not-Expr branch added in #494 returned expr.ufl_domains() directly, skipping the join_domains/sort... push 17 Aug 2026 08:11AM UTC web-flow github
79.55
31370183750 main Fix generic terminal traversal for BaseForm types in extract_domains (#502) * Fix extract_domains for BaseForm to expand MeshSequence The BaseForm-not-Expr branch added in #494 returned expr.ufl_domains() directly, skipping the join_domains/sort... push 10 Aug 2026 08:29AM UTC web-flow github
79.55
31081250646 main Fix generic terminal traversal for BaseForm types in extract_domains (#502) * Fix extract_domains for BaseForm to expand MeshSequence The BaseForm-not-Expr branch added in #494 returned expr.ufl_domains() directly, skipping the join_domains/sort... push 06 Aug 2026 07:33AM UTC web-flow github
79.55
30999691016 main Fix ZeroBaseForm holes in derivative expansion and action (#494) * Fix ZeroBaseForm holes in derivative expansion and action GateauxDerivativeRuleset had no rule for ZeroBaseForm itself, so differentiating an already-zero BaseForm (e.g. a Hessia... push 05 Aug 2026 11:02AM UTC web-flow github
79.58
30799575092 main Formatting fixes with latest ruff (#499) push 03 Aug 2026 09:02AM UTC web-flow github
79.46
30254296886 main Formatting fixes with latest ruff (#499) push 27 Jul 2026 09:32AM UTC web-flow github
79.46
29894207343 main Bump actions/setup-python from 6 to 7 (#498) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-pytho... push 22 Jul 2026 05:36AM UTC web-flow github
79.46
29729689525 main Simplify trivial FormSum (#492) push 20 Jul 2026 09:00AM UTC web-flow github
79.46
29078259611 main Simplify trivial FormSum (#492) push 10 Jul 2026 07:59AM UTC web-flow github
79.46
See All Builds (236)
  • Repo on GitHub
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