Releases: FEniCS/dolfinx
Release list
v0.11.0.post0
This release fixes a Mathjax rendering issue in the built documentation. Users do not need to upgrade, as this release is functionally identical to tag v0.11.0.
Full Changelog: v0.11.0...v0.11.0.post0
v0.11.0
The detailed Changelog below will be curated in the coming weeks.
A high-level summary of Python API changes is available here: https://github.com/FEniCS/dolfinx/blob/v0.11.0/python/doc/source/release_notes.md
What's Changed
- Backport from release branch. by @jhale in #3958
- Fix typing error by @mscroggs in #3961
- Bump versions to dev by @jorgensd in #3962
- Add version depndent intersphinx mapping by @jorgensd in #3960
- Final fixes to documentation build by @jhale in #3963
- More robust version check test by @jhale in #3965
AbstractCellmembers are now properties by @schnellerhase in #3926- Remove
build-requirements.txtby @schnellerhase in #3955 - Fix end-user images by @jhale in #3966
- Documentation typo in SNES setFunction by @a-latyshev in #3967
- Typo fixes by @mleoni-pf in #3969
- Fix Spack CI cache issue by @jhale in #3970
- Undefined call to cell_num_entities for point meshes. by @jorgensd in #3974
- Remove
num_entity_dofsandnum_entity_closure_dofsas they are inconsistent for pyramid/prism cells by @chrisrichardson in #3977 - Fix: copy drops function name by @schnellerhase in #3978
- More robust ctest setup for MPI C++ tests. by @jhale in #3984
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #3968
- Reflect change to UFCx version number in release instructions by @jhale in #3986
- Move to our Spack package fork. by @jhale in #3981
- Small further tweak to Spack CI by @jhale in #3987
- Fix
reprinAdjacencyListby @finsberg in #3990 - Allow stable tagging image to have different tags dev-env and end-users. by @jhale in #3991
- Add Conda 3.13 to weekly conda install check by @jhale in #3992
- Fix unsigned int bug in sort test and C++ standard library assertions by @jhale in #3996
- Adds
xfailtest for scotch partitioner by @schnellerhase in #4001 - Fix: single process input parallel mesh generation test by @schnellerhase in #4003
- Fix output file paths in VTXWriter by @jorgensd in #4008
- fix build with adios2 v2.11.0 by @qbisi in #4004
- Overlay Spack FEniCS package repo over upstream by @jhale in #4009
- Fix
clang@15compile by @schnellerhase in #4011 - Fix test_mpi_comm_refcount with Python 3.14 (#4014) by @AdrianBunk in #4016
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #3999
- Bump mpi4py/setup-mpi from 1.2.2 to 1.3.4 by @dependabot[bot] in #3911
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #4018
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #4019
- Expose max_facet_to_cell_links by @jorgensd in #4017
- Bump mpi4py/setup-mpi from 1.4.0 to 1.4.1 by @dependabot[bot] in #4020
- Compile time string definitions in
defines.hby @schnellerhase in #4021 - Improve some EM demos by @jorgensd in #4000
- Mleoni/typo fixes by @mleoni-pf in #4024
- Fix order of arguments in docstring of
dolfinx.mesh.create_meshby @finsberg in #4029 - Bump versions in docker by @schnellerhase in #4023
- Template SparsityPattern for MatrixCSR constructor by @chrisrichardson in #4028
- Test docstrings with ruff by @garth-wells in #4031
- Fix documentation by @schnellerhase in #4032
VTXWritercheck unique names by @schnellerhase in #4034- Small tweaks and update Conda Windows gotchas. by @jhale in #4037
- Improve demo dimension usage by @schnellerhase in #4039
- Fix for rank 1 dataset in HDF with chunking turned on. by @chrisrichardson in #4043
- PetscErrorCode can be an enum by @schnellerhase in #4044
- Simple fix for submesh interpolation by @garth-wells in #4048
- Fix: CI C++ test compile time by @schnellerhase in #4050
- Experimental binary wheel builder by @jhale in #4042
- Attempt to trigger SIGTRAP in CI by @jhale in #4051
- Fix logic and uses ranges in interpolate by @garth-wells in #4049
- Fix a bug in VTKHDF unit tests by @chrisrichardson in #4057
- Fix in PETSc pkgconfig setup by @jhale in #4055
- Use overlay on top of Spack upstream by @jhale in #4058
- SuperLU_DIST solver interface by @jhale in #4054
- Split SuperLU solver and matrix by @jhale in #4061
- Remove reserved keywords from class members by @jhale in #4062
- Tweaks to SuperLU constructors by @jhale in #4063
- Fix exterior facet integrals from meshtags by @jorgensd in #4041
- New ruff - switch to 0.15. by @jhale in #4068
- Experimental threaded mesh construction by @garth-wells in #4060
- Check fit for int_t on SuperLUDist boundary by @jhale in #4065
- Use filesystem path rather than strings for paths to VTKHDF writer by @jorgensd in #4067
- Nuke pkgconfig.py by @jhale in #4064
- Re-enable SonarCloud on main by @jhale in #4069
- Add type hinting and python wrapper around entity-map in Python by @jorgensd in #4071
- Wrap SuperLU_DIST solver options by @jhale in #4072
- Fix thread performance issue by @garth-wells in #4076
- Pin setuptools verison on macos CI (workaround petsc4py issue) by @garth-wells in #4077
- Bump mpi4py/setup-mpi from 1.4.1 to 1.4.2 by @dependabot[bot] in #4079
- Allow SuperLU_DIST to solve with repeated right-hand sides by @jhale in #4074
- Attempt to fix Windows CI by @jhale in #4080
- Fix dofmap builder performance fixes by @garth-wells in #4081
- Make low-level default args not-default by @garth-wells in #4082
- Fix Spack in install in CI by @garth-wells in #4087
- Fix dtype in interpolation test by @schnellerhase in #4092
- Fix some errors in geometry python constructor by @jorgensd in #4097
- add cpp stub files by @qbisi in #4096
- Radix sort template argument fix, provides performance boost by @garth-wells in #4099
- Revert "add cpp stub files (#4096)" by @jhale in #4100
- Apply new clang-format by @schnellerhase in #4104
- Fix wrong span extent in _lift_bc_interior_facets by @michalhabera in #4102
- Move nanobind declarations to header files by @michalhabera in #4084
- Expose JIT MPI communicator by @jhale in #4107
- Threaded mesh topology construction improvements by @garth-wells in #4083
- Improve Topology code readability by @garth-wells in #4109
- Improve C++ docs by @jorgensd in #4036
- Add overload type declaration for
AdjacencyListby @schnellerhase in #4094 - Add better error handling for
locate_dofs_topologicalby @jorgensd in #4033 - Mesh build performance improvements by @garth-wells in #4110
- Topology simplifications by @garth-wells in #4111
- Improve biharmonic demo ...
v0.10.0.post5
This release fixes a unit test for Python 3.14 and fixes a bug in a test related to mesh partitioning. Users do not need to upgrade.
Full Changelog: v0.10.0.post4...v0.10.0.post5
v0.10.0.post4
This fixes an issue building against ADIOS2 2.11 and above. Users do not need to upgrade.
Full Changelog: v0.10.0.post3...v0.10.0.post4
v0.10.0.post3
Contains a fix for an unsigned integer bug in a test identified by @drew-parsons through Debian's CI/build system. See #3996 for more details.
For end-users, this version is functionally identical to all v0.10.0* tags, and they do not need to upgrade.
Full Changelog: v0.10.0.post2...v0.10.0.post3
v0.10.0.post2
Contains a non-critical fix for pytest>=9 which contains an API-breaking for reading pyproject.toml. This release may be useful for package maintainers, but users do not need to upgrade.
We note the recent critical bug fix release of FFCx https://github.com/FEniCS/ffcx/releases/tag/v0.10.1.
Full Changelog: v0.10.0.post1...v0.10.0.post2
v0.10.0.post1
This post release fixes a bug in the test python/test/unit/common/test_version.py which checks that the C++ library and Python library have the same version.
For users, this version is functionally identical to v0.10.0 and v0.10.0.post0 tags.
For package maintainers, the new version of this test uses the Python package packaging. This does not affect the dependencies for fenics-dolfinx itself.
Full Changelog: v0.10.0.post0...v0.10.0.post1
v0.10.0.post0
What's Changed
This is a major release of DOLFINx and users are advised to upgrade.
All PRs are included below. A curated changelog is available here.
The v0.10.0 tag exists but was never released due to errors in the documentation build.
Features and API changes
- Safe default value for unbound variables in dolfinx.conf by @mleoni-pf in #3470
- Use standard C++20 (no GNU extensions) by @garth-wells in #3479
- Revised
Timer, now usingstd::chronoby @garth-wells in #3484 - Improve Newton solver docs by @garth-wells in #3490
- Fixes to
Timerlogic by @garth-wells in #3488 - Allow access to logged timer data by @garth-wells in #3487
- Small updates to Newton Solver documentation. by @jhale in #3491
- C++ style improvements in subdomain demo by @garth-wells in #3493
- Demo updates for LU solver bugs by @garth-wells in #3499
- Improve readability of form in HDG demo by @jpdean in #3508
- Fix SNES NonlinearPDE class when using line search by @jhale in #3507
- Improve Topology construction and fix MPI/NBX bug by @garth-wells in #3512
- Add C++ demo that shows mixed elements and consistency fixes for element spaces by @garth-wells in #3500
- Use separately allocated data for each call to MPI_Ineighbor_allgatherv by @chrisrichardson in #3513
- Add more PETSc destruction notes to assembly functionality that creates PETSc.Mat/Vec objects by @jorgensd in #3524
- Allow specifying attribute name when reading meshtag by @mleoni-pf in #3257
- Remove jit options from function-space as we no longer generate code. by @jorgensd in #3529
- Use non-standard Python package manager uv in oneAPI CI by @Saransh-cpp in #3550
- Add
FiniteElementpython wrapper by @schnellerhase in #3542 - Mesh
Geometryimprovements for mixed topology by @garth-wells in #3575 - Modify demo_helmholtz.py to solve for plane wave solution in complex mode by @jzitelli in #3563
- VTKHDF mesh I/O by @chrisrichardson in #3576
- Use block preconditioner for mixed Poisson problem by @garth-wells in #3580
- Fix bug in coefficient packing by @garth-wells in #3645
- Add discrete curl matrix operator by @garth-wells in #3587
- Support assembly of linear forms with cell integrals on mixed-topology meshes by @jpdean in #3606
- Move SpMV from tests into MatrixCSR by @chrisrichardson in #3591
- Put FEM 'packing' functions into separate header by @garth-wells in #3621
- Mixed topology: find dS cells by @chrisrichardson in #3632
- Extend
locate_entitiesfor mixed-topology meshes by @jpdean in #3637 - Move
Expression::evalto a free function with other 'assemblers' by @garth-wells in #3625 - Simplify assembler implementation interfaces by @garth-wells in #3649
- Expose
_bbox_coordinatesofBoundingBoxTreeto users by @ordinary-slim in #3600 - Extend the mesh generation testing to the 3D cases by @schnellerhase in #3604
- Refactor LA into native and PETSc part and add assigners by @jhale in #3659
- Allow a custom cell reorder function to be passed to
create_meshby @jpdean in #3664 - Add support for Serendipity (order 2) coordinate elements by @jorgensd in #3662
- Add void* to tabulate tensor kernel by @sclaus2 in #3660
- Correct usage of input coefficients for
apply_liftingof blocked operators. by @jorgensd in #3680 - Block assembly with no DirichletBC and None on diagonal by @jorgensd in #3683
- Fix finite relative-residual at 0th iteration by @RemDelaporteMathurin in #3713
- Expose
Scattererin Python layer by @chrisrichardson in #3727 - Local dual graph for branching meshes by @schnellerhase in #3730
- Extend blocked/nest/monolithic assembly test with a higher order vector example by @schnellerhase in #3708
- Add a demo showing how submeshes can be used to represent boundary data by @jpdean in #3711
- SNES solver interface for standard, block and nest systems by @jorgensd in #3648
dolfinx.fem.petsc.LinearProblemfor nest and block systems by @jorgensd in #3684- Check rank/shape consistency between user provided Constants and Constants in generated UFCx code by @garth-wells in #3760
- XDMF IO for meshes using serendipity degree 2 by @mscroggs in #3731
- NonlinearProblem docstring improvements by @jhale in #3765
- Improve nested fieldsplit preconditioning setup on
*Problemclasses by @jorgensd in #3752 - Remove shared_vertex ghost mode option by @chrisrichardson in #3795
- Replace
std::mapin refinement by @chrisrichardson in #3797 - Harmonise Stokes high and low-level preconditioner setup by @jhale in #3778
- Write VTKHDF point and cell data by @chrisrichardson in #3806
- Introduce
create_identity_partitionerfor refined mesh partitioning by @schnellerhase in #3661 - Create parallel communication graph and support NetworkX analysis and visualiation by @garth-wells in #3803
- Doc improvements
dolfinx.jitby @jhale in #3812 - Simplify PETSc wrapper solve return type by @jhale in #3810
- Improve PETSc wrapper documentation by @jhale in #3811
- Align order of
create_meshin Python layer to C++ layer by @schnellerhase in #3826 - Correct several typos in Stokes example and improve documentation formatting by @jorgensd in #3834
- Force non random order of execution for C++ tests by @schnellerhase in #3852
- Expose original cell indices by @jorgensd in #3854
- Wrap FunctionSpace.collapse by @michalhabera in #3851
- Allow
dolfinx.fem.Constantto take native float as value type by @finsberg in #3847 - Generalise
la::Vectorto support GPUs by @garth-wells in #3855 - Remove
mpiexecin cmake test target by @jhale in #3870 - Refactor
dolfinx::fem::Formto use local indexing of forms, rather than integral ids by @jorgensd in #3740 - Re-enable Windows build by @jhale in #3867
- Allow copy of MatrixCSR to different storage (GPU support) by @chrisrichardson in #3886
- Rocky -> AlmaLinux for CI by @garth-wells in #3887
- Introduce
dolfinx.fem.create_dofmapsby @schnellerhase in #3842 - Vertex integrals by @schnellerhase in #3726
- Support 'cast-copy' of
la::MatrixCSR,la::Vectorandcommon::Scatterer(includes GPU support) by @garth-wells in #3894 - allow stable abi builds by @minrk in #3875
- Drop Python 3.9 support by @schnellerhase in #3903
- Global dual graph computation for branching meshes by @schnellerhase in #3830
- Change interface of
fem.petsc.create_vectorto allow for general list of function spaces by @schnellerhase in #3694 - Fix vector block data for single function space case by @schnellerhase in #3924
- Improve python exposure of determine_point_ownership by @jorgensd in #3927
- add checks of cell tag consistency in gmshio by @pierricmora in #3342
- Support list of DG-0 + other space in VTXWriter by @ordinary-slim in #3375
- Fix "jo...
v0.9.0.post1
This post release fixes:
- Installation of optional test dependencies (pyamg, numba etc.) in Docker images.
Version numbers are still 0.9.0 throughout.
These changes are for strict correctness - the v0.9.0 tag will be functionally identical for almost all users.
A curated set of release notes is available at: https://fenicsproject.org/blog/v0.9.0/
Full Changelog: https://github.com/FEniCS/dolfinx/compare/v0.9.0.post0..v0.9.0.post1
v0.9.0.post0
This post release fixes:
- An incorrect lower bound on the Basix version in the C++ build.
- Updates
CITATION.cff.
Version numbers are still 0.9.0 throughout.
These changes are for strict correctness - the v0.9.0 tag will be functionally identical for almost all users.
A curated set of release notes is available at: https://fenicsproject.org/blog/v0.9.0/
Full Changelog: v0.9.0...v0.9.0.post0