changa: add v3.5 (#45591)

This commit is contained in:
Massimiliano Culpo 2024-08-06 11:12:45 +02:00 committed by GitHub
parent 8ded2ddf5e
commit f438a33978
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 44 additions and 12 deletions

View File

@ -0,0 +1,11 @@
--- a/Makefile.in 2024-07-17 19:21:06.292521857 +0200
+++ b/Makefile.in 2024-07-17 19:29:45.896742764 +0200
@@ -236,7 +236,7 @@
$(compile-c)
$(build_dir)/cha_commitid.c: force
- $(quiet) VER=`cd $(source_dir) && git describe --long --always` && \
+ $(quiet) VER="3.5" && \
echo "const char * const Cha_CommitID = \"$$VER\";" > $(build_dir)/cha_commitid.c
$(ci_files): $(build_dir)/settings

View File

@ -6,15 +6,10 @@
from spack.package import * from spack.package import *
class Changa(AutotoolsPackage): class Changa(AutotoolsPackage, CudaPackage):
"""ChaNGa (Charm N-body GrAvity solver) is a code to perform collisionless """ChaNGa (Charm N-body GrAvity solver) is a code to perform collisionless
N-body simulations. It can perform cosmological simulations with periodic N-body simulations.
boundary conditions in comoving coordinates or simulations of isolated """
stellar systems. It also can include hydrodynamics using the Smooth
Particle Hydrodynamics (SPH) technique. It uses a Barnes-Hut tree to
calculate gravity, with hexadecapole expansion of nodes and
Ewald summation for periodic forces. Timestepping is done with a leapfrog
integrator with individual timesteps for each particle."""
homepage = "https://faculty.washington.edu/trq/hpcc/tools/changa.html" homepage = "https://faculty.washington.edu/trq/hpcc/tools/changa.html"
url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz" url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz"
@ -23,24 +18,50 @@ class Changa(AutotoolsPackage):
license("GPL-2.0-or-later") license("GPL-2.0-or-later")
version("master", branch="master") version("master", branch="master")
version("3.5", sha256="8c49ab5b540a8adb23d3eaa80942621e5ac83244918e66c87886c9d3fb463d39")
version("3.4", sha256="c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94") version("3.4", sha256="c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94")
depends_on("c", type="build") # generated depends_on("c", type="build")
depends_on("cxx", type="build") # generated depends_on("cxx", type="build")
patch("fix_configure_path.patch") patch("fix_configure_path.patch")
# Version 3.5 assumes to have a git repository available to compute the current version
# using `git describe ...` Since we are installing from the release tarball, hardcode
# the version to 3.5
patch("fix_makefile.patch", when="@3.5")
resource( resource(
name="utility", name="utility",
url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz", url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz",
sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667", sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667",
placement="utility", placement="utility",
when="@3.4",
)
resource(
name="utility",
git="https://github.com/N-BodyShop/utility.git",
commit="f947639f78162a68d697195e6963328f2665bf44",
placement="utility",
when="@3.5",
) )
depends_on("charmpp build-target=ChaNGa") depends_on("charmpp build-target=ChaNGa")
depends_on("charmpp +cuda", when="+cuda")
depends_on("libjpeg")
depends_on("zlib-api")
parallel = False
def setup_build_environment(self, env):
env.set("CHARM_DIR", self.spec["charmpp"].prefix)
def configure_args(self): def configure_args(self):
args = [] args = [f"STRUCT_DIR={self.stage.source_path}/utility/structures"]
args.append("STRUCT_DIR={0}/utility/structures".format(self.stage.source_path)) if "avx" in self.spec.target:
args.append("--enable-arch=avx")
if self.spec.satisfies("+cuda"):
args.append(f"--with-cuda={self.spec['cuda'].prefix}")
return args return args
def install(self, spec, prefix): def install(self, spec, prefix):