petsc: new version add support for +mumps +int64 (#18170)
* petsc: new version add support for +mumps +int64 The latest petsc release allows using mumps while using 64 bit integers : https://www.mcs.anl.gov/petsc/documentation/changes/313.html https://gitlab.com/petsc/petsc/-/merge_requests/2591/ * petsc: use conflicts for mumps dependency
This commit is contained in:
parent
b305990ee8
commit
b562154423
@ -81,8 +81,7 @@ class Petsc(Package):
|
|||||||
# Mumps is disabled by default, because it depends on Scalapack
|
# Mumps is disabled by default, because it depends on Scalapack
|
||||||
# which is not portable to all HPC systems
|
# which is not portable to all HPC systems
|
||||||
variant('mumps', default=False,
|
variant('mumps', default=False,
|
||||||
description='Activates support for MUMPS (only parallel'
|
description='Activates support for MUMPS (only parallel)')
|
||||||
' and 32bit indices)')
|
|
||||||
variant('superlu-dist', default=True,
|
variant('superlu-dist', default=True,
|
||||||
description='Activates support for SuperluDist (only parallel)')
|
description='Activates support for SuperluDist (only parallel)')
|
||||||
variant('trilinos', default=False,
|
variant('trilinos', default=False,
|
||||||
@ -145,6 +144,9 @@ class Petsc(Package):
|
|||||||
conflicts('+superlu-dist', when='~mpi', msg=mpi_msg)
|
conflicts('+superlu-dist', when='~mpi', msg=mpi_msg)
|
||||||
conflicts('+trilinos', when='~mpi', msg=mpi_msg)
|
conflicts('+trilinos', when='~mpi', msg=mpi_msg)
|
||||||
|
|
||||||
|
# older versions of petsc did not support mumps when +int64
|
||||||
|
conflicts('+mumps', when='@:3.12.99+int64')
|
||||||
|
|
||||||
filter_compiler_wrappers(
|
filter_compiler_wrappers(
|
||||||
'petscvariables', relative_root='lib/petsc/conf'
|
'petscvariables', relative_root='lib/petsc/conf'
|
||||||
)
|
)
|
||||||
@ -225,8 +227,8 @@ class Petsc(Package):
|
|||||||
depends_on('superlu-dist@xsdk-0.2.0+int64', when='@xsdk-0.2.0+superlu-dist+mpi+int64')
|
depends_on('superlu-dist@xsdk-0.2.0+int64', when='@xsdk-0.2.0+superlu-dist+mpi+int64')
|
||||||
depends_on('superlu-dist@develop~int64', when='@develop+superlu-dist+mpi~int64')
|
depends_on('superlu-dist@develop~int64', when='@develop+superlu-dist+mpi~int64')
|
||||||
depends_on('superlu-dist@develop+int64', when='@develop+superlu-dist+mpi+int64')
|
depends_on('superlu-dist@develop+int64', when='@develop+superlu-dist+mpi+int64')
|
||||||
depends_on('mumps+mpi', when='+mumps+mpi~int64')
|
depends_on('mumps+mpi~int64', when='+mumps')
|
||||||
depends_on('scalapack', when='+mumps+mpi~int64')
|
depends_on('scalapack', when='+mumps')
|
||||||
depends_on('trilinos@12.6.2:+mpi', when='@3.7.0:+trilinos+mpi')
|
depends_on('trilinos@12.6.2:+mpi', when='@3.7.0:+trilinos+mpi')
|
||||||
depends_on('trilinos@xsdk-0.2.0+mpi', when='@xsdk-0.2.0+trilinos+mpi')
|
depends_on('trilinos@xsdk-0.2.0+mpi', when='@xsdk-0.2.0+trilinos+mpi')
|
||||||
depends_on('trilinos@develop+mpi', when='@xdevelop+trilinos+mpi')
|
depends_on('trilinos@develop+mpi', when='@xdevelop+trilinos+mpi')
|
||||||
@ -328,9 +330,9 @@ def install(self, spec, prefix):
|
|||||||
else:
|
else:
|
||||||
options.append('--with-clanguage=C')
|
options.append('--with-clanguage=C')
|
||||||
|
|
||||||
# PETSc depends on scalapack when '+mumps+mpi~int64' (see depends())
|
# PETSc depends on scalapack when '+mumps' (see depends())
|
||||||
# help PETSc pick up Scalapack from MKL
|
# help PETSc pick up Scalapack from MKL
|
||||||
if spec.satisfies('+mumps+mpi~int64'):
|
if spec.satisfies('+mumps'):
|
||||||
scalapack = spec['scalapack'].libs
|
scalapack = spec['scalapack'].libs
|
||||||
options.extend([
|
options.extend([
|
||||||
'--with-scalapack-lib=%s' % scalapack.joined(),
|
'--with-scalapack-lib=%s' % scalapack.joined(),
|
||||||
|
Loading…
Reference in New Issue
Block a user