summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorJosh Essman <68349992+joshessman-llnl@users.noreply.github.com>2020-10-20 16:26:34 -0500
committerGitHub <noreply@github.com>2020-10-20 16:26:34 -0500
commitcee5c2e75504cd6e33394d5d9551289c9c33e2e6 (patch)
treeb87c51eaea922b3dbbeac28b0fa9f77c6b1f5ae5 /var
parentfa9ad0a3da3dc5851155119287cfe4763cadfbeb (diff)
downloadspack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.tar.gz
spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.tar.bz2
spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.tar.xz
spack-cee5c2e75504cd6e33394d5d9551289c9c33e2e6.zip
mfem: Fix support for SUNDIALS and PETSc features (#19326)
* mfem: specify PETSC_DIR, link correct sundials libraries * fix: only use PETSC_DIR directly for static builds * fix: only use sundials nvecmpiplusx for MFEM 4.2+
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index d59db3d4f6..28287c48ee 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -474,10 +474,14 @@ class Mfem(Package):
ld_flags_from_library_list(spec[sun_spec].libs)]
if '+petsc' in spec:
- options += [
- 'PETSC_OPT=%s' % spec['petsc'].headers.cpp_flags,
- 'PETSC_LIB=%s' %
- ld_flags_from_library_list(spec['petsc'].libs)]
+ if '+shared' in spec:
+ options += [
+ 'PETSC_OPT=%s' % spec['petsc'].headers.cpp_flags,
+ 'PETSC_LIB=%s' %
+ ld_flags_from_library_list(spec['petsc'].libs)]
+ else:
+ options += [
+ 'PETSC_DIR=%s' % spec['petsc'].prefix]
if '+pumi' in spec:
pumi_libs = ['pumi', 'crv', 'ma', 'mds', 'apf', 'pcu', 'gmi',
@@ -676,9 +680,12 @@ class Mfem(Package):
@property
def sundials_components(self):
"""Return the SUNDIALS components needed by MFEM."""
- sun_comps = 'arkode,cvode,nvecserial,kinsol'
+ sun_comps = 'arkode,cvodes,nvecserial,kinsol'
if '+mpi' in self.spec:
- sun_comps += ',nvecparhyp,nvecparallel'
+ if self.spec.satisfies('@4.2:'):
+ sun_comps += ',nvecparallel,nvecmpiplusx'
+ else:
+ sun_comps += ',nvecparhyp,nvecparallel'
return sun_comps
@property