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>
This commit is contained in:
parent
a225a5b276
commit
3f4398dd67
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'
|
@ -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")
|
||||
|
@ -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")
|
||||
|
||||
|
@ -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')
|
||||
|
@ -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')
|
||||
|
Loading…
Reference in New Issue
Block a user