summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/sundials/package.py55
1 files changed, 50 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py
index db1dd42753..a76b36eacb 100644
--- a/var/spack/repos/builtin/packages/sundials/package.py
+++ b/var/spack/repos/builtin/packages/sundials/package.py
@@ -21,6 +21,7 @@ class Sundials(CMakePackage):
# Versions
# ==========================================================================
version('develop', branch='develop')
+ version('5.1.0', sha256='fb22d14fad42203809dc46d046b001149ec4e901b23882bd4a80619157fd9b21')
version('5.0.0', sha256='345141ec01c641d0bdfb3476c478b7e74fd6a7192a478a27cafe75d9da2d7dd3')
version('4.1.0', sha256='280de1c27b2360170a6f46cb3799b2aee9dff3bddbafc8b08c291a47ab258aa5')
version('4.0.1', sha256='29e409c8620e803990edbda1ebf49e03a38c08b9187b90658d86bddae913aed4')
@@ -65,9 +66,9 @@ class Sundials(CMakePackage):
variant('pthread', default=False,
description='Enable Pthreads parallel vector')
variant('cuda', default=False,
- description='Enable CUDA parallel vector')
+ description='Enable CUDA vector and solvers')
variant('raja', default=False,
- description='Enable RAJA parallel vector')
+ description='Enable RAJA vector')
# External libraries
variant('hypre', default=False,
@@ -77,11 +78,13 @@ class Sundials(CMakePackage):
variant('klu', default=False,
description='Enable KLU sparse, direct solver')
variant('petsc', default=False,
- description='Enable PETSc MPI parallel vector')
+ description='Enable PETSc interfaces')
variant('superlu-mt', default=False,
description='Enable SuperLU_MT sparse, direct solver')
variant('superlu-dist', default=False,
description='Enable SuperLU_DIST sparse, direct solver')
+ variant('trilinos', default=False,
+ description='Enable Trilinos interfaces')
# Library type
variant('shared', default=True,
@@ -130,6 +133,7 @@ class Sundials(CMakePackage):
conflicts('+examples-cuda', when='@:2.7.0')
conflicts('+superlu-dist', when='@:4.1.0')
conflicts('+f2003', when='@:4.1.0')
+ conflicts('+trilinos', when='@:4.1.0')
# External libraries incompatible with 64-bit indices
conflicts('+lapack', when='@3.0.0: +int64')
@@ -173,6 +177,7 @@ class Sundials(CMakePackage):
depends_on('petsc +mpi', when='+petsc')
depends_on('hypre +mpi', when='+hypre')
depends_on('superlu-dist@6.1.1:', when='+superlu-dist')
+ depends_on('trilinos+tpetra', when='+trilinos')
# Require that external libraries built with the same precision
depends_on('petsc~double~complex', when='+petsc precision=single')
@@ -253,8 +258,7 @@ class Sundials(CMakePackage):
'-DMPI_ENABLE=%s' % on_off('+mpi'),
'-DOPENMP_ENABLE=%s' % on_off('+openmp'),
'-DPTHREAD_ENABLE=%s' % on_off('+pthread'),
- '-DCUDA_ENABLE=%s' % on_off('+cuda'),
- '-DRAJA_ENABLE=%s' % on_off('+raja')
+ '-DCUDA_ENABLE=%s' % on_off('+cuda')
])
# MPI support
@@ -274,6 +278,10 @@ class Sundials(CMakePackage):
'-DHYPRE_INCLUDE_DIR=%s' % spec['hypre'].prefix.include,
'-DHYPRE_LIBRARY_DIR=%s' % spec['hypre'].prefix.lib
])
+ else:
+ args.extend([
+ '-DHYPRE_ENABLE=OFF'
+ ])
# Building with KLU
if '+klu' in spec:
@@ -282,6 +290,10 @@ class Sundials(CMakePackage):
'-DKLU_INCLUDE_DIR=%s' % spec['suite-sparse'].prefix.include,
'-DKLU_LIBRARY_DIR=%s' % spec['suite-sparse'].prefix.lib
])
+ else:
+ args.extend([
+ '-DKLU_ENABLE=OFF'
+ ])
# Building with LAPACK
if '+lapack' in spec:
@@ -290,6 +302,10 @@ class Sundials(CMakePackage):
'-DLAPACK_LIBRARIES=%s'
% (spec['lapack'].libs + spec['blas'].libs).joined(';')
])
+ else:
+ args.extend([
+ '-DLAPACK_ENABLE=OFF'
+ ])
# Building with PETSc
if '+petsc' in spec:
@@ -302,12 +318,21 @@ class Sundials(CMakePackage):
'-DPETSC_INCLUDE_DIR=%s' % spec['petsc'].prefix.include,
'-DPETSC_LIBRARY_DIR=%s' % spec['petsc'].prefix.lib
])
+ else:
+ args.extend([
+ '-DPETSC_ENABLE=OFF'
+ ])
# Building with RAJA
if '+raja' in spec:
args.extend([
+ '-DRAJA_ENABLE=ON',
'-DRAJA_DIR=%s' % spec['raja'].prefix.share.raja.cmake
])
+ else:
+ args.extend([
+ '-DRAJA_ENABLE=OFF'
+ ])
# Building with SuperLU_MT
if '+superlu-mt' in spec:
@@ -327,6 +352,10 @@ class Sundials(CMakePackage):
args.append('-DSUPERLUMT_THREAD_TYPE=OpenMP')
else:
args.append('-DSUPERLUMT_THREAD_TYPE=Pthread')
+ else:
+ args.extend([
+ '-DSUPERLUMT_ENABLE=OFF'
+ ])
# Building with SuperLU_DIST
if '+superlu-dist' in spec:
@@ -341,6 +370,22 @@ class Sundials(CMakePackage):
'-DSUPERLUDIST_OpenMP=%s'
% on_off('^superlu-dist+openmp')
])
+ else:
+ args.extend([
+ '-DSUPERLUDIST_ENABLE=OFF'
+ ])
+
+ # Building with Trilinos
+ if '+trilinos' in spec:
+ args.extend([
+ '-DTrilinos_ENABLE=ON',
+ '-DTrilinos_DIR=%s'
+ % spec['trilinos'].prefix
+ ])
+ else:
+ args.extend([
+ '-DTrilinos_ENABLE=OFF'
+ ])
# Examples
if spec.satisfies('@3.0.0:'):