summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Archer <36638242+ma595@users.noreply.github.com>2022-05-19 19:22:09 +0100
committerGitHub <noreply@github.com>2022-05-19 18:22:09 +0000
commit3f4398dd6707bdd6090c2e733f8bad85bb978120 (patch)
tree3ce2834c73c5037a00ce1a37d888c7dfe06e4cd7
parenta225a5b27662fdfcd82aeb479034f7abda5496ce (diff)
downloadspack-3f4398dd6707bdd6090c2e733f8bad85bb978120.tar.gz
spack-3f4398dd6707bdd6090c2e733f8bad85bb978120.tar.bz2
spack-3f4398dd6707bdd6090c2e733f8bad85bb978120.tar.xz
spack-3f4398dd6707bdd6090c2e733f8bad85bb978120.zip
fenicsx: update to v0.4 (#30661)
* Fix for xtensor-xsimd * Add sha256 for all new releases * renamed ufcx package * Update sha for ffcx * fixed hashes and modified fenics-dolfinx to depend on ufcx * cleaned and fixed dependency types * use spec.satisfies in cmake_args * bumped to ufcx@0.4.1 * address PR comments * fix hashes * update parmetis in cmake_args to reflect default setting * update versions * renamed ufcx package * fixed hashes and modified fenics-dolfinx to depend on ufcx * cleaned and fixed dependency types * use spec.satisfies in cmake_args * bumped to ufcx@0.4.1 * address PR comments * fix hashes * update parmetis in cmake_args to reflect default setting * update versions * Add dependency fix * bump basix to 0.4.2 and address PR comments * Versioning fixes * Use xtensor-0.24: and loosen pybind11 * Add conflicts for partitioners * Updates on partitioners * use define_from_variant * Tidy up some dependencies * Work on multi-variants for graph partitioners * Fix KaHIP issue. KaHIP changed the name of its library from 'interface' to 'kahip'. Pin earlier versions of DOLFINx to earlier verisons of KaHIP for proper detection. Co-authored-by: Chris Richardson <chris@bpi.cam.ac.uk> Co-authored-by: Garth N. Wells <gnw20@cam.ac.uk>
-rw-r--r--var/spack/repos/builtin/packages/fenics-basix/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fenics-dolfinx/package.py80
-rw-r--r--var/spack/repos/builtin/packages/fenics-ufcx/package.py (renamed from var/spack/repos/builtin/packages/ufcx/package.py)5
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-basix/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-ffcx/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-fenics-ufl/package.py3
7 files changed, 78 insertions, 35 deletions
diff --git a/var/spack/repos/builtin/packages/fenics-basix/package.py b/var/spack/repos/builtin/packages/fenics-basix/package.py
index fc323ee188..78ca708655 100644
--- a/var/spack/repos/builtin/packages/fenics-basix/package.py
+++ b/var/spack/repos/builtin/packages/fenics-basix/package.py
@@ -15,6 +15,7 @@ class FenicsBasix(CMakePackage):
maintainers = ["mscroggs", "chrisrichardson", "garth-wells"]
version("main", branch="main")
+ version("0.4.2", sha256="a54f5e442b7cbf3dbb6319c682f9161272557bd7f42e2b8b8ccef88bc1b7a22f")
version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07")
version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb")
version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7")
@@ -27,6 +28,6 @@ class FenicsBasix(CMakePackage):
@property
def root_cmakelists_dir(self):
- if self.spec.satisfies("@main"):
+ if self.spec.satisfies("@0.4.0:"):
return "cpp"
return self.stage.source_path
diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
index 5e3deb6780..6987e0a689 100644
--- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
+++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py
@@ -15,13 +15,34 @@ class FenicsDolfinx(CMakePackage):
maintainers = ["chrisrichardson", "garth-wells", "nate-sime"]
version("main", branch="main")
+ version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f")
version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed")
version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4")
version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33")
- variant("kahip", default=False, description="kahip support")
- variant("parmetis", default=False, description="parmetis support")
- variant("slepc", default=False, description="slepc support")
+ # Graph partitioner variants
+ variant('partitioners',
+ description='Graph partioning',
+ default=('parmetis',),
+ values=('kahip', 'parmetis', 'scotch'),
+ multi=True,
+ when='@0.4.0:')
+ variant("kahip", default=False, when="@0.1.0:0.3.0", description="kahip support")
+ variant("parmetis", default=False, when="@0.1.0:0.3.0",
+ description="parmetis support")
+
+ # Graph partitioner dependencies for @0.4.0:
+ depends_on('kahip@3.12:', when="partitioners=kahip @main")
+ depends_on('kahip@3.11', when="partitioners=kahip @:0.4.1")
+ depends_on('parmetis', when="partitioners=parmetis")
+ depends_on('scotch+mpi', when="partitioners=scotch")
+
+ # Graph partitioner dependencies for "@0.1.0:0.3.0"
+ depends_on('kahip', when="+kahip")
+ depends_on('parmetis', when="+parmetis")
+ depends_on('scotch+mpi', when="@0.1.0:0.3.0")
+
+ variant("slepc", default=True, description="slepc support")
variant("adios2", default=False, description="adios2 support")
depends_on("cmake@3.18:", type="build")
@@ -32,25 +53,25 @@ class FenicsDolfinx(CMakePackage):
depends_on("petsc+mpi+shared")
depends_on("petsc+mpi+shared@3.15.0:", when="@0.1.0")
- depends_on("scotch+mpi")
- depends_on("xtensor@0.23.10:", type=("build", "link"))
- depends_on("kahip", when="+kahip")
- depends_on("parmetis", when="+parmetis")
+ depends_on("xtl@0.7.2:")
+ depends_on("xtensor@0.23.10:")
+
depends_on("slepc", when="+slepc")
- depends_on("adios2", when="+adios2")
+ depends_on("adios2+mpi", when="+adios2")
- depends_on("py-fenics-ffcx", type=("build", "run"))
- depends_on("py-fenics-ffcx@main", type=("build", "run"), when="@main")
+ depends_on("fenics-ufcx@main", when="@main")
+ depends_on("fenics-ufcx@0.4.2", when="@0.4.1")
depends_on("py-fenics-ffcx@0.3.0", type=("build", "run"), when="@0.3.0")
depends_on("py-fenics-ffcx@0.2.0", type=("build", "run"), when="@0.2.0")
depends_on("py-fenics-ffcx@0.1.0", type=("build", "run"), when="@0.1.0")
- depends_on("fenics-basix", type=("build", "link"))
- depends_on("fenics-basix@main", type=("build", "link"), when="@main")
- depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0")
- depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0")
- depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0")
+ depends_on("fenics-basix")
+ depends_on("fenics-basix@main", when="@main")
+ depends_on("fenics-basix@0.4.2", when="@0.4.1")
+ depends_on("fenics-basix@0.3.0", when="@0.3.0")
+ depends_on("fenics-basix@0.2.0", when="@0.2.0")
+ depends_on("fenics-basix@0.1.0", when="@0.1.0")
conflicts('%gcc@:8', msg='Improved C++17 support required')
@@ -58,16 +79,23 @@ class FenicsDolfinx(CMakePackage):
def cmake_args(self):
args = [
- "-DDOLFINX_SKIP_BUILD_TESTS=True",
- "-DDOLFINX_ENABLE_KAHIP=%s" % (
- 'ON' if "+kahip" in self.spec else 'OFF'),
- "-DDOLFINX_ENABLE_PARMETIS=%s" % (
- 'ON' if "+parmetis" in self.spec else 'OFF'),
- "-DDOLFINX_ENABLE_SLEPC=%s" % (
- 'ON' if "+slepc" in self.spec else 'OFF'),
- "-DDOLFINX_ENABLE_ADIOS2=%s" % (
- 'ON' if "+adios2" in self.spec else 'OFF'),
- "-DPython3_ROOT_DIR=%s" % self.spec['python'].home,
- "-DPython3_FIND_STRATEGY=LOCATION",
+ self.define('DOLFINX_SKIP_BUILD_TESTS', True),
+ self.define_from_variant('DOLFINX_ENABLE_SLEPC', 'slepc'),
+ self.define_from_variant('DOLFINX_ENABLE_ADIOS2', 'adios2'),
]
+
+ if self.spec.satisfies('@0.4.0:'):
+ args += [
+ self.define('DOLFINX_ENABLE_KAHIP', 'partitioners=kahip' in self.spec),
+ self.define('DOLFINX_ENABLE_PARMETIS',
+ 'partitioners=parmetis' in self.spec),
+ self.define('DOLFINX_ENABLE_SCOTCH', 'partitioners=scotch' in self.spec)
+ ]
+
+ if self.spec.satisfies('@:0.3.0'):
+ args.append(self.define_from_variant('DOLFINX_ENABLE_KAHIP', 'kahip'))
+ args.append(self.define_from_variant('DOLFINX_ENABLE_PARMETIS', 'parmetis'))
+ args.append(self.define('Python3_ROOT_DIR', self.spec['python'].home))
+ args.append(self.define('Python3_FIND_STRATEGY', 'LOCATION'))
+
return args
diff --git a/var/spack/repos/builtin/packages/ufcx/package.py b/var/spack/repos/builtin/packages/fenics-ufcx/package.py
index fa1b0e487f..c426ec5c39 100644
--- a/var/spack/repos/builtin/packages/ufcx/package.py
+++ b/var/spack/repos/builtin/packages/fenics-ufcx/package.py
@@ -6,7 +6,7 @@
from spack import *
-class Ufcx(CMakePackage):
+class FenicsUfcx(CMakePackage):
"""FFCx provides the ufcx.h interface header for finite element kernels,
used by DOLFINx. ufcx.h can be installed from the FFCx repo without
making it dependent on Python.
@@ -14,9 +14,10 @@ class Ufcx(CMakePackage):
homepage = 'https://github.com/FEniCS/ffcx'
git = 'https://github.com/FEniCS/ffcx.git'
- url = 'https://github.com/FEniCS/ffcx/archive/refs/heads/main.zip'
+ url = 'https://github.com/FEniCS/ffcx/archive/v0.4.2.tar.gz'
maintainers = ['ma595']
version('main', branch='main')
+ version('0.4.2', sha256='3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4')
root_cmakelists_dir = 'cmake'
diff --git a/var/spack/repos/builtin/packages/py-fenics-basix/package.py b/var/spack/repos/builtin/packages/py-fenics-basix/package.py
index 8d1f178e3f..c58d8ae357 100644
--- a/var/spack/repos/builtin/packages/py-fenics-basix/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-basix/package.py
@@ -16,11 +16,13 @@ class PyFenicsBasix(PythonPackage):
maintainers = ["chrisrichardson", "mscroggs", "garth-wells"]
version("main", branch="main")
+ version("0.4.2", sha256="a54f5e442b7cbf3dbb6319c682f9161272557bd7f42e2b8b8ccef88bc1b7a22f")
version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07")
version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb")
version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7")
depends_on("fenics-basix@main", type=("build", "run"), when="@main")
+ depends_on("fenics-basix@0.4.2", type=("build", "run"), when="@0.4.2")
depends_on("fenics-basix@0.3.0", type=("build", "run"), when="@0.3.0")
depends_on("fenics-basix@0.2.0", type=("build", "run"), when="@0.2.0")
depends_on("fenics-basix@0.1.0", type=("build", "run"), when="@0.1.0")
diff --git a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
index 62ab266244..b0b26a5b24 100644
--- a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py
@@ -16,6 +16,7 @@ class PyFenicsDolfinx(PythonPackage):
maintainers = ["chrisrichardson", "garth-wells", "nate-sime"]
version("main", branch="main")
+ version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f")
version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed")
version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4")
version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33")
@@ -25,27 +26,33 @@ class PyFenicsDolfinx(PythonPackage):
depends_on("pkgconfig", type=("build", "run"))
depends_on('python@3.7:', type=('build', 'run'))
depends_on("py-setuptools", type="build")
+
depends_on("fenics-dolfinx@main", when="@main")
+ depends_on("fenics-dolfinx@0.4.1", when="@0.4.1")
depends_on("fenics-dolfinx@0.3.0", when="@0.3.0")
depends_on("fenics-dolfinx@0.2.0", when="@0.2.0")
depends_on("fenics-dolfinx@0.1.0", when="@0.1.0")
depends_on("fenics-basix@main", type=("build", "link"), when="@main")
+ depends_on("fenics-basix@0.4.2", type=("build", "link"), when="@0.4.1")
depends_on("fenics-basix@0.3.0", type=("build", "link"), when="@0.3.0")
depends_on("fenics-basix@0.2.0", type=("build", "link"), when="@0.2.0")
depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0")
- depends_on("py-numpy@:1.20.3", type=("build", "run"))
- depends_on("py-mpi4py", type=("build", "run"))
- depends_on("py-petsc4py", type=("build", "run"))
- depends_on("py-pybind11@2.6.2:2.7", type=("build", "run"))
- depends_on("xtensor@0.23.10:", type="build")
depends_on("py-fenics-ffcx@main", type="run", when="@main")
+ depends_on("py-fenics-ffcx@0.4.2", type="run", when="@0.4.1")
depends_on("py-fenics-ffcx@0.3.0", type="run", when="@0.3.0")
depends_on("py-fenics-ffcx@0.2.0", type="run", when="@0.2.0")
depends_on("py-fenics-ffcx@0.1.0", type="run", when="@0.1.0")
depends_on("py-fenics-ufl@main", type="run", when="@main")
+ depends_on("py-fenics-ufl@2022.1.0", type="run", when="@0.4.1")
depends_on("py-fenics-ufl@2021.1.0", type="run", when="@0.1:0.3.99")
+ depends_on("py-numpy@:1.20.3", type=("build", "run"))
+ depends_on("py-mpi4py", type=("build", "run"))
+ depends_on("py-petsc4py", type=("build", "run"))
+ depends_on("py-pybind11@2.6.2:", type=("build", "run"))
+ depends_on("xtensor@0.23.10:", type="build")
+
depends_on("py-cffi", type="run")
depends_on("py-numpy", type="run")
diff --git a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py
index 03d0c4311e..8f4cf3150c 100644
--- a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py
@@ -15,6 +15,7 @@ class PyFenicsFfcx(PythonPackage):
maintainers = ["chrisrichardson", "garth-wells"]
version('main', branch='main')
+ version('0.4.2', sha256='3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4')
version('0.3.0', sha256='33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096')
version('0.2.0', sha256='562a704163a6427e0341d267e69b8bf55d8f53d673829170b443191577e8d9b6')
version('0.1.0', sha256='98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89')
@@ -27,9 +28,11 @@ class PyFenicsFfcx(PythonPackage):
depends_on('py-cffi', type='run')
depends_on('py-fenics-ufl@main', type='run', when='@main')
+ depends_on('py-fenics-ufl@2022.1.0', type='run', when='@0.4.2')
depends_on('py-fenics-ufl@2021.1.0', type='run', when='@0.1.0:0.3')
depends_on('py-fenics-basix@main', type='run', when='@main')
+ depends_on('py-fenics-basix@0.4.2', type='run', when='@0.4.2')
depends_on('py-fenics-basix@0.3.0', type='run', when='@0.3.0')
depends_on('py-fenics-basix@0.2.0', type='run', when='@0.2.0')
depends_on('py-fenics-basix@0.1.0', type='run', when='@0.1.0')
diff --git a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py
index 190d41bc47..fa86887ee9 100644
--- a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py
+++ b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py
@@ -16,9 +16,10 @@ class PyFenicsUfl(PythonPackage):
homepage = "https://fenicsproject.org/"
url = "https://github.com/FEniCS/ufl/archive/2019.1.0.tar.gz"
git = "https://github.com/FEniCS/ufl.git"
- maintainers = ["js947", "chrisrichardson", "garth-wells"]
+ maintainers = ["chrisrichardson", "garth-wells"]
version("main", branch="main")
+ version('2022.1.0', sha256='48359903d47fb397900d105fe4a60b459c50bbf9d9da78beb9accb54e4e4acaf')
version('2021.1.0', sha256='130fdc09bb7fcd39dcd2618426912b8a25a03431d94575711068b38c666b4337')
version('2019.1.0', sha256='46ac0df4e96327be10b9576d2b8fa8b2c4ca62d3c681d407f5718b162d3ca22d')
version('2018.1.0', sha256='b0d4c2f43f396fd5609317b70d55b53b89c649962fc8a593f4e0e21607da211d')