Replace modmetis with Scotch library
This MR reworks SubStructuredGraph
in MultiRegions to remove the dependency on modmetis
from Nektar++ and replace it with Scotch. Consequently, Nektar++ doesn't rely on any libraries that can't be found in standard distributions (asides from GSLib), which should make packaging easier. Primarily, this change is required because METIS does not expose the separator used to perform nested dissection reordering, whereas in Scotch it is part of the API.
-
NEKTAR_USE_SCOTCH
is now enabled by default, asides from on Windows platforms where it won't compile without mingw32, which we don't support. - If
NEKTAR_USE_SCOTCH
is disabled, multi-level static condensation is also disabled (so Windows no longer supports multi-level static condensation). In this case, the default serialGlobalSysSoln
is set toDirectStaticCond
. Trying to use one of the multi-level static condensation solvers will trip an ASSERT inSubStructuredGraph
. - METIS can be enabled by selecting the
NEKTAR_USE_METIS
, in which case it becomes the default partitioner.--use-metis
and--use-scotch
can be used as before. - Scotch version has been bumped to latest upstream stable release (6.0.4)
- Most regression test changes are to change
--use-metis
to--use-scotch
. Consequently, I've had to adjust a few regression tests. These still converge with increased p, but from previous merges I recall that our implementation ofFwdTrans_BndConstrained
results in slightly different evaluations of boundary conditions between different choices of partitions for some cases, particularly the prism tests in MultiRegions which are quite coarse.
Edited by Dave Moxey