New Package: ChaNGa (#17442)
* WIP: changa package * changa cleanup * flake8 format * adds master branch to ChaNGa * positional arguments * use install instead of copy
This commit is contained in:
parent
e72e2568dd
commit
02dd90ebf9
3 changed files with 61 additions and 2 deletions
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index 04f1a59..602c6cc 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -2434,7 +2434,7 @@ if test $($CHARMC -V | awk '{print $3}') -lt $MINIMUM_CHARM_VERSION; then
|
||||||
|
fi
|
||||||
|
|
||||||
|
CHARM_PATH=${CHARMC%/bin/charmc}
|
||||||
|
-CONV_CONFIG=${CHARM_PATH}/tmp/conv-config.sh
|
||||||
|
+CONV_CONFIG=${CHARM_PATH}/include/conv-config.sh
|
||||||
|
CHARMINC=${CHARM_PATH}/include
|
||||||
|
|
||||||
|
. ${CONV_CONFIG}
|
46
var/spack/repos/builtin/packages/changa/package.py
Normal file
46
var/spack/repos/builtin/packages/changa/package.py
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Changa(AutotoolsPackage):
|
||||||
|
"""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."""
|
||||||
|
|
||||||
|
homepage = "http://faculty.washington.edu/trq/hpcc/tools/changa.html"
|
||||||
|
url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz"
|
||||||
|
git = "https://github.com/N-BodyShop/changa.git"
|
||||||
|
|
||||||
|
version('master', branch='master')
|
||||||
|
version('3.4', sha256='c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94')
|
||||||
|
patch("fix_configure_path.patch")
|
||||||
|
|
||||||
|
resource(
|
||||||
|
name="utility",
|
||||||
|
url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz",
|
||||||
|
sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667",
|
||||||
|
placement="utility"
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("charmpp build-target=ChaNGa")
|
||||||
|
|
||||||
|
def configure_args(self):
|
||||||
|
args = []
|
||||||
|
args.append("STRUCT_DIR={0}/utility/structures"
|
||||||
|
.format(self.stage.source_path))
|
||||||
|
return args
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
with working_dir(self.build_directory):
|
||||||
|
mkdirp(prefix.bin)
|
||||||
|
install('ChaNGa', prefix.bin)
|
||||||
|
install('charmrun', prefix.bin)
|
|
@ -52,7 +52,7 @@ class Charmpp(Package):
|
||||||
"build-target",
|
"build-target",
|
||||||
default="LIBS",
|
default="LIBS",
|
||||||
# AMPI also builds charm++, LIBS also builds AMPI and charm++
|
# AMPI also builds charm++, LIBS also builds AMPI and charm++
|
||||||
values=("charm++", "AMPI", "LIBS"),
|
values=("charm++", "AMPI", "LIBS", "ChaNGa"),
|
||||||
description="Specify the target to build"
|
description="Specify the target to build"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@ def install(self, spec, prefix):
|
||||||
present on the system")
|
present on the system")
|
||||||
|
|
||||||
target = spec.variants["build-target"].value
|
target = spec.variants["build-target"].value
|
||||||
builddir = prefix + "/" + str(self.charmarch)
|
builddir = prefix
|
||||||
|
|
||||||
# We assume that Spack's compiler wrappers make this work. If
|
# We assume that Spack's compiler wrappers make this work. If
|
||||||
# not, then we need to query the compiler vendor from Spack
|
# not, then we need to query the compiler vendor from Spack
|
||||||
|
|
Loading…
Reference in a new issue