Script to install MUMPS Sparse Solver
Note: This script does not generate the MPI version anymore.
The script install-mumps.bash
builds both static and dynamic libraries for the MUMPS sparse solver (with OpenMP). The source code is downloaded from the Debian repository.
Alternatively, Docker images can be used. The images are based on ubuntu:22.04:
docker pull cpmech/mumps-solver
First, install all dependencies:
./install-deps.bash
and (if you want to use Intel MKL and Fortran compiler)
./install-intel-mkl-and-ifort-debian
Then, run (for OpenBLAS):
./install-mumps.bash
Or, run (with Intel MKL):
./install-mumps.bash mkl
All libraries can co-exist with each other and the default Debian libraries in your system. The following combinations are possible:
The Docker image can be built by running:
./build-docker-image.bash
To check the Docker image, open a terminal in a temporary Docker container:
docker run --rm -it mumps-solver /bin/bash
To use Visual Code Remote Development, copy the directory named .devcontainer
to your project. Then, open your project folder in VS Code and click the green button at the window's left-bottom corner. Choose Reopen in Container.
If you want to debug using the VS Code editor, copy the .vscode
directory to your project and modify as appropriate.
The figure below shows VS Code Remote Dev + Docker + Debugging:
The following libraries are installed, considering all flag combinations (from tree /usr/local/lib/mumps
):
/usr/local/lib/mumps
├── libdmumps_cpmech.a
├── libdmumps_cpmech.so
├── libmpiseq_cpmech.a
├── libmpiseq_cpmech.so
├── libmumps_common_cpmech.a
├── libmumps_common_cpmech.so
├── libpord_cpmech.a
├── libpord_cpmech.so
├── libzmumps_cpmech.a
└── libzmumps_cpmech.so
0 directories, 10 files
The include files are (from tree /usr/local/include/mumps
):
/usr/local/include/mumps
├── cmumps_c.h
├── cmumps_root.h
├── cmumps_struc.h
├── dmumps_c.h
├── dmumps_root.h
├── dmumps_struc.h
├── mumps_compat.h
├── mumps_c_types.h
├── smumps_c.h
├── smumps_root.h
├── smumps_struc.h
├── zmumps_c.h
├── zmumps_root.h
└── zmumps_struc.h
0 directories, 14 files
To remove all include and library files, run:
./uninstall-mumps.bash
Use diff -u original.file modified.file
. The -u
option stands for unified.