diff options
author | Axel Huebl <axel.huebl@plasma.ninja> | 2021-06-14 10:34:24 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-14 19:34:24 +0200 |
commit | 22fe56ad2489eb242d5606dd55a19372b8721722 (patch) | |
tree | 2d38d1d7364146edb006a7445ae5f4b4da6520d1 /var | |
parent | 9cfcc16084144fe7aaa49d40b071a32f2da708f2 (diff) | |
download | spack-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.py | 66 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/openpmd-api/package.py | 5 |
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') |