We happily announce today's release of DuMux 3.3.
Differences Between DuMux 3.3 and DuMux 3.2
Improvements and Enhancements
- Requirements: DuMux now requires Dune >=2.7 and CMake >= 3.13.
-
New way to use material laws: The usage of laws for pc-Sw and kr-Sw has been completely revised. A caller does not have to pass a
parameters
object to the laws anymore. ThespatialParams
now provide afluidMatrixInteraction
function which bundles an arbitrary number of different interaction laws such as a pc-Sw and kr-Sw curve and interfacial areas. New pre-cached spline laws were added which can help to increase efficiency. The usage of the old interface is deprecated and warnings will be raised. The old interface will be removed after the release of 3.3. - New example: We have added another free-flow example dealing with lid-driven cavity flow.
- Install script written in Python: The DuMux install script has been translated to Python to improve portability. The old shell script will be removed after release 3.3.
- Improved velocity reconstruction: The velocity reconstruction for immiscible porous-media models has been improved, leading to slightly different velocity fields in the vicinity of Neumann boundaries.
-
Python bindings (experimental): Basic support for Python bindings has been added. Python bindings are an experimental feature
and might undergo unannounced API changes until further notice. This concerns the files in the folders
python
anddumux/python
. To activate- add
-DDUNE_ENABLE_PYTHONBINDINGS=TRUE
and-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
to your CMAKE_FLAGS and run dunecontrol - run
python3 dune-common/bin/setup-dunepy.py
- adapt your PYTHONPATH environment variable as described here
- add
-
fmt-library: We now include a basic version of the fmt-library which implements
std::format
(coming with C++20) without the need for C++20. In order to use this, include<dumux/io/format.hh>
.format
,format_to
,format_to_n
,formatted_size
are available in theDumux::Fmt
namespace. The string formatting is documented here and follows the Python string formatting rules. The functions are documented on cppreference. - RANS: The RANS models now include variable densities. Compositional or nonisothermal RANS models could produce slightly different, more accurate, results.
Immediate interface changes not allowing/requiring a deprecation period:
- Flash/Constraintsolver: The flashes depending on material laws are immediately required to use new-style material laws (fluidMatrixInteraction interface in spatialparams)
-
Box interface solver: The box interface solver immediately requires the new material law interface without deprecation period. Use the new class
BoxMaterialInterfaces
and update your spatial params to use the new fluidmatrixinteraction interface to be able to use the box interface solver in version 3.3. - For the "sequential" models, the property
BoundaryTypes
has been simply renamed toSequentialBoundaryTypes
- Quadmath: Dumux::Quad has been removed without deprecation. Use Dune::Float128 instead.
- Within the RANS group, two additional runtime parameters have been included 'IsFlatWallBounded' and 'WriteFlatWallBoundedFields'. For both the K-Epsilon and Zero-eq RANS models the 'IsFlatWallBounded' runtime parameter should be set as True, as wall topology is not supported for these models with our geometric constraints. If not set as true, the geometry will be checked before the model is run. If either the runtime parameter or the geometry check indicate non-flat walls, the model will terminate. To add FlatWallBounded specific output to the vtk output, WriteFlatWallBoundedFields can be set as True.
- 1d3d coupling: The kernel coupling manager has been replaced with the one from Koch et al (2020) JCP https://doi.org/10.1016/j.jcp.2020.109370
- 1d3d coupling: The average and surface coupling managers has been updated with a slightly more accurate version to compute the stencils and the average operator. The results might differ a bit when using coarse grids. However, both version are expected to converge to the same result with grid refinement.
Deprecated properties/classes/functions/files, to be removed after 3.3:
- The property
BoundaryTypes
has been deprecated. The boundary condition type can now be deduced from the problem type usingProblemTraits
.
Deleted classes/files, property names, constants/enums:
- Everything that has been deprecated before release 3.2 has been removed.
- All of the geometry headers previously saved in
dumux/common/geometry
have been relocated todumux/geometry
. The headers indumux/common/geometry
are deprecated and will be removed after 3.3. The geometry tests have been moved fromtest/common/geometry
andtest/common/boundingboxtree
totest/geometry
.
Other noteworthy changes:
- Releases earlier than 3.0 are no longer automatically tested or supported.