Add dlaf variant to cp2k (#40702)

This commit is contained in:
Rocco Meli 2023-10-25 12:13:32 +02:00 committed by GitHub
parent 1ecb100e43
commit f4bbc0dbd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -83,6 +83,13 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
description="Enable optimised diagonalisation routines from ELPA", description="Enable optimised diagonalisation routines from ELPA",
when="@6.1:", when="@6.1:",
) )
variant(
"dlaf",
default=False,
description="Enable DLA-Future eigensolver and Cholesky decomposition",
# TODO: Pin version when integrated in a release
when="@master build_system=cmake",
)
variant( variant(
"sirius", "sirius",
default=False, default=False,
@ -226,6 +233,15 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
depends_on("elpa@2021.11.001:", when="@9.1:") depends_on("elpa@2021.11.001:", when="@9.1:")
depends_on("elpa@2023.05.001:", when="@2023.2:") depends_on("elpa@2023.05.001:", when="@2023.2:")
with when("+dlaf"):
conflicts(
"~mpi", msg="DLA-Future requires MPI. Only the distributed eigensolver is available."
)
depends_on("dla-future@0.2.1: +scalapack")
depends_on("dla-future ~cuda~rocm", when="~cuda~rocm")
depends_on("dla-future +cuda", when="+cuda")
depends_on("dla-future +rocm", when="+rocm")
with when("+plumed"): with when("+plumed"):
depends_on("plumed+shared") depends_on("plumed+shared")
depends_on("plumed+mpi", when="+mpi") depends_on("plumed+mpi", when="+mpi")
@ -945,6 +961,7 @@ def cmake_args(self):
args += [ args += [
self.define_from_variant("CP2K_ENABLE_REGTESTS", "enable_regtests"), self.define_from_variant("CP2K_ENABLE_REGTESTS", "enable_regtests"),
self.define_from_variant("CP2K_USE_ELPA", "elpa"), self.define_from_variant("CP2K_USE_ELPA", "elpa"),
self.define_from_variant("CP2K_USE_DLAF", "dlaf"),
self.define_from_variant("CP2K_USE_LIBINT2", "libint"), self.define_from_variant("CP2K_USE_LIBINT2", "libint"),
self.define_from_variant("CP2K_USE_SIRIUS", "sirius"), self.define_from_variant("CP2K_USE_SIRIUS", "sirius"),
self.define_from_variant("CP2K_USE_SPLA", "spla"), self.define_from_variant("CP2K_USE_SPLA", "spla"),