PETSc with MUMPS version >= 5.3.0
In MUMPS-5.3.0 has been introduced a new feature that is the "distributed right-hand sides".
(see https://mumps-solver.org/index.php?page=dwnld#cl Changes from 5.2.1 to 5.3.0 )
PETSc, when compiled with a version of MUMPS >= 5.3.0, uses the "distributed right-hand sides" by default.
(see /your-petsc-folder/src/mat/impls/aij/mpi/mumps/mumps.c and look for mumps->ICNTL20 )
I do not know the reason, but apparently this choice is not compatible with FELiSCe.
I introduced a workaround in the code by forcing PETSc and MUMPS to choose a "Centralized RHS", which corresponds to the hard-coded option -mat_mumps_icntl_20 = 0.
(see in FELiSCe: KSPInterface::solve() and Tools/ksp_solver.hpp -> SolveMatrix() )
N.B. The PESCs interface to MUMPS supports only two types of rhs:
-
mumps->ICNTL20 = 0; /* Centralized dense RHS*/
i.e. option -mat_mumps_icntl_20 = 0 -
mumps->ICNTL20 = 10; /* Distributed dense RHS*/
i.e. option -mat_mumps_icntl_20 = 10