Newer
Older
Notable Differences Between Dumux 2.0 and Dumux 2.1
===================================================
- The dependencies for the external dune-pdelab and boost packages
have been removed.
- Improvements to the build system:
- Better test coverage of the dependencies of libraries for the
default autotools-based build system.
- Experimental support for building Dumux using CMake. In the long
run, CMake is projected to become the default build system
- All headers can now be included without any preconditions (i.e. 'make
headercheck' works)
- Dumux now compiles without warnings if GCC is given the -pedantic flag
- Specifying run-time parameters is now possible. The mechanism allows
to use parameter files or to specify parameters directly on the
command line. Parameter input files have been added for each test application.
These can be run now without arguments (use of default parameter files)
- Fine-tuning of the Dumux property system
- PTAG() no longer required for the GET_PROP* macros (but can still be used)
- Setting property defaults has been deprecated.
- All properties set for a type tag can now be printed with their
value and the location where they where specified.
- Overhaul of the fluid framework
- The programming interface for fluid systems, fluid states and
components has been formalized and cleaned up.
- Fluid systems now have the option to cache computationally
expensive parameters if they are needed for several relations.
- Fluid systems are not concerned with the calculation of the
chemical equilibrium anymore.
- Fluid states are now centralized infrastructure instead of being
model-specific
- Constraint solvers which simplify solving thermodynamic
constraints have been introduced.
- Outflow boundary conditions have been implemented in some box models:
1p2c, 2p2c(ni) and stokes(2cni)
- Quadruple precision math is possible for gcc 4.6 or newer
- To use it add --enable-quad to the configure options and set the
type of scalar values to quad using
SET_TYPE_PROP(ProblemTypeTag, Scalar, quad);
Keep in mind that quadruple precision is meant as
a debugging tool to quickly check whether there are machine
precision related convergence problems.
- Problem and spatial parameter base classes provide model-independent
interfaces for problem and spatial parameter definition, which only
get the position in global coordinates as argument (e.g. boundaryTypesAtPos(),
etc.). This allows an easy transfer of problem definitions between implicit
and sequential models.
- New fully implicit models:
- 3p3c, 3p3cni: Isothermal and non-isothermal three-phase,
three-component models for flow and transport in porous media.
- MpNc: A model for arbitrary number of phases M > 0, and components
(N >= M - 1). This model also comes with modules for considering
energy and molecular diffusion
- stokes, stokes2c, stokes2cni: A model for the plain Stokes
equation as well as isothermal and non-isothermal Stokes models
for two-component fluids.
- Overhaul of the sequentially-coupled models:
- Common structure for cell centered standard finite volume implementations.
- Data structure overhauled to avoid large clumps of data in large-scale simulations: Each cell stores
data in its own storage object.
- Subdivision of too large assemble() methods into submethods getStorage(), getFlux() etc. By this,
improve inheritance of classes and reduction of code duplication.
- Improved conceptual seperation of the variableclass (central infrastructure), data storage, transport
model and pressure model.
- Use of the common Dumux infrastructure also used by the implicit models (BoundaryTypes, etc.)
=> Significant improvement in speed and comfort in debugging
- New decoupled models:
- 2padaptive: Grid-adaptive standard finite volume two-phase model for non-conforming quadrilateral grids.