Releases: FEniCS/ufl
2025.2.1
This release backports various bug fixes from the main branch. Users are advised to upgrade.
What's Changed
Full Changelog: 2025.2.0.post0...2025.2.1
2025.2.0.post0
This post-release back ported some CI fixes that allowed the documentation to be built and pushed to https://docs.fenicsproject.org/ufl/2025.2.0/index.html
Users do not need to upgrade. This version will not be pushed to pypa as it is functionally identical to 2025.2.0.
Future versions of UFL will be tagged with v* to allow the CI to know when releases are being created.
Full Changelog: 2025.2.0...2025.2.0.post0
v2025.2.0
What's Changed
- Bump version. by @jhale in #376
- Bug fixes for BaseFormOperator by @pbrubeck in #370
- Fix BaseFormOperator.ufl_function_space by @pbrubeck in #377
- add DAGTraverser class and remove MultiFunctions in apply_derivatives() by @ksagiyam in #365
- fix kwarg name in extract_domains() and extract_unique_domain() : expand_mixed_mesh -> expand_mesh_sequence by @ksagiyam in #381
- Add CoefficientSplitter(DAGTraverser) class and apply_coefficient_split() function by @ksagiyam in #341
mypysupport by @schnellerhase in #356- move test utilities out of ufl.finiteelement by @mscroggs in #364
- Fix autocomplete by @schnellerhase in #379
- Apply
pyupgradeby @schnellerhase in #372 - Mypy fixes for upstream fenics projects by @schnellerhase in #383
- Enforce tests are passing without warnings by @schnellerhase in #384
- Fix bug in operator derivative reconstruction by @indiamai in #388
- Extend
mypytesting to tests and demos by @schnellerhase in #390 - Raise if unused arguments are passed by @schnellerhase in #391
- Remove manpages by @schnellerhase in #393
- add integral domains by @mscroggs in #363
- Add return hatch for empty adjoint by @jorgensd in #392
- Python 3.14 (dev) support by @schnellerhase in #398
- Remove constraint on
ReferenceGradoperand type by @schnellerhase in #400 - Update README.md for coveralls badge by @chrisrichardson in #403
- Update CI badges by @schnellerhase in #402
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #408
- Fix
attr-definedmypyerrors by @schnellerhase in #387 - Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #409
- Fix warning by @schnellerhase in #410
- Update pyproject license to new format by @chrisrichardson in #404
- Use extract unique domain by @jorgensd in #413
- Drop Python 3.9 support by @schnellerhase in #414
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #417
- Simplify CI compilers by @garth-wells in #418
- Adapt to ruff 0.13.0 by @schnellerhase in #420
- Fix documentation errors by @schnellerhase in #421
- Spack CI updates by @garth-wells in #419
- Extend
ufl.extract_blocksto preserving the initial arguments of an element with sub-spaces (mixed-element) by @jorgensd in #416 - Check
Interpolateargument numbering by @leo-collins in #422 - Expose
ufl.Labelby @jorgensd in #423
New Contributors
- @indiamai made their first contribution in #388
- @leo-collins made their first contribution in #422
Full Changelog: 2025.1.0...2025.2.0
2025.1.0
This release of UFL was created to support an upcoming Firedrake release. DOLFINx 0.10.0 will likely be released against a future 2025.2.0 version of UFL.
What's Changed
- pypi trusted publishing by @jhale in #314
- Bump version number to 0.10.0 by @jhale in #315
- Add dependabot by @jhale in #316
- Add GitHub Token to coveralls step by @jhale in #319
- Bump actions/setup-python from 3 to 5 by @dependabot in #317
- Bump actions/checkout from 3 to 4 by @dependabot in #318
- Add HCurlDiv space and covariant-contravariant Piola mapping by @pbrubeck in #320
- Upload to coveralls and docs from CI job running against python 3.12 by @francesco-ballarin in #321
- Fix pullback for symmetric tensors with non-scalar subelements by @pbrubeck in #322
- Fix Piola pullbacks for VectorElement by @pbrubeck in #323
- Fix PhysicalPullback by @pbrubeck in #324
- FormSum: sort_domains by @pbrubeck in #325
- use main firedrake branches in tests by @mscroggs in #326
- Python 3.12 in tsfc CI workflow by @mscroggs in #328
- Fix action space check by @pbrubeck in #331
- remove apply_default_restrictions() by @ksagiyam in #329
- Action type check by @pbrubeck in #333
- Bump gcc to 12 and ubuntu at 24.04 by @jorgensd in #337
- Fix FormSum weights by @pbrubeck in #335
- Simplify indexed ListTensor objects by @pbrubeck in #336
- Indexed: avoid contraction of repeated indices by @pbrubeck in #338
- Simplify conditional by @pbrubeck in #340
- Bug fix for complex division of numpy.complex by @KarsKnook in #342
- Fix #343 by @mscroggs in #344
- no need to explitly run Symmetry - have removed xfail from ffc by @mscroggs in #347
- Fix BaseFormOperator.ufl_function_space by @pbrubeck in #348
- introduce MeshSequence class by @ksagiyam in #303
- Introduce ridge integrals by @jorgensd in #330
- Update TSFC workflow by @connorjward in #349
- Return ZeroBaseForm for zero derivative by @Ig-dolci in #355
- Extract lhs and rhs from
MixedFunctionSpaceby @jorgensd in #350 - Resolve #353 by @jorgensd in #354
- Add
ufl.actionfor MixedFunctionSpace by @jorgensd in #351 - Extend adjoint action to work with mixed spaces by @jorgensd in #352
- ruff fix by @garth-wells in #358
- Fix missing domain kwarg in pullback by @pbrubeck in #361
- Fix replace_derivative_nodes by @pbrubeck in #360
- Remove component tensors by @pbrubeck in #339
- Changes to TSFC workflow to work with new Firedrake container by @connorjward in #359
- Update Python versions by @schnellerhase in #366
- apply_derivatives: tidy up things around BaseFormOperators by @ksagiyam in #368
- remove_compoment_tensors: fix performance regression by @pbrubeck in #367
- GateauxDerivativeRuleset return zero of the correct shape by @pbrubeck in #371
- Resolve #374 by @jorgensd in #375
New Contributors
- @dependabot made their first contribution in #317
- @KarsKnook made their first contribution in #342
- @schnellerhase made their first contribution in #366
Full Changelog: 2024.2.0...2025.1.0
2024.2.0
This is a major release of UFL and users are recommended to upgrade.
What's Changed
Features and API changes
- Fix extract block for tensor spaces by @jorgensd in #308
- Extend
FormSplitterto handle restrictions by @jorgensd in #310 - Move grouping of integral from
build_integral_datatogroup_form_integralsby @jorgensd in #305 - Remove broken/unused function by @jorgensd in #287
Other changes
- Updated to .md README by @jhale in #275
- Kebab case in build-wheels.yml by @jhale in #276
- Correct documentation links by @jhale in #277
- Remove unnecessary pip pinning by @garth-wells in #278
- Bump version. by @jhale in #279
- Add Windows CI step by @jhale in #281
- Clarify usage of pow and abs by @jorgensd in #286
- Handling of extract_blocks when part is equal to zero. by @jorgensd in #285
- Use extract_unique domain by @jorgensd in #291
- Fix argument-formatter. by @jorgensd in #288
- Remove unused definition to make ruff checks pass by @mscroggs in #299
- Use subdegree instead of superdegree to check cell bendy-ness by @connorjward in #295
- Relax assumption on BaseFormOperator's dual argument slot by @nbouziani in #283
- ConstantValue: Support general dtypes by @pbrubeck in #292
- Make cofunctionals terminal, and test by @dham in #300
- BaseForm: ensure that subclasses implement ufl_domains() by @pbrubeck in #302
- Move FiniteElement.components to FunctionSpace.components by @mscroggs in #307
- Fix pullback of double derivatives on Piola type elements by @jorgensd in #312
Full Changelog: 2024.1.0...2024.2.0
2024.1.0.post1
This release removes pip from the build-system requirements. It is otherwise functionally equivalent with 2024.1.0.
Full Changelog: 2024.1.0.post0...2024.1.0.post1
2024.1.0.post0
This release fixes a few small packaging issues. It is otherwise functionally equivalent with 2024.1.0.
Full Changelog: 2024.1.0...2024.1.0.post0
2024.1.0
What's Changed
- Bump version to 0.8.0.dev0 by @jhale in #217
- Add Spack test to Actions CI by @garth-wells in #218
- Add Spack test to CI by @garth-wells in #219
- AbstractFiniteElement by @mscroggs in #197
- Remove deprecated functionality (attach_operators_from_hash_data). by @jorgensd in #220
- Remove
setup.cfgby @garth-wells in #223 - Fix coefficients optional kwarg when calling a Form by @mscroggs in #226
topological_sorting: replace ineffectivecontinuewithbreakby @conpierce8 in #229- Fix isort section in pyproject.toml by @francesco-ballarin in #231
- We do require pip>=22.3 for editable installs (PEP 660). by @jorgensd in #227
- Update wheel builder action. by @jhale in #230
- Typo in error message by @RemDelaporteMathurin in #233
- Remove ufl.legacy by @mscroggs in #224
- Change DOLFINx integration test image by @jhale in #235
- Update BaseForm's call by @nbouziani in #232
- ufl2unicode fail by @Ig-dolci in #237
- Convert rst to md by @mscroggs in #239
- use tsfc master on CI by @mscroggs in #240
- Update OMPI environment variables in FEniCSx integration test for openmpi v5 by @francesco-ballarin in #241
- Fix license file field. by @jhale in #244
FormSum.coefficientsshould be ordered deterministically the same asForm.coefficientsby @JHopeCollins in #243- Expunge ufl_domain by @pbrubeck in #246
- Fix cofunction equality by @nbouziani in #247
- Bug-fix: do not call cell() in exterior_derivative by @pbrubeck in #248
- Drop
[email protected]in favor of[email protected]by @francesco-ballarin in #250 - Bump actions/{download-artifact,upload-artifact} to v4 by @francesco-ballarin in #251
- Add Python 3.12 test coverage by @garth-wells in #253
- Github actions update by @garth-wells in #254
- Emmarothwell1/restricted function space by @dham in #252
- Remove geometric dimension from cell, move value_shape to FunctionSpace by @mscroggs in #249
- Reset FEniCSx CI branches by @mscroggs in #255
- Apply black formatting (using ruff) and the ruff linter by @garth-wells in #256
- Remove functions that were marked as to be removed after Dec 2023 by @garth-wells in #257
- Remove print statement by @jorgensd in #259
- remove print statement by @mscroggs in #258
- Fix zero simplification in BaseForm.add by @nbouziani in #262
- Fix
extract_domainsby @jpdean in #265 - Ruff fix by @mscroggs in #270
- Check ufl_signature by @Ig-dolci in #269
New Contributors
- @francesco-ballarin made their first contribution in #231
- @RemDelaporteMathurin made their first contribution in #233
- @Ig-dolci made their first contribution in #237
- @JHopeCollins made their first contribution in #243
Full Changelog: 2023.2.0...2024.1.0
2023.2.0
What's Changed
- Fix tag ref for CI by @chrisrichardson in #116
- Use Python warnings and exceptions instead of custom logging by @mscroggs in #137
- Handle form coefficients as an optional kwarg when calling a form by @pbrubeck in #125
- Use BaseArgument.eq in Argument by @michalhabera in #147
- Updates to avoid
ufl_domaindeprecation warnings by @garth-wells in #148 - fix TensorProductElement repr by @ksagiyam in #152
- Fix dev version number so pip doesn't report UFL as upgradable by @garth-wells in #153
- Bump min
setuptoolsversion and removesetup.pyby @garth-wells in #154 - Replace
pkg_resourceswithimportlib.metadataand bump minimal Python version to 3.8 by @jorgensd in #158 - Fix typo in split by @nbouziani in #144
- fix str by @ksagiyam in #162
- Remove checks based on family name by @mscroggs in #161
- handle 0D integration in Ufl2unicode by @colinjcotter in #156
- Update UFL repository references by @albert-oliver in #165
- Refactor cells by @mscroggs in #168
- Reset FFCx branch by @mscroggs in #172
- Fix typo in definition of tetrahedron by @mscroggs in #173
- Remove
type_extensionsdependency by @garth-wells in #175 - Make
FiniteElementBasesubscriptable but not iterable by @conpierce8 in #180 - Delete unused code by @mscroggs in #163
- Ksagiyam/fix repr withmapping by @ksagiyam in #182
- Fix flake8 checks with new flake8 release by @mscroggs in #185
- Add Counted mixin class and refactor form signature computation by @connorjward in #178
- avoid error if Label not in renumbering by @mscroggs in #187
- Added 4d element types by @mscroggs in #188
- Fix issue #36 by @mrambausek in #37
- Add function determinant_expr_nxn by @lrtfm in #101
- Possible fix for taking scalar derivatives of vector coefficients using coefficient derivative maps by @cianwilson in #124
- Return correct Sobolev space for RestrictedElement by @pbrubeck in #128
- Implements the perp operator as a class by @tommbendall in #184
- Fix coefficients optional kwarg when calling a Form by @pbrubeck in #193
- Add trimmed serendipity to element list. by @dham in #195
- atan_2 changed to atan2 by @ignacia-fp in #196
- Group integrals with common integrand in IntegralData by @jorgensd in #92
- Update formatting by @mscroggs in #199
- reset branch name by @mscroggs in #200
- Some updates related to dualspace by @nbouziani in #194
- Deprecation messages for legacy features by @ignacia-fp in #201
- Add Interpolate and BaseFormOperator by @nbouziani in #205
- External operator dualspace by @nbouziani in #206
- Format docstrings by @mscroggs in #208
- Make tests pass flake8 checks by @mscroggs in #209
- Stop tests using deprecated initialisations by @mscroggs in #212
- Remove IrreducibleInt by @mscroggs in #213
- Reset Basix branch by @mscroggs in #215
- Update action differentiation by @nbouziani in #214
- convert Atan2 to atan2 not atan_2 by @dham in #216
New Contributors
- @nbouziani made their first contribution in #144
- @albert-oliver made their first contribution in #165
- @conpierce8 made their first contribution in #180
- @mrambausek made their first contribution in #37
- @cianwilson made their first contribution in #124
- @tommbendall made their first contribution in #184
- @ignacia-fp made their first contribution in #196
Full Changelog: 2023.1.1...2023.2.0
2023.1.1.post0
This release backports a fix e683148 for a major performance regression introduced in b9d3e97.
Fix version number.
All users of 2023.1.0 are recommended to update to this version.
Full Changelog: 2023.1.0...2023.1.1.post0