Skip to content

{tools}[foss/2023b] FEniCS-DOLFINx v0.10.0#25015

Draft
gkaf89 wants to merge 1 commit intoeasybuilders:developfrom
gkaf89:gkaf89/fenics-dolfinx-0.10.0
Draft

{tools}[foss/2023b] FEniCS-DOLFINx v0.10.0#25015
gkaf89 wants to merge 1 commit intoeasybuilders:developfrom
gkaf89:gkaf89/fenics-dolfinx-0.10.0

Conversation

@gkaf89
Copy link
Contributor

@gkaf89 gkaf89 commented Jan 6, 2026

This commit contains all the easyconfigs required for building FEniCS-DOPHINx.

This commit contains all the easyconfigs required for building FEniCS-DOPHINx.
@gkaf89 gkaf89 marked this pull request as draft January 6, 2026 22:35
@github-actions github-actions bot added 2024a issues & PRs related to 2024a common toolchains update labels Jan 6, 2026
@github-actions
Copy link

github-actions bot commented Jan 6, 2026

Updated software FEniCS-Basix-Python-0.10.0-gfbf-2024a.eb

Diff against FEniCS-Basix-Python-0.9.0-gfbf-2023b.eb

easybuild/easyconfigs/f/FEniCS-Basix-Python/FEniCS-Basix-Python-0.9.0-gfbf-2023b.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-Basix-Python/FEniCS-Basix-Python-0.9.0-gfbf-2023b.eb b/easybuild/easyconfigs/f/FEniCS-Basix-Python/FEniCS-Basix-Python-0.10.0-gfbf-2024a.eb
index 96f9a98f80..66f7476d64 100644
--- a/easybuild/easyconfigs/f/FEniCS-Basix-Python/FEniCS-Basix-Python-0.9.0-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/f/FEniCS-Basix-Python/FEniCS-Basix-Python-0.10.0-gfbf-2024a.eb
@@ -1,27 +1,27 @@
 easyblock = 'PythonPackage'
 
 name = 'FEniCS-Basix-Python'
-version = '0.9.0'
+version = '0.10.0'
 
 homepage = 'https://github.com/FEniCS/basix'
 description = "Basix is a finite element definition and tabulation runtime library - Python binding"
 
 source_urls = ['https://github.com/FEniCS/basix/archive']
 sources = ['v%(version)s.tar.gz']
-checksums = ['60e96b2393084729b261cb10370f0e44d12735ab3dbd1f15890dec23b9e85329']
+checksums = ['b93221dac7d3fea8c10e77617f6201036de35d0c5437440b718de69a28c3773f']
 
-toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 builddependencies = [
     ('make', '4.4.1'),
-    ('CMake', '3.27.6'),
-    ('scikit-build-core', '0.10.7'),
+    ('CMake', '3.29.3'),
+    ('scikit-build-core', '0.11.1'),
     ('nanobind', '2.5.0'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
     ('FEniCS-Basix', '%(version)s')
 ]
 

Updated software FEniCS-Basix-0.10.0-GCC-13.3.0.eb

Diff against FEniCS-Basix-0.9.0-GCC-13.2.0.eb

easybuild/easyconfigs/f/FEniCS-Basix/FEniCS-Basix-0.9.0-GCC-13.2.0.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-Basix/FEniCS-Basix-0.9.0-GCC-13.2.0.eb b/easybuild/easyconfigs/f/FEniCS-Basix/FEniCS-Basix-0.10.0-GCC-13.3.0.eb
index cfcf7228ae..aad8c83c47 100644
--- a/easybuild/easyconfigs/f/FEniCS-Basix/FEniCS-Basix-0.9.0-GCC-13.2.0.eb
+++ b/easybuild/easyconfigs/f/FEniCS-Basix/FEniCS-Basix-0.10.0-GCC-13.3.0.eb
@@ -1,24 +1,24 @@
 easyblock = 'CMakeMake'
 
 name = 'FEniCS-Basix'
-version = '0.9.0'
+version = '0.10.0'
 
 homepage = 'https://github.com/FEniCS/basix'
 description = "Basix is a finite element definition and tabulation runtime library - C++ library"
 
-toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
 
 source_urls = ['https://github.com/FEniCS/basix/archive']
 sources = ['v%(version)s.tar.gz']
-checksums = ['60e96b2393084729b261cb10370f0e44d12735ab3dbd1f15890dec23b9e85329']
+checksums = ['b93221dac7d3fea8c10e77617f6201036de35d0c5437440b718de69a28c3773f']
 
 builddependencies = [
     ('make', '4.4.1'),
-    ('CMake', '3.27.6'),
+    ('CMake', '3.29.3'),
 ]
 
 dependencies = [
-    ('FlexiBLAS', '3.3.1'),
+    ('FlexiBLAS', '3.4.4'),
 ]
 
 srcdir = "cpp"

Updated software FEniCS-DOLFINx-Python-0.10.0-foss-2024a.eb

Diff against FEniCS-DOLFINx-Python-0.9.0-foss-2023b.eb

easybuild/easyconfigs/f/FEniCS-DOLFINx-Python/FEniCS-DOLFINx-Python-0.9.0-foss-2023b.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-DOLFINx-Python/FEniCS-DOLFINx-Python-0.9.0-foss-2023b.eb b/easybuild/easyconfigs/f/FEniCS-DOLFINx-Python/FEniCS-DOLFINx-Python-0.10.0-foss-2024a.eb
index 1c46be6db1..f0b8446278 100644
--- a/easybuild/easyconfigs/f/FEniCS-DOLFINx-Python/FEniCS-DOLFINx-Python-0.9.0-foss-2023b.eb
+++ b/easybuild/easyconfigs/f/FEniCS-DOLFINx-Python/FEniCS-DOLFINx-Python-0.10.0-foss-2024a.eb
@@ -1,35 +1,35 @@
 easyblock = 'PythonPackage'
 
 name = 'FEniCS-DOLFINx-Python'
-version = '0.9.0'
+version = '0.10.0'
 
 homepage = 'https://github.com/FEniCS/dolfinx'
 description = "DOLFINx is the computational environment of FEniCSx - Python binding "
 
-toolchain = {'name': 'foss', 'version': '2023b'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/FEniCS/dolfinx/archive']
 sources = ['v%(version)s.tar.gz']
-checksums = ['b266c74360c2590c5745d74768c04568c965b44739becca4cd6b5aa58cdbbbd1']
+checksums = ['24cbad2f604b38248e7655280e5f894eed19b409de4618cd6148a362a70105fd']
 
 builddependencies = [
     ('make', '4.4.1'),
-    ('CMake', '3.27.6'),
+    ('CMake', '3.29.3'),
     ('nanobind', '2.5.0'),
     ('pkgconfig', '1.5.5', '-python'),
-    ('scikit-build-core', '0.10.7'),
+    ('scikit-build-core', '0.11.1'),
     ('setuptools', '80.9.0'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
-    ('FEniCS-Basix-Python', '0.9.0'),
-    ('FEniCS-FFCx', '0.9.0'),
-    ('FEniCS-UFL', '2024.2.0'),
-    ('mpi4py', '3.1.5'),
-    ('petsc4py', '3.22.5'),
-    ('slepc4py', '3.22.2'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('FEniCS-Basix-Python', '0.10.0'),
+    ('FEniCS-FFCx', '0.10.1'),
+    ('FEniCS-UFL', '2025.2.0'),
+    ('mpi4py', '4.0.1'),
+    ('petsc4py', '3.23.5'),
+    ('slepc4py', '3.23.2'),
     ('FEniCS-DOLFINx', '%(version)s'),
 ]
 
@@ -47,4 +47,7 @@ sanity_check_commands = [
     'mpiexec -N 1 python -c "from mpi4py import MPI; import dolfinx"',
 ]
 
+testinstall = True
+runtest = 'mpiexec -n 1 python -m pytest -n auto -m "not adios2" python/test/unit'
+
 moduleclass = 'cae'

Updated software FEniCS-DOLFINx-0.10.0-foss-2024a.eb

Diff against FEniCS-DOLFINx-0.9.0-foss-2023b.eb

easybuild/easyconfigs/f/FEniCS-DOLFINx/FEniCS-DOLFINx-0.9.0-foss-2023b.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-DOLFINx/FEniCS-DOLFINx-0.9.0-foss-2023b.eb b/easybuild/easyconfigs/f/FEniCS-DOLFINx/FEniCS-DOLFINx-0.10.0-foss-2024a.eb
index 879890cb4e..0754afed89 100644
--- a/easybuild/easyconfigs/f/FEniCS-DOLFINx/FEniCS-DOLFINx-0.9.0-foss-2023b.eb
+++ b/easybuild/easyconfigs/f/FEniCS-DOLFINx/FEniCS-DOLFINx-0.10.0-foss-2024a.eb
@@ -1,40 +1,48 @@
 easyblock = 'CMakeMake'
 
 name = 'FEniCS-DOLFINx'
-version = '0.9.0'
+version = '0.10.0'
 
 homepage = 'https://github.com/FEniCS/dolfinx'
 description = "DOLFINx is the computational environment of FEniCSx - C++ library"
 
-toolchain = {'name': 'foss', 'version': '2023b'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/FEniCS/dolfinx/archive']
 sources = ['v%(version)s.tar.gz']
-checksums = ['b266c74360c2590c5745d74768c04568c965b44739becca4cd6b5aa58cdbbbd1']
+checksums = ['24cbad2f604b38248e7655280e5f894eed19b409de4618cd6148a362a70105fd']
 
 builddependencies = [
     ('make', '4.4.1'),
-    ('CMake', '3.27.6'),
-    ('pkgconf', '2.0.3'),
+    ('CMake', '3.29.3'),
+    ('pkgconf', '2.2.0'),
 ]
 
 dependencies = [
-    ('Boost', '1.83.0'),
+    ('Boost', '1.85.0'),
     ('ParMETIS', '4.0.3'),
-    ('PETSc', '3.22.5'),
-    ('SLEPc', '3.22.2'),
-    ('HDF5', '1.14.3'),
-    ('FEniCS-Basix', '0.9.0'),
-    ('FEniCS-ufcx', '0.9.0'),
-    ('pugixml', '1.14'),
+    ('PETSc', '3.23.5'),
+    ('SLEPc', '3.23.2'),
+    ('HDF5', '1.14.5'),
+    ('FEniCS-Basix', '0.10.0'),
+    ('FEniCS-ufcx', '0.10.0'),
+    ('pugixml', '1.15'),
     ('spdlog', '1.12.0'),
+    ('KaHIP', '3.19'),
+    ('SCOTCH', '7.0.6'),
 ]
 
 srcdir = "cpp"
 
 configopts = (
-    ' -DDOLFINX_UFCX_PYTHON=OFF '
-    ' -DDOLFINX_BASIX_PYTHON=OFF '
+    ' -DDOLFINX_UFCX_PYTHON:Bool=OFF '
+    ' -DDOLFINX_BASIX_PYTHON:Bool=OFF '
+# Ensure dependencies are used (fail if not present)
+    ' -DDOLFINX_ENABLE_KAHIP:Bool=ON '
+    ' -DDOLFINX_ENABLE_SCOTCH:Bool=ON '
+    ' -DDOLFINX_ENABLE_PARMETIS:Bool=ON '
+    ' -DDOLFINX_ENABLE_PETSC:Bool=ON '
+    ' -DDOLFINX_ENABLE_SLEPC:Bool=ON '
 )
 
 sanity_check_paths = {

Updated software FEniCS-FFCx-0.10.1-gfbf-2024a.eb

Diff against FEniCS-FFCx-0.9.0-gfbf-2023b.eb

easybuild/easyconfigs/f/FEniCS-FFCx/FEniCS-FFCx-0.9.0-gfbf-2023b.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-FFCx/FEniCS-FFCx-0.9.0-gfbf-2023b.eb b/easybuild/easyconfigs/f/FEniCS-FFCx/FEniCS-FFCx-0.10.1-gfbf-2024a.eb
index f968706602..e73216406e 100644
--- a/easybuild/easyconfigs/f/FEniCS-FFCx/FEniCS-FFCx-0.9.0-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/f/FEniCS-FFCx/FEniCS-FFCx-0.10.1-gfbf-2024a.eb
@@ -1,26 +1,27 @@
 easyblock = 'PythonPackage'
 
 name = 'FEniCS-FFCx'
-version = '0.9.0'
+version = '0.10.1'
 
 homepage = 'https://github.com/FEniCS/ffcx'
 description = "FFCx is a compiler for finite element variational forms"
 
-toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 source_urls = ['https://github.com/FEniCS/ffcx/archive']
 sources = ['v%(version)s.tar.gz']
-checksums = ['afa517272a3d2249f513cb711c50b77cf8368dd0b8f5ea4b759142229204a448']
+checksums = ['316a6356125b8fae1bf6ffb62c6690381df94e1723bc1aa73bcba0a7b062d0ed']
 
 builddependencies = [
     ('setuptools', '80.9.0'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
-    ('FEniCS-Basix-Python', '0.9.0'),
-    ('FEniCS-UFL', '2024.2.0'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('FEniCS-Basix-Python', '0.10.0'),
+    ('FEniCS-UFL', '2025.2.0'),
+    ('setuptools', '80.9.0'),
 ]
 
 # Provide custom name for the module extension built-in sanity check: the EB module name is different from the Python

Updated software FEniCS-UFL-2025.2.0-gfbf-2024a.eb

Diff against FEniCS-UFL-2024.2.0-gfbf-2023b.eb

easybuild/easyconfigs/f/FEniCS-UFL/FEniCS-UFL-2024.2.0-gfbf-2023b.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-UFL/FEniCS-UFL-2024.2.0-gfbf-2023b.eb b/easybuild/easyconfigs/f/FEniCS-UFL/FEniCS-UFL-2025.2.0-gfbf-2024a.eb
index 94a3ad7ed8..0d40547d09 100644
--- a/easybuild/easyconfigs/f/FEniCS-UFL/FEniCS-UFL-2024.2.0-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/f/FEniCS-UFL/FEniCS-UFL-2025.2.0-gfbf-2024a.eb
@@ -1,20 +1,24 @@
 easyblock = 'PythonPackage'
 
 name = 'FEniCS-UFL'
-version = '2024.2.0'
+version = '2025.2.0'
 
 homepage = "https://github.com/FEniCS/ufl"
 description = "The Unified Form Language (UFL) is a domain-specific language for defining variational forms"
 
-toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 source_urls = ['https://github.com/FEniCS/ufl/archive']
 sources = ['%(version)s.tar.gz']
-checksums = ['d9353d23ccbdd9887f8d6edab74c04fe06d818da972072081dbf0c25bc86f5a7']
+
+builddependencies = [
+    ('setuptools', '80.9.0'),
+]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11')
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('setuptools', '80.9.0'),
 ]
 
 sanity_check_paths = {

Updated software FEniCS-ufcx-0.10.0-GCCcore-13.3.0.eb

Diff against FEniCS-ufcx-0.9.0-GCCcore-13.2.0.eb

easybuild/easyconfigs/f/FEniCS-ufcx/FEniCS-ufcx-0.9.0-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/f/FEniCS-ufcx/FEniCS-ufcx-0.9.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FEniCS-ufcx/FEniCS-ufcx-0.10.0-GCCcore-13.3.0.eb
index d6c99d4fd5..a5f005eea2 100644
--- a/easybuild/easyconfigs/f/FEniCS-ufcx/FEniCS-ufcx-0.9.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/f/FEniCS-ufcx/FEniCS-ufcx-0.10.0-GCCcore-13.3.0.eb
@@ -1,21 +1,21 @@
 easyblock = 'CMakeMake'
 
 name = 'FEniCS-ufcx'
-version = '0.9.0'
+version = '0.10.0'
 
 homepage = 'https://github.com/FEniCS/ffcx'
 description = "FFCx provides the ufcx.h interface header for generated finite element kernels, used by DOLFINx."
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
 
 source_urls = ['https://github.com/FEniCS/ffcx/archive/']
 sources = ['v%(version)s.tar.gz']
-checksums = ['afa517272a3d2249f513cb711c50b77cf8368dd0b8f5ea4b759142229204a448']
+checksums = ['fa27e2dc68988cbf9aca537eb5a58483f75cc719c1a383713b7f8cca49844ff9']
 
 builddependencies = [
     ('make', '4.4.1'),
-    ('CMake', '3.27.6'),
-    ('binutils', '2.40'),
+    ('CMake', '3.29.3'),
+    ('binutils', '2.42'),
 ]
 
 srcdir = 'cmake'

@gkaf89
Copy link
Contributor Author

gkaf89 commented Jan 6, 2026

We are facing an problem when building the Python packages. The FFCx and UFL packages require the setuptools package (as a build dependency). However, these packages also require the SciPy-bundle that fetches an older version of the packaging package than setuptools, and the packages fail to build.

The current solution it to add setuptools as a dependency after SciPy-bundle. Is there another way to resolve the problem?

In another a minor issue, DOFINx is using the find utility of CMake to link with SCHOTCH. Since SCOTCH is built with make in EasyBuild, it is not setup to work with the find utility of CMake. However, KaHIP is a preferable choice over SCOTCH for DOLFINx as far as I understand.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant