summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAxel Huebl <axel.huebl@plasma.ninja>2021-06-14 10:34:24 -0700
committerGitHub <noreply@github.com>2021-06-14 19:34:24 +0200
commit22fe56ad2489eb242d5606dd55a19372b8721722 (patch)
tree2d38d1d7364146edb006a7445ae5f4b4da6520d1 /var
parent9cfcc16084144fe7aaa49d40b071a32f2da708f2 (diff)
downloadspack-22fe56ad2489eb242d5606dd55a19372b8721722.tar.gz
spack-22fe56ad2489eb242d5606dd55a19372b8721722.tar.bz2
spack-22fe56ad2489eb242d5606dd55a19372b8721722.tar.xz
spack-22fe56ad2489eb242d5606dd55a19372b8721722.zip
HiPACE: new package (#24070)
Co-authored-by: Severin Diederichs <65728274+SeverinDiederichs@users.noreply.github.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hipace/package.py66
-rw-r--r--var/spack/repos/builtin/packages/openpmd-api/package.py5
2 files changed, 70 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/hipace/package.py b/var/spack/repos/builtin/packages/hipace/package.py
new file mode 100644
index 0000000000..490c755183
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hipace/package.py
@@ -0,0 +1,66 @@
+# Copyright 2013-2021 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 Hipace(CMakePackage):
+ """Highly efficient Plasma Accelerator Emulation, quasistatic
+ particle-in-cell code
+ """
+
+ homepage = "https://hipace.readthedocs.io"
+ # url = "https://github.com/Hi-PACE/hipace/archive/refs/tags/21.06.tar.gz"
+ git = "https://github.com/Hi-PACE/hipace.git"
+
+ maintainers = ['ax3l', 'MaxThevenet', 'SeverinDiederichs']
+
+ version('develop', branch='development')
+
+ variant('compute',
+ default='omp',
+ values=('omp', 'cuda', 'hip', 'sycl', 'noacc'),
+ multi=False,
+ description='On-node, accelerated computing backend')
+ variant('mpi', default=True,
+ description='Enable MPI support')
+ variant('openpmd', default=True,
+ description='Enable openPMD I/O')
+ variant('precision',
+ default='double',
+ values=('single', 'double'),
+ multi=False,
+ description='Floating point precision (single/double)')
+
+ depends_on('cmake@3.15.0:', type='build')
+ depends_on('cuda@9.2.88:', when='compute=cuda')
+ depends_on('fftw@3:', when='compute=omp')
+ depends_on('fftw +mpi', when='+mpi compute=omp')
+ depends_on('mpi', when='+mpi')
+ depends_on('openpmd-api@hipace', when='+openpmd')
+ depends_on('openpmd-api ~mpi', when='+openpmd ~mpi')
+ depends_on('openpmd-api +mpi', when='+openpmd +mpi')
+ depends_on('pkgconfig', type='build', when='compute=omp')
+ depends_on('rocfft', when='compute=hip')
+ depends_on('rocprim', when='compute=hip')
+ depends_on('rocrand', when='compute=hip')
+ depends_on('llvm-openmp', when='%apple-clang compute=omp')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ # do not super-build dependencies
+ '-HiPACE_openpmd_internal=OFF',
+ # variants
+ '-DHiPACE_COMPUTE={0}'.format(
+ spec.variants['compute'].value.upper()),
+ self.define_from_variant('HiPACE_MPI', 'mpi'),
+ self.define_from_variant('HiPACE_OPENPMD', 'openpmd'),
+ '-DHiPACE_PRECISION={0}'.format(
+ spec.variants['precision'].value.upper()),
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py
index 911dbf78d1..a968b88fda 100644
--- a/var/spack/repos/builtin/packages/openpmd-api/package.py
+++ b/var/spack/repos/builtin/packages/openpmd-api/package.py
@@ -15,12 +15,15 @@ class OpenpmdApi(CMakePackage):
maintainers = ['ax3l']
+ # C++14 up until here
version('dev', branch='dev')
+ # temporary, pre 0.14.0 version for HiPACE++
+ version('hipace', commit='ac083025ee662469b8cad1adf93eef48cde35f58')
version('0.13.4', sha256='46c013be5cda670f21969675ce839315d4f5ada0406a6546a91ec3441402cf5e')
version('0.13.3', sha256='4b8f84bd89cd540c73ffe8c21085970453cb7f0e4f125f11a4e288433f64b58c')
version('0.13.2', sha256='2e5170d41bb7b2c0608ec833eee7f9adf8175b46734743f6e46dcce6f6685fb0')
version('0.13.1', sha256='81ff79419982eb1b0865d1736f73f950f5d4c356d3c78200ceeab7f54dc07fd7')
- version('0.13.0', sha256='97c2e43d80ee5c5288f278bd54f0dcb40e7f48a575b278fcef9660214b779bb0') # C++14 required
+ version('0.13.0', sha256='97c2e43d80ee5c5288f278bd54f0dcb40e7f48a575b278fcef9660214b779bb0')
# C++11 up until here
version('0.12.0', tag='0.12.0-alpha')
version('0.11.1', tag='0.11.1-alpha')