Top Level
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.mdfile 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- dumuxfolder (see below), the- referencesfolder 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.
- geometry: Bounding boxes, intersections, distances, ...
- io: In-/output functionalities such as restart files, gnuplot interface, VTKWriter extensions and grid managers.
- linear: Linear solver backends.
- material: Constitutive relations and their parameters, definition of components and fluid/solid phases.
- multidomain: Common infrastructure to couple multiple domains of possibly different physics, dimensions and/or locations.
- nonlinear: Newton's method.
- parallel: Helper files for parallel simulations.
- porenetwork: Models describing a porous medium as a set of pore bodies interconnected by pore throats.
- porousmediumflow: Models for describing flow and mass/momentum/energy transport in a porous medium on the Darcy scale.
- python: Definition of Python bindings for C++ functionalities.
🛠 Edit above doc on GitLab