version 3.9-dev
External libraries

The libraries described in the following provide additional functionality but are not necessary to install and work DuMux. If you are going to use an external library, check the information provided on the DUNE website. The DUNE website provides information for modules providing grid implementations or other extension modules.

Installing an external library can require additional libraries which are also used by DUNE. For some libraries, such as BLAS or MPI, multiple versions can be installed on the system. Make sure that it uses the same library as DUNE when configuring the external library.

Some of the libraries are then compiled within that directory and are not installed in a different place, but DUNE may need to know their location. See installation instructions for tips on how to install external libraries.

In the following grouped lists, you can find some external modules and external libraries.

Grid managers

Solver libraries

  • SuperLU: External library for solving linear equations. SuperLU is a general purpose library for the direct solution of large, sparse, non-symmetric systems of linear equations. Download:
  • UMFPack: External library for solving linear equations. It is part of SuiteSparse. See: On Debian/Ubuntu you can install the package libsuitesparse-dev.

Parallel computing (distributed memory)

  • MPI: The distributed parallel version of DUNE and also some of the external dependencies need MPI when they are going to be built for parallel computing. OpenMPI and MPICH in a recent version have been reported to work.

Parallel computing (shared memory)

If one of the following libraries is installation, multi-threaded code is enabled in DuMux:

The chosen backend can be set by passing the variable DUMUX_MULTITHREADING_BACKEND to CMake, or by modifying it in the CMake cache (in dumux/build-cmake run ccmake .). When running dunecontrol or CMake, the output contains a line like

-- Dumux multithreading backed: TBB

which in this case shows that the selected backend is TBB.

Linear algebra libraries

The following are dependencies of some of the used libraries. You will need them depending on which modules of DUNE and which external libraries you use.

  • BLAS: SuperLU makes use of BLAS. Thus install OpenBLAS, GotoBLAS2, ATLAS, non-optimized BLAS or BLAS provided by a chip manufacturer. Take care that the installation scripts select the intended version of BLAS.
  • METIS and ParMETIS: This are dependencies of ALUGrid and can be used with UG, if run in parallel.