Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
easyblock = 'PythonPackage'

name = 'FEniCS-Basix-Python'
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 = ['b93221dac7d3fea8c10e77617f6201036de35d0c5437440b718de69a28c3773f']

toolchain = {'name': 'gfbf', 'version': '2024a'}

builddependencies = [
('make', '4.4.1'),
('CMake', '3.29.3'),
('scikit-build-core', '0.11.1'),
('nanobind', '2.5.0'),
]

dependencies = [
('Python', '3.12.3'),
('SciPy-bundle', '2024.05'),
('FEniCS-Basix', '%(version)s')
]

install_src = './python'

# Provide custom name for the module extension built-in sanity check: the EB module name is different from the Python
# module name.
options = {'modulename': 'basix'}

sanity_check_paths = {
'files': ['lib/python%(pyshortver)s/site-packages/basix/__init__.py'],
'dirs': [],
}

moduleclass = 'cae'
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
easyblock = 'CMakeMake'

name = 'FEniCS-Basix'
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.3.0'}

source_urls = ['https://github.com/FEniCS/basix/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['b93221dac7d3fea8c10e77617f6201036de35d0c5437440b718de69a28c3773f']

builddependencies = [
('make', '4.4.1'),
('CMake', '3.29.3'),
]

dependencies = [
('FlexiBLAS', '3.4.4'),
]

srcdir = "cpp"

sanity_check_paths = {
'files': [f'lib/libbasix.{SHLIB_EXT}'],
'dirs': ['include'],
}

moduleclass = 'cae'
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
easyblock = 'PythonPackage'

name = 'FEniCS-DOLFINx-Python'
version = '0.10.0'

homepage = 'https://github.com/FEniCS/dolfinx'
description = "DOLFINx is the computational environment of FEniCSx - Python binding "

toolchain = {'name': 'foss', 'version': '2024a'}

source_urls = ['https://github.com/FEniCS/dolfinx/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['24cbad2f604b38248e7655280e5f894eed19b409de4618cd6148a362a70105fd']

builddependencies = [
('make', '4.4.1'),
('CMake', '3.29.3'),
('nanobind', '2.5.0'),
('pkgconfig', '1.5.5', '-python'),
('scikit-build-core', '0.11.1'),
('setuptools', '80.9.0'),
]

dependencies = [
('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'),
]

install_src = './python'

# Disable built-in check for module extension: need to initialize MPI from mpi4py first
options = {'modulename': False}

sanity_check_paths = {
'files': ['lib/python%(pyshortver)s/site-packages/dolfinx/__init__.py'],
'dirs': [],
}

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'
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
easyblock = 'CMakeMake'

name = 'FEniCS-DOLFINx'
version = '0.10.0'

homepage = 'https://github.com/FEniCS/dolfinx'
description = "DOLFINx is the computational environment of FEniCSx - C++ library"

toolchain = {'name': 'foss', 'version': '2024a'}

source_urls = ['https://github.com/FEniCS/dolfinx/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['24cbad2f604b38248e7655280e5f894eed19b409de4618cd6148a362a70105fd']

builddependencies = [
('make', '4.4.1'),
('CMake', '3.29.3'),
('pkgconf', '2.2.0'),
]

dependencies = [
('Boost', '1.85.0'),
('ParMETIS', '4.0.3'),
('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: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 = {
'files': ['include/dolfinx.h', f'lib/libdolfinx.{SHLIB_EXT}'],
'dirs': ['include/dolfinx', 'lib/cmake/dolfinx'],
}

moduleclass = 'cae'
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
easyblock = 'PythonPackage'

name = 'FEniCS-FFCx'
version = '0.10.1'

homepage = 'https://github.com/FEniCS/ffcx'
description = "FFCx is a compiler for finite element variational forms"

toolchain = {'name': 'gfbf', 'version': '2024a'}

source_urls = ['https://github.com/FEniCS/ffcx/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['316a6356125b8fae1bf6ffb62c6690381df94e1723bc1aa73bcba0a7b062d0ed']

builddependencies = [
('setuptools', '80.9.0'),
]

dependencies = [
('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
# module name.
options = {'modulename': 'ffcx'}

sanity_check_paths = {
'files': ['lib/python%(pyshortver)s/site-packages/ffcx/__init__.py'],
'dirs': [],
}

moduleclass = 'cae'
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
easyblock = 'PythonPackage'

name = 'FEniCS-UFL'
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': '2024a'}

source_urls = ['https://github.com/FEniCS/ufl/archive']
sources = ['%(version)s.tar.gz']

builddependencies = [
('setuptools', '80.9.0'),
]

dependencies = [
('Python', '3.12.3'),
('SciPy-bundle', '2024.05'),
('setuptools', '80.9.0'),
]

sanity_check_paths = {
'files': ['lib/python%(pyshortver)s/site-packages/ufl/__init__.py'],
'dirs': [],
}

testinstall = True
runtest = 'python -m pytest -n auto test/'

options = {'modulename': 'ufl'}

moduleclass = 'math'
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
easyblock = 'CMakeMake'

name = 'FEniCS-ufcx'
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.3.0'}

source_urls = ['https://github.com/FEniCS/ffcx/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['fa27e2dc68988cbf9aca537eb5a58483f75cc719c1a383713b7f8cca49844ff9']

builddependencies = [
('make', '4.4.1'),
('CMake', '3.29.3'),
('binutils', '2.42'),
]

srcdir = 'cmake'

sanity_check_paths = {
'files': ['include/ufcx.h', 'share/ufcx/cmake/ufcxConfig.cmake'],
'dirs': [],
}

moduleclass = 'cae'
Loading