petsc-3.7.7 2017-09-25
Report Typos and Errors

# MATSOLVERMUMPS

A matrix type providing direct solvers (LU and Cholesky) for distributed and sequential matrices via the external package MUMPS. Works with MATAIJ and MATSBAIJ matrices

Use ./configure --download-mumps --download-scalapack --download-parmetis --download-metis --download-ptscotch to have PETSc installed with MUMPS

Use -pc_type cholesky or lu -pc_factor_mat_solver_package mumps to us this direct solver

### Options Database Keys

| -mat_mumps_icntl_1 | - ICNTL(1): output stream for error messages
| -mat_mumps_icntl_2 | - ICNTL(2): output stream for diagnostic printing, statistics, and warning
| -mat_mumps_icntl_3 | - ICNTL(3): output stream for global information, collected on the host
| -mat_mumps_icntl_4 | - ICNTL(4): level of printing (0 to 4)
| -mat_mumps_icntl_6 | - ICNTL(6): permutes to a zero-free diagonal and/or scale the matrix (0 to 7)
| -mat_mumps_icntl_7 | - ICNTL(7): computes a symmetric permutation in sequential analysis (0 to 7). 3=Scotch, 4=PORD, 5=Metis
| -mat_mumps_icntl_8 | - ICNTL(8): scaling strategy (-2 to 8 or 77)
| -mat_mumps_icntl_10 | - ICNTL(10): max num of refinements
| -mat_mumps_icntl_11 | - ICNTL(11): statistics related to an error analysis (via -ksp_view)
| -mat_mumps_icntl_12 | - ICNTL(12): an ordering strategy for symmetric matrices (0 to 3)
| -mat_mumps_icntl_13 | - ICNTL(13): parallelism of the root node (enable ScaLAPACK) and its splitting
| -mat_mumps_icntl_14 | - ICNTL(14): percentage increase in the estimated working space
| -mat_mumps_icntl_19 | - ICNTL(19): computes the Schur complement
| -mat_mumps_icntl_22 | - ICNTL(22): in-core/out-of-core factorization and solve (0 or 1)
| -mat_mumps_icntl_23 | - ICNTL(23): max size of the working memory (MB) that can allocate per processor
| -mat_mumps_icntl_24 | - ICNTL(24): detection of null pivot rows (0 or 1)
| -mat_mumps_icntl_25 | - ICNTL(25): compute a solution of a deficient matrix and a null space basis
| -mat_mumps_icntl_26 | - ICNTL(26): drives the solution phase if a Schur complement matrix
| -mat_mumps_icntl_28 | - ICNTL(28): use 1 for sequential analysis and ictnl(7) ordering, or 2 for parallel analysis and ictnl(29) ordering
| -mat_mumps_icntl_29 | - ICNTL(29): parallel ordering 1 = ptscotch, 2 = parmetis
| -mat_mumps_icntl_30 | - ICNTL(30): compute user-specified set of entries in inv(A)
| -mat_mumps_icntl_31 | - ICNTL(31): indicates which factors may be discarded during factorization
| -mat_mumps_icntl_33 | - ICNTL(33): compute determinant
| -mat_mumps_cntl_1 | - CNTL(1): relative pivoting threshold
| -mat_mumps_cntl_2 | - CNTL(2): stopping criterion of refinement
| -mat_mumps_cntl_3 | - CNTL(3): absolute pivoting threshold
| -mat_mumps_cntl_4 | - CNTL(4): value for static pivoting
| -mat_mumps_cntl_5 | - CNTL(5): fixation for null pivots

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.

Or you can run with -ksp_error_if_not_converged and the program will be stopped and the information printed in the error message.

### See Also

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

Level:beginner
Location:src/mat/impls/aij/mpi/mumps/mumps.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/ksp/ksp/examples/tutorials/ex52.c.html
src/ksp/ksp/examples/tutorials/ex53.c.html
src/ksp/ksp/examples/tutorials/ex52f.F.html