Operating Systems

DuMux builds and runs on Linux and Mac operating systems. If you use Windows, we recommend the Ubuntu bash on Windows. Alternatively, you can try to employ MinGW, Cygwin or a Linux Virtual Machine.


DuMux depends on DUNE. The dependencies of DUNE are described in the DUNE installation notes. In addition to the DUNE requirements, DuMux asks for a more modern C++ compiler (GCC >= 4.9 or Clang >= 3.5). You can also have a look at the more detailed explanations in our handbook.

You can obtain the required DUNE modules in form of binary packages for Debian, Ubuntu and openSUSE, see the DUNE download page. Alternatively, you can use Git and download the modules by, e.g., typing inside a freshly created directory

for MOD in common geometry grid localfunctions istl; do
git clone -b releases/2.5 https://gitlab.dune-project.org/core/dune-$MOD.git;

Building DuMux

Download and unpack a DuMux release tarball, or git-clone a DuMux folder. DuMux is built like any other DUNE module. For example, if the DUNE core modules and DuMux are folders in the same directory, you can build everything by

./dune-common/bin/dunecontrol --opts=dumux/debug.opts all

More details on the DUNE build system can be found in the DUNE installation notes.

DUNE and DuMux rely heavily on compiler optimization. The speed difference between running a compiler-optimized versus a non-optimized DuMux executable can easily exceed a factor of 10. Use dumux/optim.opts instead of dumux/debug.opts for an optimized build.

Running a DuMux Test

All numerical models of DuMux are compiled in a build-folder (default: build-cmake) and tested in the test subfolder. For example, to run the fully-implicit immiscible two-phase test,

cd build-cmake/test/porousmediumflow/2p/implicit
make test_box2p

Besides console output, DuMux produces VTK output files that can be visualized by, e.g., Paraview.

If you want to understand more about DuMux, proceed to the Tutorial section of the handbook or to the documentation.