DuMux has the following folder structure, which is similar to other DUNE modules.
bin: executable scripts (Python/Bash) and helper tools, e.g. used for the automatic testing, post-processing, installation
cmake: the configuration options and build system files
doc: files necessary for the Doxygen documentation and various logos
dumux: the main folder, containing the source files. See below for more details.
examples: well-documented examples of applying DuMux to typical simulation scenarios of different complexity. The example documentation is best viewed with a browser via GitLab. In the README.md file of each example, the setup is explained and the code is presented and described in detail.
test: unit tests, integration tests and systems tests for each numerical model. The folder structure mimics the structure of the dumux folder (see below), the references folder contains solutions for the automatic testing. Each system (end user) test describes a full simulation. The setup usually consists of a main file (main.cc), the problem definition (problem.hh) specifying initial and boundary conditions, and a runtime parameter input file params.input. Often spatially-dependent parameters are defined in a separate header (spatialparams.hh).
The Folder dumux
adaptive: Data transfer between grid views, adaptation indicators.
assembly: Matrix assembler and residual calculation for all discretization methods.
common: Property system, base classes, boundary conditions, time stepping, splines, dimensionless numbers, type traits, ...
discretization: Infrastructure for discretizations (box, cell-centered, staggered, ...).
experimental: New features, may undergo disruptive changes.
flux: Calculation of advective and diffusive fluxes for different discretization schemes.
freeflow: Single-phase free flow models using Navier-Stokes and eddy-viscosity based Reynolds-averaged Navier-Stokes turbulence models, and shallow water equation model.
geomechanics: Elastic and poro-elastic geomechanics models.