Newer
Older
Differences Between DuMuX 2.3 and DuMuX 2.4
===================================================
* IMPROVEMENTS and ENHANCEMENTS:
* IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
* Deprecated CLASSES/FILES, to be removed after 2.4:
* Deprecated PROPERTY NAMES, to be removed after 2.4: BEWARE: The compiler will
not print any warning if a deprecated property name is used.
* Deprecated CONSTANTS/ENUMS, to be removed after 2.4: BEWARE: The compiler will
not print any warning if a deprecated constant/enum is used.
* Deprecated public MEMBER VARIABLES, to be removed after 2.4: BEWARE: The
compiler will not print any warning if a deprecated public member variable
is used.
* Deprecated MEMBER FUNCTIONS, to be removed after 2.4:
* DELETED classes/files, property names, constants/enums,
member functions/variables, which have been deprecated in DuMuX 2.3:
Everything listed as deprecated below has been removed.
Differences Between DuMuX 2.2 and DuMuX 2.3
===================================================
* IMPROVEMENTS and ENHANCEMENTS:
- A fully implicit two-phase discrete-fracture-matrix model has been added,
see test/implicit/2pdfm.
- Almost all porous media fully implicit models now can either use a
vertex-centered (box) or a cell-centered spatial discretization. The choice
of the spatial discretization method is controlled by deriving the problem
type tag either from BoxModel or CCModel. This allows for a uniform problem
description, as long as the boundaryTypesAtPos and dirichletAtPos methods
can be used. By evaluating the compile-time property ImplicitIsBox, it is
easily possible to separately handle the different discretizations inside
am common method. See the tests in test/implicit for examples.
Correspondingly, the directory structure has been adapted.
Old: New:
dumux/ dumux/
boxmodels/ implicit/
common/ common/
1p/ box/
1p2c/ cellcentered/
2p/ 1p/
... ...
test/ test/
boxmodels/ implicit/
1p/ 1p/
test_1p test_box1p
... test_cc1p
...
- A backend for the ISTL AMG solver has been included, based on the
corresponding DUNE-PDELab backends. It can be used for the fully
implicit and the decoupled models, see test_*1pwithamg in
test/implicit/1p and test_impeswithamg in test/decoupled/2p.
DUNE-PDELab and possibly DUNE-ISTL have to be patched, see the file

Bernd Flemisch
committed
README in the patches directory.
- The decoupled models have been parallelized, see test_impeswithamg in
test/decoupled/2p. They work in parallel only if the AMGBackend is used
as linear solver. No dynamic loadbalancing can be done yet.
- The MPNC model can use either the most wetting or the most non-wetting phase
pressure as primary variable. This is controlled via the property
"PressureFormulation."
- The table of available parameters has been improved, see
http://www.dumux.org/doxygen-stable/html-2.2/a00838.php
- Improved handling of the conductive heat fluxes in the non-isothermal implicit
two-phase models, see the problem files in test/implicit/2p(2c)ni.
- Introduced new selection of start/stop messages.
* IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
- The property Salinity used in the BrineCO2FluidSystem
has been renamed to ProblemSalinity.
- The matrixHeatFlux(...) and boundaryMatrixHeatFlux(...) methods in the spatial
parameters of nonisothermal implicit twophase models have been removed.
Instead, the computation of the effective thermal conductivity has been sourced
out to the fluidmatrixinteractions in a separate file
dumux/material/fluidmatrixinteractions/thermalconductivitysomerton.hh, which
can be exchanged. The spatial parameters file needs a method
thermalConductivitySolid(...), where the thermal conductivity of the solid
material only is specified. The rest is computed in the respective
flux variables.
* Deprecated CLASSES/FILES, to be removed after 2.3:
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
- The following headers in dumux/boxmodels/ have been deprecated and forward
to the corresponding headers in dumux/implicit/box:
boxassembler.hh, boxelementvolumevariables.hh, boxlocalresidual.hh,
boxpropertydefaults.hh, boxelementboundarytypes.hh, boxfvelementgeometry.hh,
boxproperties.hh, intersectiontovertexbc.hh
- All headers in the following subdirectories of dumux/boxmodels have been
deprecated and forward to the headers in the corresponding subdirectories
of dumux/implicit:
1p, 1p2c, 2p, 2p2c, 2p2cni, 2pdfm, 2pni,
3p3c, 3p3cni, co2, co2ni, mpnc, richards
- Some box-specific classes "Box..." in dumux/boxmodels/common could be
completely replaced by unified "Implicit..." classes in
dumux/implicit/common:
...DarcyFluxVariables, ...darcyfluxvariables.hh
...ForchheimerFluxVariables, ...forchheimerfluxvariables.hh
...LocalJacobian, ...localjacobian.hh
...Model, ...model.hh
...PorousMediaProblem, ...porousmediaproblem.hh
...Problem, ...problem.hh
...VolumeVariables, ...volumevariables.hh
- The box-specific spatial parameter classes BoxSpatialParams... in
dumux/material/boxspatialparams....hh have been deprecated in favor of
ImplicitSpatialParams... in dumux/material/implicitspatialparams....hh.
- The GridCreatorheaders from dumux/common have been moved to dumux/io:
cubegridcreator.hh, dgfgridcreator.hh, simplexgridcreator.hh
* Deprecated PROPERTY NAMES, to be removed after 2.3: BEWARE: The compiler will
not print any warning if a deprecated property name is used.
- CompositionFromFugacitiesSolver has been renamed to Constraintsolver.
* Deprecated public MEMBER VARIABLES, to be removed after 2.3: BEWARE: The
compiler will not print any warning if a deprecated public member variable
is used.

Bernd Flemisch
committed
- numFAP and numSCV in Box(CC)FVElementGeometry have been renamed to
numFap and numScv, respectively.
* Deprecated MEMBER FUNCTIONS, to be removed after 2.3:
- boundaryMatrixHeatFlux, markVertexRed and relativeErrorVertex
from ImplicitSpatialParams, ImplicitAssembler and ImplicitModel,
respectively. In favor of using
thermalConductivitySolid (see above), markDofRed and relativeErrorDof,
respectively.
* DELETED classes/files, property names, constants/enums,
member functions, which have been deprecated in DuMuX 2.2:
Everything listed as deprecated below has been removed.
Differences Between DuMuX 2.1 and DuMuX 2.2
===================================================

Bernd Flemisch
committed
* IMPROVEMENTS and ENHANCEMENTS:
- Two new fully implicit models dedicated to simulate compositional
(non-isothermal) CO2-brine systems have been added, together with
corresponding components and a fluid system. See test/boxmodels/co2(ni)
for details. These tests also illustrate the usage of element and vertex
parameters as well as boundary ids provided by DGF files for setting
permeability and porosity as well as boundary conditions.
- Decoupled Models: An h-adaptive model using an MPFA L-method was added
that simulates 2p and 2p2c flow on unstructured grids with hanging nodes
in two dimensions. See test/decoupled/2p(2c) for details.
- All fully implicit porous media models are now capable of employing
the Forchheimer equation as an alternative to the commonly used
Darcy law. See test_forchheimer*p in test/boxmodels/mpnc for details.
- The Stokes models are now able to simulate the full Navier-Stokes
equations for momentum transport. See test/freeflow/navierstokes
for details.
- The fully implicit models have been (partially) generalized to allow
for a cell-centered discretization in addition to the default
vertex-centered (box) one. Cell-centered fully implicit 2p and 2p2c
models are already available in the developers part of Dumux. Further
generalizations and the inclusion in the stable part are planned for
Dumux 2.3.
- Several model-specific features and classes have been unified, like
the calculation of the Darcy velocity for the fully implicit flux
variables, or the temperature, gravity, and spatial parameter
functionalities of the fully implicit problems. Moreover, many
names have been made more consistent. This includes the naming
and grouping of several parameters and corresponding properties,
the indexing of phases and components, and the preference of the
partial name "params" over "parameters." For details, see also the
deprecations listed below.
- Added compiler support for GCC 4.7 and Clang 3.1.
* IMMEDIATE INTERFACE CHANGES not allowing a deprecation period:
- From Dune 2.2 on, FieldVector::size is a method rather than an enum value.
It is mandatory to add the flag --enable-fieldvector-size-is-method to the
CONFIGURE_FLAGS. An example is given in the opts file dumux/debug.opts.
- Implicit models: TwoPIndices, TwoPNIIndices, and RichardsIndices
additionally get TypeTag as template parameter. If the Indices are not
obtained via the property, this has to be adapted.

Bernd Flemisch
committed
- Implicit models: All model-specific computeFlux functions in
...localresidual.hh have to get an additional bool parameter onBoundary,
which is by default set to false. If outflow conditions should
be properly implemented, also the constructor of the flux variables in
...fluxvariables.hh has to get the additional argument and the
class has to be adapted to deal with boundary faces. See FS#117 and #99
for details.

Benjamin Faigle
committed
* Deprecated CLASSES/FILES, to be removed after 2.2:
- Model specific base box problems: The common functionality has been
collected in PorousMediaBoxProblem in
dumux/boxmodels/common/porousmediaboxproblem.hh. The problem can be derived
from PorousMediaBoxProblem, instead of the model specific base problem:
OnePBoxProblem, dumux/boxmodels/1p/1pproblem.hh,
OnePTwoCBoxProblem, dumux/boxmodels/1p2c/1p2cproblem.hh,
TwoPProblem, dumux/boxmodels/2p/2pproblem.hh,
TwoPNIProblem, dumux/boxmodels/2pni/2pniproblem.hh,
TwoPTwoCProblem, dumux/boxmodels/2p2c/2p2cproblem.hh,
TwoPTwoCNIProblem, dumux/boxmodels/2p2cni/2p2cniproblem.hh,
ThreePThreeCProblem, dumux/boxmodels/3p3c/3p3cproblem.hh,
ThreePThreeCNIProblem, dumux/boxmodels/3p3cni/3p3cniproblem.hh,
MPNCProblem, dumux/boxmodels/mpnc/mpncproblem.hh.
- All "...SpatialParameters" base classes have been replaced by
"...SpatialParams" classes:
BoxSpatialParameters, dumux/material/spatialparameters/boxspatialparameters.hh,
BoxSpatialParametersOneP, dumux/material/spatialparameters/boxspatialparameters1p.hh,
FVSpatialParameters, dumux/material/spatialparameters/fvspatialparameters.hh,
FVSpatialParametersOneP, dumux/material/spatialparameters/fvspatialparameters1p.hh.
- Due to the unification of flux variables for the fully implicit models,
some model-specific flux variables have become obsolete:
OnePFluxVariables, dumux/boxmodels/1p/1pfluxvariables.hh,
TwoPFluxVariables, dumux/boxmodels/2p/2pfluxvariables.hh,
RichardsFluxVariables, dumux/boxmodels/richards/richardsfluxvariables.hh.
- Two components have new names and locations in dumux/material/components:
SimpleDNAPL, simplednapl.hh -> DNAPL, napl.hh
Oil, oil.hh -> LNAPL, lnapl.hh
- Some MPFA-O method files/classes have been moved to a new subdirectory
"omethod" in dumux/decoupled/2p/diffusion/fvmpfa:
fvmpfaopressure2p.hh, fvmpfaovelocity2p.hh, fvmpfaopressureproperties2p.hh
- DUMUX_UNUSED is deprecated and will be removed after 2.2. It should be
replaced by the upstream version DUNE_UNUSED.
- DUMUX_DEPRECATED_MSG is deprecated and will be removed after 2.2. It should
be replaced by the upstream version DUNE_DEPRECATED_MSG.
* Deprecated PROPERTY NAMES, to be removed after 2.2: BEWARE: The compiler will
not print any warning if a deprecated property name is used.
- The "SpatialParameters" property has been renamed to "SpatialParams".
- The model specific "...Indices" property has been renamed to "Indices".
* Deprecated CONSTANTS/ENUMS, to be removed after 2.2: BEWARE: The compiler will
not print any warning if a deprecated constant/enum is used.
- In the 2p2c/ni and 3p3c/ni models, all indices related to phase and
components can be pre/suffixed with "w", "n" and,
for three phases, with "g".
boxmodels/2p2c/...: "l", "g" pre/suffixes have been replaced by "w", "n".
boxmodels/3p3c/...: "c", "a" pre/suffixes have been replaced by "n", "g".
* Deprecated MEMBER FUNCTIONS, to be removed after 2.2:
- Spatial parameters: The spatialParameters member functions of the base
problems have been replaced by spatialParams:
dumux/boxmodels/common/porousmediaboxproblem.hh,
dumux/decoupled/1p/diffusion/diffusionproblem...hh,
dumux/decoupled/2p/impes/impesproblem2p.hh,
dumux/decoupled/2p/transport/transportproblem2p.hh.
- Flux variables: Renaming of members
"...AtIP" -> "...",
"concentration..." -> "massFraction...",
"molarConc..." -> "moleFraction..."
The "massFraction..." members have been deprecated, instead
"moleFraction..." should be used.
Affected files:
dumux/boxmodels/1p2c/1p2cfluxvariables.hh,
dumux/boxmodels/2p2c/2p2cfluxvariables.hh,
dumux/boxmodels/mpnc/.../...fluxvariables.hh,
dumux/freeflow/stokes.../stokes...fluxvariables.hh.

Bernd Flemisch
committed
- Box models: The primaryVarWeight() functions are no longer used for the
evaluation of the relative error.
- Element and FVElementGeometry: The elem_() and fvElemGeom_() member function
of BoxLocalResidual have been replaced by element_() and fvGeometry_().
- Primary variables: All "...primaryVar/s" member functions have been replaced
by "...priVar/s":
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
dumux/boxmodels/common/boxlocalresidual.hh,
dumux/boxmodels/common/boxvolumevariables.hh.
- Start functionality in dumux/common/start.hh: printUsageDGF and
printUsageGrid are no longer needed.
* DELETED member functions, which have been deprecated in DuMuX 2.1:
- dumux/material/spatialparameters/boxspatialparameters1p.hh:
extrusionFactorScv and extrusionFactorScvf, now part of the volume variables
- dumux/material/idealgas.hh:
concentration, replaced by molarDensity
- dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh:
pC(const Params ¶ms, Scalar Sw, const Scalar temperature)
- dumux/common/start.hh:
startFromDGF, startWithGrid, startWithParameters, all replaced by start
- dumux/common/spline.hh:
set(const ScalarArray&, const ScalarArray&, Scalar, Scalar), replaced by setXYArrays,
set(const PointArray&, Scalar, Scalar), replaced by setArrayOfPoints
- dumux/common/variablelengthspline_.hh, dumux/common/fixedlengthspline_.hh:
various set routines, replaced by more descriptive names
- dumux/io/vtkmultiwriter.hh:
VtkMultiWriter(const std::string&, std::string), replaced by VtkMultiWriter(const GridView&, ...),
beginTimeStep, replaced by beginWrite,
createField, replaced by allocateManagedBuffer,
addVertexData, replaced by attachVertexData,
addCellData, replaced by attachCellData,
endTimeStep, replaced by endWrite
- dumux/decoupled/2p2c/2p2cproblem.hh:
IMPETProblem2P2C(const GridView&, bool) replaced by IMPETProblem2P2C(TimeManager&, ...),
IMPETProblem2P2C(..., SpatialParameters&, ...) replaced by IMPETProblem2P2C(TimeManager&, ...),
initSat(const GlobalPosition&, const Element&) replaced by initSat(const Element&)
initConcentration(const GlobalPosition&, const Element&) replaced by initConcentration(const Element&)
- DUMUX_DEPRECATED has been removed.

Christoph Grüninger
committed
Notable Differences Between DuMuX 2.0 and DuMuX 2.1
===================================================
- The thermodynamics framework has been overhauled:
- The programming interfaces 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 charged with the computation 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 for the
fully-implicit models 1p2c, 2p2c(ni) and stokes(2cni).
- The problem and spatial parameter base classes also provide optional
model-independent interfaces. These methods only get the position in
global coordinates as argument and are named *AtPos()
(e.g. boundaryTypesAtPos()). This allows an easy transfer of problem
definitions between implicit and sequential models.
- The following fully-implicit models have been added:
- 3p3c, 3p3cni: Isothermal and non-isothermal three-phase,
three-component models for flow and transport in porous media
based on primary variable switching.
- MpNc: A model for arbitrary number of phases M > 0, and components
(N >= M - 1 >= 1) for flow and transport in porous media. This
model also comes with an energy and a molecular diffusion module.
- stokes, stokes2c, stokes2cni: Models for the plain Stokes
equation as well as isothermal and non-isothermal Stokes models
for two-component fluids.
- The sequentially-coupled models have been overhauled:
- A common structure for cell centered standard finite volume
implementations has been introduced.
- The data structures where overhauled to avoid large clumps of data
in large-scale simulations: Each cell stores data in its own
storage object.
- The too large assemble() methods have been split into submethods
getStorage(), getFlux() etc. By this, inheritance of classes has
been improved and code duplication was reduced.
- The conceptual seperation of the "VariableClass" (central
infrastructure), data storage, transport model and pressure model
has been improved.
- More of infrastructure is now shared with the implicit models
(e.g. the BoundaryTypes). This results in significant performance
improvements and makes debugging easier.
- The 2padaptive sequentially coupled model has been added. This model
implements a grid-adaptive finite volume scheme for immiscible
two-phase flow in porous media on non-conforming quadrilateral
grids.

Christoph Grüninger
committed
- The dependencies for the external dune-pdelab and boost packages
have been removed.
- The build system has received major improvements:
- There is now much better test coverage of build-time dependencies
on packages for the default autotools-based build system.
- Experimental support for building DuMuX using CMake has been much
improved. In the long run, CMake is projected to become the
default build system.
- All headers can now be included without any preconditions.
- DuMuX now compiles without warnings if the -pedantic flag used for GCC.

Christoph Grüninger
committed
- Specifying run-time parameters is now possible. The mechanism allows
to use parameter files or to specify parameters directly on the
command line and fallback parameter input files have been added for
each test application. As a consequence, applications can be run
now without specifying any command line arguments.
- The DuMuX property system has been fine-tuned:
- Encapsulating property names with the PTAG() is no longer required
for the GET_PROP* macros (but is still allowed).

Christoph Grüninger
committed
- Setting property defaults has been deprecated.
- All properties defined for a type tag can now be printed. Also,
their value and the location in the source where they where
specified is included in the output.
- Using quadruple precision math has been made possible for GCC 4.6 or newer:
- To use it, the configure option '--enable-quad' needs to be added
and the type of scalar values needs to be changed to 'quad'. This
can be done in the problem file using

Christoph Grüninger
committed
SET_TYPE_PROP(YourProblemTypeTag, Scalar, quad);

Christoph Grüninger
committed
It should be noted, that performance is very poor when using
quadruple precision arithmetic. This feature is primarily meant as

Christoph Grüninger
committed
a debugging tool to quickly check whether there are machine
precision related convergence problems.