[petsc-users] MUMPS error reporting in PETSc-3.7

Barry Smith bsmith at mcs.anl.gov
Mon Jun 6 15:16:41 CDT 2016


   Actually all the routines for accessing the MUMPS information already exist. I have added this to the manual page for MATSOLVERMUMPS

    Notes: When a MUMPS factorization fails inside a KSP solve, for example with a KSP_DIVERGED_PCSETUP_FAILED, one can find the MUMPS information about the failure by calling 
$          KSPGetPC(ksp,&pc);
$          PCFactorGetMatrix(pc,&mat);
$          MatMumpsGetInfo(mat,....);
$          MatMumpsGetInfog(mat,....); etc.

.seealso: PCFactorSetMatSolverPackage(), MatSolverPackage, MatMumpsSetICntl(), MatMumpsGetIcntl(), MatMumpsSetCntl(), MatMumpsGetCntl(), MatMumpsGetInfo(), MatMumpsGetInfog(), MatMumpsGetRinfo(), MatMumpsGetRinfog(), KSPGetPC(), PCGetFactor(), PCFactorGetMatrix()

Please let us know if this does not work


> On Jun 5, 2016, at 12:45 PM, David Knezevic <david.knezevic at akselos.com> wrote:
> On Sun, Jun 5, 2016 at 1:42 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> > On Jun 5, 2016, at 12:12 PM, David Knezevic <david.knezevic at akselos.com> wrote:
> >
> > In PETSc-3.6, when I hit an error using the MUMPS solver, I would get an error like this:
> >
> > [0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
> > [0]PETSC ERROR: Error in external library
> > [0]PETSC ERROR: Error reported by MUMPS in numerical factorization phase: INFO(1)=-9, INFO(2)=351513
> >
> > In PETSc-3.7, the solver now reports "KSP_DIVERGED_PCSETUP_FAILED" instead. The new behavior is definitely better, so thanks for the update! However, I'd still be curious to be able to see what error codes MUMPS returned (which was previously provided in INFO(1) and INFO(2)), since that can be helpful for diagnosing the reason for the solver failure. Is that info still available somehow?
>    David,
>      There are a couple of ways to obtain them both clunky, we should also provide a simple function call interface such as MatMumpsGetInfo(Mat,int *infog,int *info);
>      Anyways right now you can run with -info and it prints the information (along with too much other information) or you can run with -ksp_error_if_not_converged and then it reverts back to the old behavior of stopping immediately and printing the error message and info values.
> OK, got it, thanks!
> David

More information about the petsc-users mailing list