We happily and proudly announce today's release of DuMuX 3.0! It took us two years to cook it up, so you better like it!
You may get the new release via
git clone -b releases/3.0 https://git.iws.uni-stuttgart.de/dumux-repositories/dumux.git
DuMuX 3.0 is a major version update. It is not backward compatible in all aspects to 2.12. The following minor version updates will be, as before for the DuMuX 2-series, always backward compatible to at least the last minor version update. DuMuX 3.0 is based on Dune 2.6 and is expected to run with the current Dune master.
The tutorial has been replaced by the new module
dumux-course which is accessible at https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course. We recommend new users and also users experienced with DuMuX 2.X to clone the course and have a look at the exercises in there.
There are numerous improvements and enhancements. On the general side, there are, among many others:
New style main files: The sequence of simulation steps was linearized, meaning that each step is visible in the program's main file. In the new main files, one can clearly see the io, initialization, assembly, solving, update, time loop, etc., of the program. This renders it possible to customize the program flow to the individual needs in a much easier and much more transparent way.
Property system and runtime parameters: All macros have been replaced by native C++!
TypeTag templates: In order to avoid unnecessary dependencies and allow to share class instantiations between problems using different TypeTags, we replaced the single TypeTag parameter by a small number of specific template arguments for many classes. On the surface, this is visible in the SpatialParams classes. We encourage everyone to avoid TypeTag as a template argument for class templates, apart from the top problem class.
Assembly: The assembler can now assemble implicit and explicit Euler time discretizations.
In terms of models, physics and methods, also a lot has happened, of course all to the better. A small subset is:
MPFA schemes: The new core comes with a framework for MPFA schemes, in which currently the only available scheme is the MPFA-O scheme. It can be used in conjunction with any DuMuX model and also works on surface grids.
2pdfmmodel from version 2.12 has been generalized such that it can be used on any DuMuX model and in both two and three dimensions.
Tracer transport: A new model for tracer transport with a given flow field has been added. The model can be also used to implement sequentially coupled simulations, or iterative solvers where flow and transport are decoupled / weakly coupled.
Mineralization: An adapter model for mineralization has been added and can be used with all porousmediumflow models. A balance for the solid volume fraction of precipitating, adsorbed, or absorbed substances is added to the existing equations.
Multidomain: DuMuX 3.0 introduces a new multidomain framework which does no longer depend on
dune-multidomainand can be used for the coupling of an arbitrary number of subdomains. The sub-domains can be regions in which different sets of equations are solved and/or which have different dimensionalities.
Free-flow models: The previous Navier-Stokes model using the box method has been replaced by one that employs a staggered grid discretization. The new method does not require any stabilization techniques.
A more extended list of changes and more detailed explanations are provided at https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/blob/master/CHANGELOG.md.
We would be very happy to help you with migrating your code. To this end, have a look at https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/wikis/Hints/Upgrade-to-Dumux-3.