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_SCOTCHis now enabled by default, asides from on Windows platforms where it won't compile without mingw32, which we don't support.
NEKTAR_USE_SCOTCHis disabled, multi-level static condensation is also disabled (so Windows no longer supports multi-level static condensation). In this case, the default serial
GlobalSysSolnis set to
DirectStaticCond. Trying to use one of the multi-level static condensation solvers will trip an ASSERT in
- METIS can be enabled by selecting the
NEKTAR_USE_METIS, in which case it becomes the default partitioner.
--use-scotchcan 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-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 of
FwdTrans_BndConstrainedresults 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.