A tracer component is injected at the bottom of a randomly generated pore-network. It rises by advection and diffusion and finally reaches the adjacent free-flow channel, where the Navier-Stokes equations are solved. Since no external flow is imposed in the channel, the tracer spreads almost symmetrically to the left and to the right.
The simulation shows fluid flow around the DuMux logo visualised by streamlines. The computational grid is created with the DuMux binary image grid reader which makes use of the Dune grid interface implementation dune-subgrid. The flow solver is based on Newton’s method and the Navier-Stokes equations are discretised with an implicit Euler scheme in time and a staggered grid finite volume scheme in space.
Oil production simulation based on the Norne data set. Two injection wells inject water into an initially oil-saturated formation with isotropic heterogeneous permeability field. Two production wells produce oil. The grid is represented by a corner-point grid. Injection rates are approximated with a Peaceman well model. The figure is modified after Koch, Gläser, Weishaupt et al. (2020) / CC-BY-4.0 and is based on the simulation data of Schneider (2019).
Simulation of the local nuclear magnetic response of a brain tissue sample during contrast agent administration. The model is described and analysed in Koch et al. (2020). It allows to estimate the capillary wall diffusion coefficient and the contrast agent leakage if the blood-brain-barrier is damaged (e.g. multiple sclerosis, glioblastoma).
Simulation of root water uptake by a maize root system in unsaturated soil using a mixed-dimension model. The maize root system has been generated with the open-source root growth model CRootBox. The domain has periodic boundaries in horizontal direction simulating a field of maize plants. The simulation setup is adapted from Leitner et al. (2014). The mathematical model and the numerical method and is described in Koch et al. (2018).
The simulation shown in this figure mimics a two-phase flow experiment on a core sample of fractured rock. Shown are the saturation and velocity of hydrogen as it migrates through a synthetic sample that contains a number of elliptical and randomly distributed fractures (generated with the fracture network generator Frackit). In this model, the fractures are represented by two-dimensional geometries, and it is able to handle both highly-permeable as well as blocking fractures. In the setting shown in the figure, the fractures are much more permeable than the surrounding medium, which causes hydrogen to be transported rapidly through the fracture network.
These figures show two different injection strategies for thermally enhanced remediation of NAPL-contaminated heterogeneous sands. The main difference in injecting pure steam (left) on the one hand or a steam/air mixture (right) on the other hand is that addition of air involves a non-condensible gas. Although having much lower heat capacity than steam, the additional air allows for a control of temperature and can prevent re-mobilization of contaminants and a shifting of the contamination into deeper regions where it is even harder to recover. This can be seen in comparing the plots of water saturation, NAPL saturation, temperature, and the concentration of evaporated contaminant (in this case: mesitylene) in these plots.
The source code for this example uses the 3p3cni model and is provided with the dumux-lecture module, which serves as support for teaching in courses on multiphase modelling in porous media.
The figure shows the temperature distribution in an indirectly heated reactor for thermochemical heat storage during discharge. The setup is based on the experiments described by Schmidt et al. (2017). The model consists of two domains: (1) On the top, there is the 1-dimensional heat transfer channel with a single phase air flux. (2) The porous reaction bed is solved in two dimensions. The two domains of different dimension are coupled by a convective heat flux. Thus, the air flow in the heat transfer channel removes the heat released in the reactive bed and keeps the reaction running until complete conversion. Simulation results are published in Seitz et al. (2021). The pub-module containing the source code is available here.
Water is evaporating at the top of the domain from porous medium fully saturated with a saline solution. The bottom of the domain is connected to a large reservoir of saline solution which keeps the domain saturated. As a result of the evaporative water loss the salt concentration and also the liquid density at the top rises. This leads to an unstable layering as fluids of higher densities tend to sink down due to gravitational forces. Depending on different parameters as e.g. the permeability of the porous medium these instabilities occure or the salt concentration reaches the solubility limit and salt precipitates. Details on the setup and results of the simulations are published in Bringedal et al. (2022). The source code and the simulation results are openly available.
Water vapour is evaporating from a partially saturated sandy soil. The wavy surface structure mimics surface structures that can occur in a tilled soil. The simulation starts at 6 in the morning when the sun rises on the left side of the domain. Until noon, the left sides of the hills heat up due to the solar radiation while the right sides are in the shade and stay cooler. In the afternoon, the right sides of the hills heat up, leading to locally increased evaporation rates. After sunset the porous medium cools down due to evaporative cooling and conductive heat exchange with the cooler atmosphere.
The figure shows the final permeability of a microbially induced calcite precipitation (MICP) application after 24 cycles of biomineralization medium injections in a radially-symmetric domain with a highly permeable region representing a fracture. The setup corresponds to a field experiment described in Phillips et al. (2016). The biomineralization medium is injected from a central well at the inner radius of the simulation domain directly into the highly permeable layer. The simulation setup and additional results are described in more detail in Cunningham et al. (2018) and in Hommel et al. (2016). The code is available in the dumux-pub modules dumux-pub/Hommel2018a or dumux-pub/Hommel2016a.
Infiltration of CO2 through an interconnection network of fractures in a fully water saturated medium. Simulation based on a vertex-centred finite volume scheme (Box) with auxiliary terms in the balance equations to account for fracture flow (Box-DFM). The scheme is suitable for conducting fractures.
The simulation covers a 11 km long section of the river Rhine and shows flooded areas during an idealized flood event. Water flows from bottom to top. The model has a discharge boundary condition at the inlet and a stage-discharge-curve as boundary condition at the outlet.
The simulation is based on the shallow water equations (a depth-averaged, two-dimensional version of the Navier-Stokes equations). The model uses a fully implicit time discretization and a finite volume discretization in space.
Simulation of root water uptake by a lupine root system. Water flow in the surrounding soil is visualised by arrows. The lupine root system has been reconstructed from MRI data (Schröder (2014)). In the simulation, the root system geometry is approximated by a network of line segment (local root centre-line), visualised as tubes extruded with the local root radius. The root system is embedded into the three-dimensional soil domain by means of a mixed-dimension method. The mathematical model and the numerical method and is described in Koch et al. (2018).
The core expertise of DuMux is multi-phase multi-component flow in porous media: many mathematical models, constitutive relations and fluid properties are already implemented and easily extensible.
DuMux offers different finite volume schemes, such as the cell-centered Tpfa and Mpfa methods, or the vertex-centered Box method.
DuMux couples problems posed on different domains. The domains can touch or overlap, have different physics or even different dimensions.
DuMux is written in C++ using generic programming techniques. This makes the code fast and flexible. DuMux is a Dune (Distributed and Unified Numerics Environment) module.
DuMux supports parallel simulations using a distributed memory model based on MPI out-of-the-box for many models.
DuMux supports output to VTK-based file formats that are readily visualised e.g. using the open-source software ParaView.