PETSc: Add a new ptscotch variant. (#20699)
Currently the Parmetis wrapper is disabled which means nested dissection cannot be used with PTScotch.
This commit is contained in:
parent
2d9e36c4f0
commit
23181d24a2
1 changed files with 19 additions and 0 deletions
|
@ -78,6 +78,8 @@ class Petsc(Package):
|
||||||
|
|
||||||
variant('metis', default=True,
|
variant('metis', default=True,
|
||||||
description='Activates support for metis and parmetis')
|
description='Activates support for metis and parmetis')
|
||||||
|
variant('ptscotch', default=False,
|
||||||
|
description='Activates support for PTScotch (only parallel)')
|
||||||
variant('hdf5', default=True,
|
variant('hdf5', default=True,
|
||||||
description='Activates support for HDF5 (only parallel)')
|
description='Activates support for HDF5 (only parallel)')
|
||||||
variant('hypre', default=True,
|
variant('hypre', default=True,
|
||||||
|
@ -145,6 +147,7 @@ class Petsc(Package):
|
||||||
conflicts('+moab', when='~mpi', msg=mpi_msg)
|
conflicts('+moab', when='~mpi', msg=mpi_msg)
|
||||||
conflicts('+mumps', when='~mpi', msg=mpi_msg)
|
conflicts('+mumps', when='~mpi', msg=mpi_msg)
|
||||||
conflicts('+p4est', when='~mpi', msg=mpi_msg)
|
conflicts('+p4est', when='~mpi', msg=mpi_msg)
|
||||||
|
conflicts('+ptscotch', when='~mpi', msg=mpi_msg)
|
||||||
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)
|
||||||
|
|
||||||
|
@ -191,6 +194,11 @@ class Petsc(Package):
|
||||||
depends_on('metis@5:~int64', when='@3.8:+metis~int64')
|
depends_on('metis@5:~int64', when='@3.8:+metis~int64')
|
||||||
depends_on('metis@5:+int64', when='@3.8:+metis+int64')
|
depends_on('metis@5:+int64', when='@3.8:+metis+int64')
|
||||||
|
|
||||||
|
# PTScotch: Currently disable Parmetis wrapper, this means
|
||||||
|
# nested disection won't be available thought PTScotch
|
||||||
|
depends_on('scotch+esmumps~metis+mpi', when='+ptscotch')
|
||||||
|
depends_on('scotch+int64', when='+ptscotch+int64')
|
||||||
|
|
||||||
depends_on('hdf5@:1.10.99+mpi', when='@:3.12.99+hdf5+mpi')
|
depends_on('hdf5@:1.10.99+mpi', when='@:3.12.99+hdf5+mpi')
|
||||||
depends_on('hdf5+mpi', when='@3.13:+hdf5+mpi')
|
depends_on('hdf5+mpi', when='@3.13:+hdf5+mpi')
|
||||||
depends_on('hdf5+mpi', when='+exodusii+mpi')
|
depends_on('hdf5+mpi', when='+exodusii+mpi')
|
||||||
|
@ -409,6 +417,17 @@ def install(self, spec, prefix):
|
||||||
else:
|
else:
|
||||||
options.append('--with-suitesparse=0')
|
options.append('--with-suitesparse=0')
|
||||||
|
|
||||||
|
# PTScotch: Since we are not using the Parmetis wrapper for now,
|
||||||
|
# we cannot use '--with-ptscotch-dir=...'
|
||||||
|
if '+ptscotch' in spec:
|
||||||
|
options.extend([
|
||||||
|
'--with-ptscotch-include=%s' % spec['scotch'].prefix.include,
|
||||||
|
'--with-ptscotch-lib=%s' % spec['scotch'].libs.joined(),
|
||||||
|
'--with-ptscotch=1'
|
||||||
|
])
|
||||||
|
else:
|
||||||
|
options.append('--with-ptscotch=0')
|
||||||
|
|
||||||
# hdf5: configure detection is convoluted for pflotran
|
# hdf5: configure detection is convoluted for pflotran
|
||||||
if '+hdf5' in spec:
|
if '+hdf5' in spec:
|
||||||
options.extend([
|
options.extend([
|
||||||
|
|
Loading…
Reference in a new issue