This is an autotools-based build system to build and install MUltifrontal Massively Parallel sparse direct Solver (MUMPS). This installation of MUMPS is used by some other COIN-OR projects.
This version of ThirdParty-Mumps retrieves and builds MUMPS 5.8.1.
-
MUMPS source requires a Fortran 90 compiler.
-
MUMPS requires LAPACK to be available.
configurewill look for a Lapack installation, but if that does not succeed, the flags to link with Lapack should be specified with the--with-lapack-lflagsargument ofconfigure. -
MUMPS can make use of METIS.
configurewill look for a METIS library and header, but if that does not succeed, the arguments--with-metis-lflagsand--with-metis-cflagscan be specified forconfigure.Both Metis 4 and Metis 5 can be used with ThirdParty-Mumps.
-
Obtain the MUMPS source code.
Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package.
The shell script
get.Mumpscan be used to automatically download and extract the correct version of the MUMPS source code. The script will first try to download from from https://coin-or-tools.github.io/ThirdParty-Mumps. If this fails, it will attempt to download from the MUMPS website: http://mumps-solver.orgThe script requires wget, curl, or fetch to be available on the system and in the shells search path (
$PATH). -
Run
./configure. Use./configure --helpto see available options. -
Run
maketo build the MUMPS library. -
Run
make installto install the MUMPS library and header files.
MUMPS source does not compile out of the box when using GFortran 10 or higher, probably due to some incompatibilities between assumed Fortran language standards, see also issue #4.
As a workaround, configure adds -std=legacy to the Fortran compiler flags
if $FC matches *gfortran*.
This buildsystem can also build a single-precision version of MUMPS.
To do so, use the configure option --with-precision=single.
It is also possible to build both single- and double-precision variants
of MUMPS into the same library by using --with-precision=all.
This buildsystem can be instructed to change the integer type of MUMPS to
have a size of 64-bit by using the configure option --with-intsize=64.
This defines MUMPS_INTSIZE64 instead of MUMPS_INTSIZE32 in
mumps_int_def.h and instructs the Fortran compiler to use 8-byte integers.
The latter requires that the Fortran compiler is either GNU Fortran or
Intel Fortran.
When MUMPS uses 64-bit integers, also Lapack and METIS need to use 64-bit
integers. For METIS, this means that IDXTYPEWIDTH needs to be set to 8
instead of 4.