FEniCSx: Updates for 0.5.1 (#32665)

* Updates for DOLFINx 0.5.1 and associated packages
* xtensor needed on anything less than main
* Switch back to Python 3.7 minimum.
* Might be good to point out in our README how to fix Python version?
* Fix basix, xtensor dep
* Add numba feature
* Fix checksum
* Make slepc optional

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
This commit is contained in:
Jack S. Hale 2022-10-03 21:49:04 +02:00 committed by GitHub
parent a51a81655a
commit 241b4624bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 136 additions and 62 deletions

View File

@ -7,19 +7,39 @@
class FenicsBasix(CMakePackage):
"""FEniCS element and quadrature runtime"""
"""Basix is a finite element definition and tabulation runtime library"""
homepage = "https://github.com/FEniCS/basix"
url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz"
git = "https://github.com/FEniCS/basix.git"
maintainers = ["mscroggs", "chrisrichardson", "garth-wells"]
maintainers = ["mscroggs", "chrisrichardson", "garth-wells", "jhale"]
version("main", branch="main")
version("0.5.1", sha256="69133476ac35f0bd0deccb480676030378c341d7dfb2adaca22cd16b7e1dc1cb")
version("0.4.2", sha256="a54f5e442b7cbf3dbb6319c682f9161272557bd7f42e2b8b8ccef88bc1b7a22f")
version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07")
version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb")
version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7")
version(
"0.3.0",
sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07",
deprecated=True,
)
version(
"0.2.0",
sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb",
deprecated=True,
)
version(
"0.1.0",
sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7",
deprecated=True,
)
depends_on("cmake@3.19:", type="build")
depends_on("blas")
depends_on("lapack")
depends_on("xtensor@0.23.10:", when="@:0.4")
depends_on("xtl@0.7.2:", when="@:0.4")
depends_on("xtensor-blas@0.19.1:", when="@:0.3")
conflicts(
"%gcc@:9.10", when="@0.5.0:", msg="fenics-basix requires GCC-10 or newer for C++20 support"
@ -30,14 +50,6 @@ class FenicsBasix(CMakePackage):
msg="fenics-basix requires Clang-10 or newer for C++20 support",
)
depends_on("cmake@3.18:", type="build")
depends_on("blas")
depends_on("lapack")
depends_on("xtl@0.7.2:", when="@:0.4.2")
depends_on("xtensor@0.23.10:", when="@:0.4.2")
depends_on("xtensor-blas@0.19.1:", when="@:0.3.0")
@property
def root_cmakelists_dir(self):
if self.spec.satisfies("@0.4.0:"):

View File

@ -12,14 +12,27 @@ class FenicsDolfinx(CMakePackage):
homepage = "https://github.com/FEniCS/dolfinx"
git = "https://github.com/FEniCS/dolfinx.git"
url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz"
maintainers = ["chrisrichardson", "garth-wells", "nate-sime"]
maintainers = ["chrisrichardson", "garth-wells", "nate-sime", "jhale"]
version("main", branch="main")
version("0.5.1", sha256="a570e3f6ed8e7c570e7e61d0e6fd44fa9dad2c5f8f1f48a6dc9ad22bacfbc973")
version("0.5.0", sha256="503c70c01a44d1ffe48e052ca987693a49f8d201877652cabbe2a44eb3b7c040")
version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f")
version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed")
version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4")
version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33")
version(
"0.3.0",
sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed",
deprecated=True,
)
version(
"0.2.0",
sha256="e6462fc3b9653d335c28096f9b0393f966c55a64c77ed64cc6c949406cb1f2c3",
deprecated=True,
)
version(
"0.1.0",
sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33",
deprecated=True,
)
conflicts(
"%gcc@:9.10",
@ -45,7 +58,7 @@ class FenicsDolfinx(CMakePackage):
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.12:", when="partitioners=kahip @0.5.0:")
depends_on("kahip@3.11", when="partitioners=kahip @:0.4.1")
depends_on("parmetis", when="partitioners=parmetis")
depends_on("scotch+mpi", when="partitioners=scotch")
@ -55,10 +68,10 @@ class FenicsDolfinx(CMakePackage):
depends_on("parmetis", when="+parmetis")
depends_on("scotch+mpi", when="@0.1.0:0.3.0")
variant("slepc", default=True, description="slepc support")
variant("slepc", default=False, description="slepc support")
variant("adios2", default=False, description="adios2 support")
depends_on("cmake@3.18:", type="build")
depends_on("cmake@3.19:", type="build")
depends_on("pkgconfig", type="build")
depends_on("mpi")
depends_on("hdf5+mpi")
@ -67,17 +80,18 @@ class FenicsDolfinx(CMakePackage):
depends_on("petsc+mpi+shared")
depends_on("petsc+mpi+shared@3.15.0:", when="@0.1.0")
depends_on("xtl@0.7.2:")
depends_on("xtensor@0.23.10:")
depends_on("xtensor@0.23.10:", when="@:0.5")
depends_on("xtl@0.7.2:", when="@:0.5")
depends_on("slepc", when="+slepc")
depends_on("adios2+mpi", when="+adios2")
depends_on("pugixml", when="@0.5.0:")
depends_on("fenics-ufcx@main", when="@main")
depends_on("fenics-ufcx@0.5.0", when="@0.5.0")
depends_on("fenics-ufcx@0.5.0", when="@0.5.1:0.5")
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.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")
@ -88,7 +102,17 @@ class FenicsDolfinx(CMakePackage):
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")
conflicts(
"%gcc@:9.10",
when="@0.5.0:",
msg="fenics-dolfinx requires GCC-10 or newer for C++20 support",
)
conflicts(
"%clang@:9.10",
when="@0.5.0:",
msg="fenics-dolfinx requires Clang-10 or newer for C++20 support",
)
conflicts("%gcc@:8", msg="fenics-dolfinx requires GCC-9 or newer for improved C++17 support")
root_cmakelists_dir = "cpp"

View File

@ -7,18 +7,22 @@
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.
"""
"""FFCx provides the ufcx.h interface header for generated finite element
kernels, used by DOLFINx. ufcx.h can be installed from the FFCx repo
without a Python build or runtime dependancy."""
homepage = "https://github.com/FEniCS/ffcx"
git = "https://github.com/FEniCS/ffcx.git"
url = "https://github.com/FEniCS/ffcx/archive/v0.4.2.tar.gz"
maintainers = ["ma595"]
maintainers = ["ma595", "jhale"]
version("main", branch="main")
version(
"0.5.0.post0", sha256="039908c9998b51ba53e5deb3a97016062c262f0a4285218644304f7d3cd35882"
)
version("0.5.0", sha256="3413409e5885e41e220f99e0f95cc817e94c4931143d1f700c6e0c5e1bfad1f6")
version("0.4.2", sha256="3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4")
depends_on("cmake@3.19:", type="build")
root_cmakelists_dir = "cmake"

View File

@ -7,20 +7,31 @@
class PyFenicsBasix(PythonPackage):
"""Python basis evaluation library for Next generation FEniCS problem solving
environment"""
"""Python interface to Basix, a finite element definition and tabulation runtime library"""
homepage = "https://github.com/FEniCS/basix"
url = "https://github.com/FEniCS/basix/archive/v0.1.0.tar.gz"
git = "https://github.com/FEniCS/basix.git"
maintainers = ["chrisrichardson", "mscroggs", "garth-wells"]
maintainers = ["chrisrichardson", "mscroggs", "garth-wells", "jhale"]
version("main", branch="main")
version("0.5.1", sha256="69133476ac35f0bd0deccb480676030378c341d7dfb2adaca22cd16b7e1dc1cb")
version("0.4.2", sha256="a54f5e442b7cbf3dbb6319c682f9161272557bd7f42e2b8b8ccef88bc1b7a22f")
version("0.3.0", sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07")
version("0.2.0", sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb")
version("0.1.0", sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7")
version(
"0.3.0",
sha256="9b148fd2a5485c94011fc6ca977ebdef0e51782a62b3654fc044f35b60e2bd07",
deprecated=True,
)
version(
"0.2.0",
sha256="e1ec537737adb283717060221635092474e3f2b5b5ba79dfac74aa496bec2fcb",
deprecated=True,
)
version(
"0.1.0",
sha256="2ab41fe6ad4f6c42f01b17a6e7c39debb4e0ae61c334d1caebee78b741bca4e7",
deprecated=True,
)
depends_on("fenics-basix@main", type=("build", "run"), when="@main")
depends_on("fenics-basix@0.5.1", type=("build", "run"), when="@0.5.1")
@ -29,12 +40,11 @@ class PyFenicsBasix(PythonPackage):
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")
depends_on("cmake@3.19:", type="build")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("cmake@3.18:", type="build")
depends_on("py-numpy", type=("build", "run"))
depends_on("py-pybind11@2.6.2:", type="build")
depends_on("xtl@0.7.2:", type="build", when="@:0.4.2")
depends_on("xtensor@0.23.10:", type="build", when="@:0.4.2")
depends_on("xtensor@0.23.10:", type="build", when="@:0.4")
build_directory = "python"

View File

@ -7,28 +7,41 @@
class PyFenicsDolfinx(PythonPackage):
"""Python interface library to Next generation FEniCS problem solving
"""Python interface to the next generation FEniCS problem solving
environment"""
homepage = "https://github.com/FEniCS/dolfinx"
url = "https://github.com/FEniCS/dolfinx/archive/v0.1.0.tar.gz"
git = "https://github.com/FEniCS/dolfinx.git"
maintainers = ["chrisrichardson", "garth-wells", "nate-sime"]
maintainers = ["chrisrichardson", "garth-wells", "nate-sime", "jhale"]
version("main", branch="main")
version("0.5.1", sha256="a570e3f6ed8e7c570e7e61d0e6fd44fa9dad2c5f8f1f48a6dc9ad22bacfbc973")
version("0.5.0", sha256="503c70c01a44d1ffe48e052ca987693a49f8d201877652cabbe2a44eb3b7c040")
version("0.4.1", sha256="68dcf29a26c750fcea5e02d8d58411e3b054313c3bf6fcbc1d0f08dd2851117f")
version("0.3.0", sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed")
version("0.2.0", sha256="4c9b5a5c7ef33882c99299c9b4d98469fb7aa470a37a91bc5be3bb2fc5b863a4")
version("0.1.0", sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33")
version(
"0.3.0",
sha256="4857d0fcb44a4e9bf9eb298ba5377abdee17a7ad0327448bdd06cce73d109bed",
deprecated=True,
)
version(
"0.2.0",
sha256="e6462fc3b9653d335c28096f9b0393f966c55a64c77ed64cc6c949406cb1f2c3",
deprecated=True,
)
version(
"0.1.0",
sha256="0269379769b5b6d4d1864ded64402ecaea08054c2a5793c8685ea15a59af5e33",
deprecated=True,
)
depends_on("cmake@3.18:", type="build")
depends_on("cmake@3.19:", type="build")
depends_on("hdf5", type="build")
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.5.1", when="@0.5.1")
depends_on("fenics-dolfinx@0.5.0", when="@0.5.0")
depends_on("fenics-dolfinx@0.4.1", when="@0.4.1")
depends_on("fenics-dolfinx@0.3.0", when="@0.3.0")
@ -43,23 +56,24 @@ class PyFenicsDolfinx(PythonPackage):
depends_on("fenics-basix@0.1.0", type=("build", "link"), when="@0.1.0")
depends_on("py-fenics-ffcx@main", type="run", when="@main")
depends_on("py-fenics-ffcx@0.5.0", type="run", when="@0.5.0")
depends_on("py-fenics-ffcx@0.5.0.post0", type="run", when="@0.5.0:0.5")
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.2.0", type="run", when="@0.5.0")
depends_on("py-fenics-ufl@2022.2.0", type="run", when="@0.5.0:0.5")
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.21:", type=("build", "run"), when="@main")
depends_on("py-numpy@1.21:", type=("build", "run"), when="@0.5.0:")
depends_on("py-numpy", 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("xtensor@0.23.10:", type="build", when="@:0.5")
depends_on("py-cffi", type="run")

View File

@ -12,24 +12,37 @@ class PyFenicsFfcx(PythonPackage):
homepage = "https://github.com/FEniCS/ffcx"
url = "https://github.com/FEniCS/ffcx/archive/v0.1.0.tar.gz"
git = "https://github.com/FEniCS/ffcx.git"
maintainers = ["chrisrichardson", "garth-wells"]
maintainers = ["chrisrichardson", "garth-wells", "jhale"]
version("main", branch="main")
version("0.5.0", sha256="3413409e5885e41e220f99e0f95cc817e94c4931143d1f700c6e0c5e1bfad1f6")
version(
"0.5.0.post0", sha256="039908c9998b51ba53e5deb3a97016062c262f0a4285218644304f7d3cd35882"
)
version("0.4.2", sha256="3be6eef064d6ef907245db5b6cc15d4e603762e68b76e53e099935ca91ef1ee4")
version("0.3.0", sha256="33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096")
version("0.2.0", sha256="562a704163a6427e0341d267e69b8bf55d8f53d673829170b443191577e8d9b6")
version("0.1.0", sha256="98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89")
version(
"0.3.0",
sha256="33fa1a0cc5762f360033c25a99ec9462be933f8ba413279e35cd2c3b5c3e6096",
deprecated=True,
)
version(
"0.2.0",
sha256="f1dcd0973980706aba145274aeddeb771d2d730efcdb9b4be10adbe964f40d90",
deprecated=True,
)
version(
"0.1.0",
sha256="98a47906146ac892fb4a358e04cbfd04066f12d0a4cdb505a6b08ff0b1a17e89",
deprecated=True,
)
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools@58:", type="build", when="@0.4:")
depends_on("py-setuptools", type="build")
depends_on("py-wheel", type="build", when="@0.4:")
depends_on("py-cffi", type="run")
depends_on("py-numpy", type="run")
depends_on("py-fenics-ufl@main", type="run", when="@main")
depends_on("py-fenics-ufl@2022.2.0", type="run", when="@0.5.0")
depends_on("py-fenics-ufl@2022.2.0", type="run", when="@0.5.0:0.5")
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")
@ -39,5 +52,3 @@ class PyFenicsFfcx(PythonPackage):
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")
depends_on("py-numpy", type="run")

View File

@ -16,7 +16,7 @@ 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 = ["chrisrichardson", "garth-wells"]
maintainers = ["chrisrichardson", "garth-wells", "jhale"]
version("main", branch="main")
version("2022.2.0", sha256="d6e18e06df5d7a626c3138d49a543914d68186afb6159c4d1a7cd72b2a199b02")
@ -34,5 +34,4 @@ class PyFenicsUfl(PythonPackage):
version("2016.2.0", tag="ufl-2016.2.0")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-numpy", type=("build", "run"))