Mumps and umfpack not available as LU solvers on fenics-2019.2.0.dev0


I installed the developpement version of fenics from sources.


When solving linear problem with Lu solver I get the warning

*** Warning: Using PETSc native LU solver. Consider configuring PETSc with an efficient LU solver (e.g. UMFPACK, MUMPS).

So Mumps and Umfpack are not available as


LU method  |  Description             
default    |  default LU solver       
petsc      |  PETSc built in LU solver

At the installation, the configuration step finds Petsc amd UMFPACK (but no mention of MUMPS here)

-- Checking for one of the modules 'craypetsc_real;PETSc'
-- Test PETSC_TEST_RUNS with shared library linking - Success

-- The following OPTIONAL packages have been found:

 * MPI, Message Passing Interface (MPI)
   Enables DOLFIN to run in parallel with MPI
 * PETSc (required version >= 3.7), Portable, Extensible Toolkit for Scientific Computation, <>
   Enables the PETSc linear algebra backend
 * SCOTCH, Programs and libraries for graph, mesh and hypergraph partitioning, <>
   Enables parallel graph partitioning
 * UMFPACK, Sparse LU factorization library, <>


solver = LUSolver(A,"mumps")
gives the error

Unknown LU method "mumps".

The same error occurs with umfpack. Note that mumps and umfpack libraries are installed on my system. Any idea on how to enable these solvers ? Or hints to where to look at ?

Did you configure PETSc with MUMPS and UMFPACK? configure.log in your PETSc source directory will let you know.

Thanks, it turns out that my package manager (portage on gentoo) was failing to apply the correct --with-flags at the configure step because of an erroneous meta-data file (called ebuild), leading to the following warning:

Warning! Incorrect argument type specified: -with-mumps=/usr/include - expecting type Bool.

For my fellow gentoo users the error is in the line 169 of the following file (for petsc-3.15.0)
/usr/portage/sci-mathematics/petsc/petsc-3.15.0.ebuild :


$(use_with mumps mumps \ /usr/include \ [-lcmumps,-ldmumps,-lsmumps,-lzmumps,-lmumps_common,-lpord])

it should be modified to
$(petsc_with mumps mumps \ /usr/include \ [-lcmumps,-ldmumps,-lsmumps,-lzmumps,-lmumps_common,-lpord])

which leads in fenics (after recompiling petsc and dolfin) to

LU method  |  Description                                                 
default    |  default LU solver                                           
mumps      |  MUMPS (MUltifrontal Massively Parallel Sparse direct Solver)
petsc      |  PETSc built in LU solver 

Still no umfpack but this is fine for now.