summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Heltai <luca.heltai@unipi.it>2024-11-13 15:34:27 +0100
committerGitHub <noreply@github.com>2024-11-13 15:34:27 +0100
commitbadb3cedcd83a4f3f38bb3ec5612f1e1f8a222cf (patch)
tree4b032df92af53b83b950b5a66af4f2b369eb8f5e
parentbe918817d61baaf9f2d946b741e78581ec0c1689 (diff)
downloadspack-badb3cedcd83a4f3f38bb3ec5612f1e1f8a222cf.tar.gz
spack-badb3cedcd83a4f3f38bb3ec5612f1e1f8a222cf.tar.bz2
spack-badb3cedcd83a4f3f38bb3ec5612f1e1f8a222cf.tar.xz
spack-badb3cedcd83a4f3f38bb3ec5612f1e1f8a222cf.zip
dealii: add v9.6.0 (#45554)
Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com> Co-authored-by: Satish Balay <balay@mcs.anl.gov>
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml4
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml2
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml2
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py44
4 files changed, 39 insertions, 13 deletions
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
index 24a488fbe9..886699b54a 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-neoverse_v1/spack.yaml
@@ -211,7 +211,6 @@ spack:
- chai +cuda cuda_arch=75 ^umpire ~shared
- chapel +cuda cuda_arch=75
- cusz +cuda cuda_arch=75
- - dealii +cuda cuda_arch=75
- ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=75 # # +paraview: job killed oom?
- fftx +cuda cuda_arch=75
- flecsi +cuda cuda_arch=75
@@ -245,6 +244,7 @@ spack:
- zfp +cuda cuda_arch=75
# --
# - cp2k +mpi +cuda cuda_arch=75 # cp2k: cp2k only supports cuda_arch ('35', '37', '60', '70', '80')
+ # - dealii +cuda cuda_arch=75 ~vtk # include/deal.II/base/vectorization.h(1498): error: identifier "vaddvq_f32" is undefined; +vtk: https://github.com/spack/spack/pull/45554#issuecomment-2457255720
# - lammps +cuda cuda_arch=75 # lammps: needs NVIDIA driver
# - lbann +cuda cuda_arch=75 # aluminum: include/aluminum/base.hpp:53: multiple definition of `cub::CUB_200400___CUDA_ARCH_LIST___NS::Debug(cudaError,char const*, int)'; lbann: https://github.com/spack/spack/issues/38788
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=75 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
@@ -260,7 +260,6 @@ spack:
- chai +cuda cuda_arch=80 ^umpire ~shared
- chapel +cuda cuda_arch=80
- cusz +cuda cuda_arch=80
- - dealii +cuda cuda_arch=80
- ecp-data-vis-sdk +adios2 +hdf5 +vtkm +zfp ~paraview +cuda cuda_arch=80 # +paraview: job killed oom?
- fftx +cuda cuda_arch=80
- flecsi +cuda cuda_arch=80
@@ -294,6 +293,7 @@ spack:
- zfp +cuda cuda_arch=80
# --
# - cp2k +mpi +cuda cuda_arch=80 # cp2k: Error: KeyError: 'Point environment variable LIBSMM_PATH to the absolute path of the libsmm.a file'
+ # - dealii +cuda cuda_arch=80 ~vtk # include/deal.II/base/vectorization.h(1498): error: identifier "vaddvq_f32" is undefined; +vtk: https://github.com/spack/spack/pull/45554#issuecomment-2457255720
# - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
# - lbann +cuda cuda_arch=80 # aluminum: include/aluminum/base.hpp:53: multiple definition of `cub::CUB_200400___CUDA_ARCH_LIST___NS::Debug(cudaError,char const*, int)'; lbann: https://github.com/spack/spack/issues/38788
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf ~cusz +mgard +cuda cuda_arch=80 # libpressio: CMake Error at CMakeLists.txt:498 (find_library): Could not find CUFile_LIBRARY using the following names: cufile ; +cusz: https://github.com/spack/spack/issues/38787
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
index ea22c43fba..0095fd3ec1 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi/spack.yaml
@@ -84,7 +84,7 @@ spack:
- charliecloud
- conduit
- datatransferkit
- - dealii
+ - dealii ~vtk ~taskflow cflags=-O0 cxxflags=-O0 # +vtk +taskflow: ^taskflow: CMake Error at CMakeLists.txt:81 (message): Taskflow currently supports the following compilers: g++ v7.0 or above, clang++ v6.0 or above; use -O0 to work around compiler failure
- drishti
- dxt-explorer
- ecp-data-vis-sdk ~cuda ~rocm +adios2 ~ascent +cinema +darshan +faodel +hdf5 +paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +ascent: fides: fides/xgc/XGCCommon.cxx:233:10: error: no member named 'iota' in namespace 'std'; +visit: visit_vtk/lightweight/vtkSkewLookupTable.C:32:10: error: cannot initialize return object of type 'unsigned char *' with an rvalue of type 'const unsigned char *'
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
index 0b81e53d56..29d5f63a16 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
@@ -62,7 +62,7 @@ spack:
- conduit
- cp2k +mpi
- datatransferkit
- - dealii
+ - dealii ~vtk # https://github.com/spack/spack/pull/45554#issuecomment-2457255720
- drishti
- dxt-explorer
- dyninst
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 50ff2dbb51..e9ed50ac7a 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -28,6 +28,8 @@ class Dealii(CMakePackage, CudaPackage):
generator("make")
version("master", branch="master")
+ version("9.6.0", sha256="675323f0eb8eed2cfc93e2ced07a0ec5727c6a566ff9e7786c01a2ddcde17bed")
+ version("9.5.2", sha256="7930e5218a9807d60cc05c300a3b70f36f4af22c3551a2cd1141fbab013bbaf1")
version("9.5.1", sha256="a818b535e6488d3aef7853311657c7b4fadc29a9abe91b7b202b131aad630f5e")
version("9.5.0", sha256="a81f41565f0d3a22d491ee687957dd48053225da72e8d6d628d210358f4a0464")
version("9.4.2", sha256="45a76cb400bfcff25cc2d9093d9a5c91545c8367985e6798811c5e9d2a6a6fd4")
@@ -78,7 +80,10 @@ class Dealii(CMakePackage, CudaPackage):
values=("default", "11", "14", "17"),
)
variant("doc", default=False, description="Compile with documentation")
- variant("examples", default=True, description="Compile and install tutorial programs")
+ variant("examples", default=True, description="Install source files of tutorial programs")
+ variant(
+ "examples_compile", default=True, description="Install binary files of tutorial programs"
+ )
variant("int64", default=False, description="Compile with 64 bit indices support")
variant("mpi", default=True, description="Compile with MPI")
variant("optflags", default=False, description="Compile using additional optimization flags")
@@ -91,6 +96,9 @@ class Dealii(CMakePackage, CudaPackage):
variant("arpack", default=True, description="Compile with Arpack and PArpack (only with MPI)")
variant("adol-c", default=True, description="Compile with ADOL-C")
variant("cgal", default=True, when="@9.4:~cuda", description="Compile with CGAL")
+ variant(
+ "complex", default=False, when="@9.1.0:", description="Compile with complex value support"
+ )
variant("ginkgo", default=True, description="Compile with Ginkgo")
variant("gmsh", default=True, description="Compile with GMSH")
variant("gsl", default=True, description="Compile with GSL")
@@ -100,7 +108,8 @@ class Dealii(CMakePackage, CudaPackage):
variant("muparser", default=True, description="Compile with muParser")
variant("nanoflann", default=False, description="Compile with Nanoflann")
variant("netcdf", default=False, description="Compile with Netcdf (only with MPI)")
- variant("oce", default=True, description="Compile with OCE")
+ variant("oce", default=False, description="Compile with OCE")
+ variant("opencascade", default=True, description="Compile with OPENCASCADE")
variant("p4est", default=True, description="Compile with P4est (only with MPI)")
variant("petsc", default=True, description="Compile with Petsc (only with MPI)")
variant("scalapack", default=True, description="Compile with ScaLAPACK (only with MPI)")
@@ -132,7 +141,7 @@ class Dealii(CMakePackage, CudaPackage):
# dealii does not build with Boost 1.80.0
# (https://github.com/spack/spack/pull/32879#issuecomment-1265933265)
depends_on(
- "boost@1.59.0:1.63,1.65.1,1.67.0:1.79+thread+system+serialization+iostreams",
+ "boost@1.59.0:1.63,1.65.1,1.67.0:1.79,1.83:+thread+system+serialization+iostreams",
patches=[
patch("boost_1.65.1_singleton.patch", level=1, when="@1.65.1"),
patch("boost_1.68.0.patch", level=1, when="@1.68.0"),
@@ -187,13 +196,18 @@ class Dealii(CMakePackage, CudaPackage):
depends_on("graphviz", when="+doc")
depends_on("ginkgo", when="@9.1:+ginkgo")
depends_on("ginkgo@1.4.0:", when="@9.4:+ginkgo")
- depends_on("gmsh+tetgen+netgen+oce", when="@9.0:+gmsh", type=("build", "run"))
+ depends_on("gmsh+oce", when="@9.0:+gmsh+oce", type=("build", "run"))
+ depends_on("gmsh+opencascade", when="@9.0:+gmsh+opencascade", type=("build", "run"))
+ depends_on("gmsh", when="@9.0:+gmsh~opencascade~oce", type=("build", "run"))
depends_on("gsl", when="@8.5.0:+gsl")
# TODO: next line fixes concretization with petsc
depends_on("hdf5+mpi+hl+fortran", when="+hdf5+mpi+petsc")
depends_on("hdf5+mpi+hl", when="+hdf5+mpi~petsc")
depends_on("kokkos@3.7:", when="@9.5:+kokkos~trilinos")
- depends_on("kokkos@3.7:+cuda+cuda_lambda+wrapper", when="@9.5:+kokkos~trilinos+cuda")
+ depends_on("kokkos@3.7:+cuda+cuda_lambda+wrapper", when="@9.5:9.5.99+kokkos~trilinos+cuda")
+ depends_on(
+ "kokkos@3.7:+cuda+cuda_lambda+cuda_constexpr+wrapper", when="@9.6:+kokkos~trilinos+cuda"
+ )
# TODO: concretizer bug. The two lines mimic what comes from PETSc
# but we should not need it
depends_on("metis@5:+int64", when="+metis+int64")
@@ -204,6 +218,7 @@ class Dealii(CMakePackage, CudaPackage):
depends_on("netcdf-c+mpi", when="+netcdf+mpi")
depends_on("netcdf-cxx", when="+netcdf+mpi")
depends_on("oce", when="+oce")
+ depends_on("opencascade", when="+opencascade")
depends_on("p4est", when="+p4est+mpi")
depends_on("petsc+mpi~int64", when="+petsc+mpi~int64")
depends_on("petsc+mpi+int64", when="+petsc+mpi+int64")
@@ -215,6 +230,7 @@ class Dealii(CMakePackage, CudaPackage):
depends_on("sundials@5:6.7", when="@9.3.4:+sundials")
depends_on("taskflow@3.4:", when="@9.6:+taskflow")
depends_on("trilinos gotype=int", when="+trilinos@12.18.1:")
+ depends_on("trilinos+cuda+cuda_constexpr", when="@9.6:+trilinos+cuda")
# TODO: next line fixes concretization with trilinos and adol-c
depends_on("trilinos~exodus", when="@9.0:+adol-c+trilinos")
# Both Trilinos and SymEngine bundle the Teuchos RCP library.
@@ -319,6 +335,8 @@ class Dealii(CMakePackage, CudaPackage):
msg="Deal.II 9.6 onwards requires the C++ standard to be set to 17 or later.",
)
+ conflicts("oce", when="+opencascade", msg="Only one among OCE or OPENCASCADE can be selected.")
+
# Interfaces added in 8.5.0:
for _package in ["gsl", "python"]:
conflicts(
@@ -466,7 +484,7 @@ class Dealii(CMakePackage, CudaPackage):
# Examples / tutorial programs
options.append(self.define_from_variant("DEAL_II_COMPONENT_EXAMPLES", "examples"))
- options.append(self.define_from_variant("DEAL_II_COMPILE_EXAMPLES", "examples"))
+ options.append(self.define_from_variant("DEAL_II_COMPILE_EXAMPLES", "examples_compile"))
# Enforce the specified C++ standard
if spec.variants["cxxstd"].value != "default":
@@ -535,6 +553,9 @@ class Dealii(CMakePackage, CudaPackage):
if spec.satisfies("+trilinos"):
options.extend([self.define("CMAKE_CXX_COMPILER", spec["trilinos"].kokkos_cxx)])
+ # Complex support
+ options.append(self.define_from_variant("DEAL_II_WITH_COMPLEX_VALUES", "complex"))
+
# Python bindings
if spec.satisfies("@8.5.0:"):
options.append(self.define_from_variant("DEAL_II_COMPONENT_PYTHON_BINDINGS", "python"))
@@ -643,11 +664,16 @@ class Dealii(CMakePackage, CudaPackage):
]
)
- # Open Cascade
- options.append(self.define_from_variant("DEAL_II_WITH_OPENCASCADE", "oce"))
- if spec.satisfies("+oce"):
+ # Open Cascade -- OCE
+ if "+oce" in spec:
+ options.append(self.define_from_variant("DEAL_II_WITH_OPENCASCADE", "oce"))
options.append(self.define("OPENCASCADE_DIR", spec["oce"].prefix))
+ # Open Cascade -- OpenCascade
+ if "+opencascade" in spec:
+ options.append(self.define_from_variant("DEAL_II_WITH_OPENCASCADE", "opencascade"))
+ options.append(self.define("OPENCASCADE_DIR", spec["opencascade"].prefix))
+
# As a final step, collect CXX flags that may have been
# added anywhere above:
if len(cxx_flags_release) > 0 and "+optflags" in spec: