Skip to content
Snippets Groups Projects
CHANGELOG 3.63 KiB
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.
- 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 system 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.
- 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.