HiPACE: new package (#24070)
Co-authored-by: Severin Diederichs <65728274+SeverinDiederichs@users.noreply.github.com>
This commit is contained in:
parent
9cfcc16084
commit
22fe56ad24
2 changed files with 70 additions and 1 deletions
66
var/spack/repos/builtin/packages/hipace/package.py
Normal file
66
var/spack/repos/builtin/packages/hipace/package.py
Normal file
|
@ -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
|
|
@ -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')
|
||||
|
|
Loading…
Reference in a new issue