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 *
class Changa(AutotoolsPackage):
class Changa(AutotoolsPackage, CudaPackage):
"""ChaNGa (Charm N-body GrAvity solver) is a code to perform collisionless
N-body simulations. It can perform cosmological simulations with periodic
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."""
N-body simulations.
"""
homepage = "https://faculty.washington.edu/trq/hpcc/tools/changa.html"
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")
version("master", branch="master")
version("3.5", sha256="8c49ab5b540a8adb23d3eaa80942621e5ac83244918e66c87886c9d3fb463d39")
version("3.4", sha256="c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
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(
name="utility",
url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz",
sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667",
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 +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):
args = []
args.append("STRUCT_DIR={0}/utility/structures".format(self.stage.source_path))
args = [f"STRUCT_DIR={self.stage.source_path}/utility/structures"]
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
def install(self, spec, prefix):