CHANGELOG 37.5 KB
Newer Older
Bernd Flemisch's avatar
Bernd Flemisch committed
1
2
Differences Between DuMuX 2.6 and DuMuX 2.7
===================================================
Bernd Flemisch's avatar
Bernd Flemisch committed
3

Bernd Flemisch's avatar
Bernd Flemisch committed
4
5
6
7
8
9
10
* IMPROVEMENTS and ENHANCEMENTS:
  - The terminology for the Newton method has been improved according to FS#238.
    In particular, what has been referred to as "relative error" is now termed
    "maximum relative shift", while "absolute error" has been renamed to
    "residual reduction". This is particularly important, if corresponding
    parameters or properties are set, see below.

Bernd Flemisch's avatar
Bernd Flemisch committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
* IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
  - Before, the "heatCapacity" function in the spatial parameters and volume
    variables of the implicit nonisothermal models was a misnomer, since it
    returned an effective quantity, namely,
    heatCapacity*density*(1 - porosity) in [J/(K m^3)].
    Except for mpnc, which resulted in an additional inconsistency.
    Corresponding to the decision documented in FS#216, the function has been
    renamed to "solidHeatCapacity" and returns always the "true" (non-effective)
    heat capacity in [J/(kg K)]. This requires an additional function
    "solidDensity" which returns the mass density of the porous matrix.
    Moreover, the functions "thermalConductivitySolid/Fluid" are renamed to
    "solid/fluidThermalConductivity". The decision to prepend with "solid/fluid"
    rather than to append is motivated by consistency with components and fluid
    systems, where "gas" and "liquid" are always prepended to the corresponding
    function names.
    Therefore, it might be necessary to adapt your thermal solid parameters in
    the spatialparams file such that they offer functions "solidHeatCapacity",
    "solidDensity" and "solidThermalConductivity". See
    test/implicit/2p2c/injectionspatialparams.hh for an example.

Bernd Flemisch's avatar
Bernd Flemisch committed
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  - Due to the change in the Newton terminology (see above), there exist two
    backward-compatibility breakages:
    . If a model re-implements the function "relativeErrorDof", it has to be
      renamed to "relativeShiftAtDof". See dumux/implicit/implicitmodel.hh for
      an example.

    . If a NewtonController re-implements the function "newtonUpdateRelError",
      it has to be renamed to "newtonUpdateShift". See
      dumux/nonlinear/newtoncontroller.hh for an example.

* Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.7: BEWARE: The
  compiler will not print any warning if a deprecated property or parameter name
  is used. However, a run-time warning should appear in the summary lines after
  the corresponding run.
  - Corresponding to the improved Newton terminology, the following properties
    (prepended with "Newton") and parameters (in the group "Newton") are
    renamed:
    AbsTolerance -> ResidualReduction
    EnableAbsoluteCriterion -> EnableResidualCriterion
    RelTolerance -> MaxRelativeShift
    EnableRelativeCriterion -> EnableShiftCriterion
    SatisfyAbsAndRel -> SatisfyResidualAndShiftCriterion

Bernd Flemisch's avatar
Bernd Flemisch committed
54
* Deprecated CLASSES/FILES, to be removed after 2.7:
55
56
  - CellData2P2Cmultiphysics, replaced by CellData2P2CMultiPhysics

Bernd Flemisch's avatar
Bernd Flemisch committed
57
58
59
60
61
62
63
* Deprecated MEMBER FUNCTIONS, to be removed after 2.7:
  - The functions "heatCapacity", "densitySolid" (mpnc only) and
    "thermalConductivitySolid/Fluid" in the VolumeVariables of the nonisothermal
    implicit porous-media models: use "solidHeatCapacity", "solidDensity" and
    "solid/fluidThermalConductivity" instead. See also the immediate interface
    changes above.

Bernd Flemisch's avatar
Bernd Flemisch committed
64
65
66
67
68
69
70
71
72
  - In dumux/implicit/common/implicitmodel.hh and
    dumux/geomechanics/el2p/elp2basemodel.hh:
    "relativeErrorDof" -> "relativeShiftAtDof"

  - In dumux/nonlinear/newtoncontroller.hh:
    "setRelTolerance" -> "setMaxRelativeShift"
    "setAbsTolerance" -> "setResidualReduction"
    "newtonUpdateRelError" -> "newtonUpdateShift"

73
74
75
76
  - The 1p2c volume variables no longer use the method tortuosity() from
    spatial params class, the value is now calculated within the effective
    diffusivity model. Thus the method is deprecated in the spacial params
    classes FVSpatialParamsOneP and ImplicitSpatialParamsOneP.
Bernd Flemisch's avatar
Bernd Flemisch committed
77

Bernd Flemisch's avatar
Bernd Flemisch committed
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
* Deprecated protected MEMBER VARIABLES, to be removed after 2.7: BEWARE: Older
  compilers will not print any warning if a deprecated protected member variable 
  is used.
  - In dumux/nonlinear/newtoncontroller.hh:
    "error_" -> "shift_"
    "lastError_" -> "lastShift_"
    "tolerance_" -> "shiftTolerance_"
    "absoluteError_" -> "reduction_"
    "lastAbsoluteError_" -> "lastReduction_"
    "initialAbsoluteError_" -> "initialResidual_"
    "absoluteTolerance_" -> "reductionTolerance_"
    "enableRelativeCriterion_" -> "enableShiftCriterion_"
    "enableAbsoluteCriterion_" -> "enableResidualCriterion_"
    "satisfyAbsAndRel_" -> "satisfyResidualAndShiftCriterion_"

Bernd Flemisch's avatar
Bernd Flemisch committed
93
94
95
96
* DELETED classes/files, property names, constants/enums, 
  member functions, which have been deprecated in DuMuX 2.6:
  Everything listed as deprecated below has been removed.

Thomas Fetzer's avatar
Thomas Fetzer committed
97
98
99
100
* DELETED non-isothermal folders in dumux/implicit and test/implicit. A
  non-isothermal test case can now be set up with the generic non-isothermal model,
  see changes between (2.5 and 2.6)

Bernd Flemisch's avatar
Bernd Flemisch committed
101

102
103
104
105
Differences Between DuMuX 2.5 and DuMuX 2.6
===================================================

* IMPROVEMENTS and ENHANCEMENTS:
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
133
134
135
136
  - For the non-isothermal porous media models, the energy equation is
    implemented in a more generic way for all models in
    dumux/implicit/nonisothermal. The existing TypeTag names like TwoPNI stay
    the same. If a new non-isothermal model should be used, it is important
    to NOT include anything from the old model-specific implementation like
    from dumux/implicit/2pni, but to include from the model folder without the
    "ni". See test/implicit/2pni for details. In principle, any isothermal
    porous media model can be enhanced with the energy equation. Ideally, only
    the corresponding property files have to be augmented. See
    dumux/implicit/2p/2ppropert*.hh for details. The 1p2c model already has
    been enhanced, the remaining models will follow in 2.7.

  - The AMG backend is based directly on dune-istl now. No PDELab is required
    anymore. The tests so far exhibit an improved robustness. Thanks to Markus
    Blatt for the work.

  - The multidomain models can now be used with the 2.3 release versions of the
    DUNE core modules and dune-multidomaingrid, and the 2.0 release versions
    of dune-pdelab and dune-multidomain. See test/multidomain/README for
    details.

  - In the fully implicit mpnc model, a further specialization allows now to
    describe two-phase flow with two energy equations.

  - The free flow models now include the component enthalpy fluxes transported
    by diffusion processes (h^k D grad x), which was not considered before.

  - UMFPack is a new direct linear solver and can be use as a drop-in
    replacement for SuperLU. Some users claim a speed-up up to a factor of
    seven. We know cases where it was 10% slower, so please measure for your
    problems.
137
138

* IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
139
140
141
142
143
144
145
146
147
  - The 3p3cni model now also uses an effective thermal conductivity model
    (ETCM). The ETCM is easily exchangeable. The default one is
    ThermalConductivitySomerton, which is implemented in
    dumux/material/fluidmatrixinteractions/3p. The ETCM requires that 3p3cni
    spatial parameters provide a function thermalConductivitySolid instead of
    matrixHeatFlux. See test/implicit/3p3cni/columnxylolspatialparams.hh for
    details. Moreover, the employed fluid system has to actually implement the
    function thermalConductivity. See
    dumux/material/fluidsystems/h2oairxylenefluidsystem.hh for details.
148

149
150
151
152
153
154
155
156
157
  - The non-isothermal flux variables call the effective thermal conductivity
    models (ETCM) in a different way. If you used a self-written ETCM and want
    to use a new non-isothermal model, the ETCM has to be adapted. See
    material/fluidmatrixinteractions/2p/thermalconductivitysomerton.hh for
    details.

  - Fully implicit mpnc model: in order to account for the possibility of using
    two energy equations, the boolean property EnableKineticEnergy has been
    changed to the integer property NumEnergyEquations.
158

159
160
161
* Deprecated way of setting command line parameters, to be removed after 2.6:
  - To set paramaters from the command line, the notation --parameterFile=NAME
    is deprecated. Use from now on -ParameterFile NAME.
162

163
164
165
* Deprecated CLASSES/FILES, to be removed after 2.6:
  - The old non-isothermal porous media models are deprecated. Technically,
    including a ..niproperties.hh file triggers a deprecation warning.
166

167
168
169
170
171
  - FVPressure2P2CAdaptive, use dimension-specific implementations
    FV2dPressure2P2CAdaptive and FV3dPressure2P2CAdaptive instead.

  - FVTransport2P2CAdaptive, use dimension-specific implementations
    FV2dTransport2P2CAdaptive and FV3dTransport2P2CAdaptive instead.
172
173

* Deprecated MEMBER FUNCTIONS, to be removed after 2.6:
174
175
176
177
178
  - In the Stokes flux variables, the method eddyViscosity() is deprecated, use
    dynamicEddyViscosity() instead.

  - In the Stokes non-isothermal flux variables, the method eddyConductivity()
    is deprecated, use thermalEddyConductivity() instead.
179

180
181
182
  - Already in 2.5, the following member functions of MultiDomainModel/Problem
    have been deprecated: subProblemX, subModelX, subIDX, gridViewX with X=1,2.
    They are replaced by sdProblemX, sdModelX, sdIDX, sdGridViewX.
183
184
185
186
187
188

* DELETED classes/files, property names, constants/enums, 
  member functions, which have been deprecated in DuMuX 2.5:
  Everything listed as deprecated below has been removed.


189
190
191
192
Differences Between DuMuX 2.4 and DuMuX 2.5
===================================================

* IMPROVEMENTS and ENHANCEMENTS:
193
  - The three-dimensional implementation of the MPFA L-method is made
194
    available for the decoupled compositional 2p2c models. It also allows
195
    for simulation on an adaptive grid.
196
  - Coupling of 2c2p with stokesnc and 2p2cNI with Stokesncni was
197
    added. The stokes2c and stokes2cni are now DEPRECATED and will be kicked 
198
199
200
201
202
    out by the next release. Instead generalized stokesnc and stokesncni 
    models are introduced. Unlike 2c models the transport equations in 
    the nc models are capapable of using both mass and mole fractions.
    NOTE: For coupling test examples be aware of the harsh version 
    restrictions mentioned in dumux/test/modelcoupling/README.
203

204
* IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
205
  - Dropped support for PDELab 1.0.1, PDELab 1.1 is required.
206
207

* Deprecated CLASSES/FILES, to be removed after 2.5:
208
209
  - Stokes2cModel was replaced by StokesNCModel, similar for more
    Stokes2c* classes.
210
211
212
213
214
215

* DELETED classes/files, property names, constants/enums, 
  member functions, which have been deprecated in DuMuX 2.4:
  Everything listed as deprecated below has been removed.


216
217
218
Differences Between DuMuX 2.3 and DuMuX 2.4
===================================================

219
220
221
222
223
224
225
* IMPORTANT NOTES:
  - If the current trunk version of DUNE (2.3) is used, the co2 and co2ni tests
    require that the DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS flag is set. This
    flag is needed in order to be able to use the function boundaryId(). An
    error is thrown during compilation if the flag is not set. For reference see
    the commented part in optim.opts and debug.opts.

226
227
228
  - All two-component models (1p2c, 2p2c, 2p2cni, co2, co2ni) can now be used 
    with either mole or mass fractions. The property useMoles has to be set in 
    the problem file and the boundary conditions have to be choosen accordingly.
229
230
231
    . 1p2c, 2p2c, 2p2cni use MOLE fractions by default.
    . co2, co2ni use MASS fractions by default.
    . For completeness: 3p3c, 3p3cni and mpnc use MOLE fractions only.
232

233
* IMPROVEMENTS and ENHANCEMENTS:
234
235
236
237
238
239
240
241
242
  - Three geomechanics models have been added, thanks to the previous PhD work
    of Melanie Darcis. The models are located in dumux/geomechanics, a test for
    each model is provided in test/geomechanics:
    . elastic: linear elasticity equations that account only for the solid
               mechanics.
    . el1p2c:  poroelasticity equations for one solid and one fluid phase, where
               the fluid phase is admitted to consist of two components.
    . el2p:    poroelasticity equations for one solid phase and two immiscible
               fluid phases.
243

244
245
246
  - A three-dimensional implementation of the MPFA L-method is added and made
    available for the decoupled 2p models. It also allows for simulation on
    an adaptive grid.
247

Bernd Flemisch's avatar
Bernd Flemisch committed
248
249
250
251
252
253
254
255
256
257
  - The MPNC model now allows to drop the assumptions of local thermal and/or
    chemical equilibrium. Dropping the local chemical equilibrium assumption
    leads to mole fractions in different phases that are not determined via
    equilibrium relations. If the local thermal equilibrium assumption is
    dropped, phases (fluids and solid) are locally allowed to have different
    temperatures. See test/implicit/mpnc/test_boxmpnckinetic for an example.

  - A fully-implicit three-phase immiscible model has been added. The headers
    are contained in dumux/implicit/3p, tests are provided in test/implicit/3p.

258
259
260
261
262
263
  - The handling of Dirichlet boundary conditions for the fully-implicit cell-
    centered models has been improved. Now, the conditions are evaluated at the
    centers of the corresponding boundary faces. In general, they are
    incorporated into the local residual in a weak sense. Only for mixed
    Dirichlet/Neumann conditions and for the MPNC model, they still are
    incorporated in a strong sense.
264

265
266
267
  - The sequential models can use a sub-timestepping in the transport scheme, if
    the property "SubCFLFactor" is chosen smaller than "CFLFactor", which in
    that case specifies the CFL factor used in the pressure equation.
268
269
270
271
272
273

  - All fully-implicit porous-media models now provide the possibility to write
    the velocities to the VTK output. This can be achieved by setting the
    parameter "AddVelocity" of the group "Vtk" or the corresponding property 
    "VtkAddVelocity." See test/implicit/1p2c for an example.

274
275
276
  - The CMake build system support uses the experimental mechanisms from DUNE.
    Recent versions of Dune 2.3-svn or newer are required to use CMake.

277
278
279
280
281
282
283
284
285
286
287
  - Our naming rules have been refined and enforced for member functions and
    variables. Many inconsistencies could be removed, especially the special
    status of the capitalized "S" indicating saturation. See the deprecation
    listings below or FS#180 for details.

  - Misleading names in the fully-implicit models that still contained "b/Box"
    have been replaced by more generic ones. See the deprecation listings below
    or FS#194 for details.

  - The ...FVElementGeometry classes have been cleaned up a bit. See the 
    deprecation listings below or FS#192 for details.
288

289
290
  - Added compiler support for Clang 3.2, Clang 3.3, and GCC 4.8.

291
* Deprecated CLASSES/FILES, to be removed after 2.4:
292
  - OnePBoxModel, OnePTwoCBoxModel -> OnePModel, OnePTwoCModel
293

Bernd Flemisch's avatar
Bernd Flemisch committed
294
295
296
297
298
299
300
301
302
  - Headers containing capitalized letters are replaced by their non-capitalized
    analogs. 
    In dumux/decoupled: 1p/cellData1p.hh, 1p/fluxData1p.hh, 
    2p/cellData2padaptive.hh, 2p/fluxData2p.hh, 2p/cellData2p.hh,
    2p2c/cellData2p2c.hh, 2p2c/cellData2p2cadaptive.hh, 2p2c/fluxData2p2c.hh,
    2p2c/cellData2p2cmultiphysics.hh.
    In dumux/material/fluidmatrixinteractions/3p: parkerVanGen3p.hh,
    parkerVanGen3pparams.hh.

303
304
305
306
307
* Deprecated CONSTANTS/ENUMS, to be removed after 2.4: BEWARE: Older compilers 
  will not print any warning if a deprecated constant/enum is used.
  - saturation indices: S0Idx, SnIdx, SnOrXIdx, SOrX1Idx, SOrX2Idx, SwIdx, 
    SwOrXIdx
    -> s0Idx, snIdx, snOrXIdx, sOrX1Idx, sOrX2Idx, swIdx, swOrXIdx
308

309
310
311
312
313
314
315
316
317
318
319
320
  - two-phase formulations: pnSn, pnSw, pwSn, pwSw -> pnsn, pnsw, pwsn, pwsw

  - DecoupledTwoPCommonIndices: pressureNW, saturationNW, velocityNW 
    -> pressureNw, saturationNw, velocityNw

  - DecoupledTwoPIndices: pressEqIdx -> pressureEqIdx

  - MPNCIndices: NumPrimaryEnergyVars, NumPrimaryVars
    -> numPrimaryEnergyVars, numPrimaryVars

* Deprecated public MEMBER VARIABLES, to be removed after 2.4: BEWARE: Older
  compilers will not print any warning if a deprecated public member variable 
321
  is used.
322
323
324
325
  - ...FVElementGeometry: numEdges, numFaces, numFap, numVertices
    -> numScvf, -, numFap of each subcontrolvolume face, numScv

  - BoxFVElementGeometry: edgeCoord, faceCoord
326

327
328
329
330
* Deprecated MACROS, to be removed after 2.4: BEWARE: The compiler will not
  print any warning if a deprecated macro is used.
  - DUMUX_ALWAYS_INLINE whether the according attribute is supported

331
* Deprecated MEMBER FUNCTIONS, to be removed after 2.4:
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
  - all problems: bboxMin/Max() -> bBoxMin/Max()

  - ImplicitProblem: boxSDNeumann(), boxSDSource()
    -> solDependentNeumann(), solDependentSource()

  - ImplicitPorousMediaProblem: boxGravity(), boxTemperature() 
    -> gravityAtPos(), temperatureAtPos() (different signatures!)

  - fluid-matrix-interactions: dkrn_dSw(), dkrw_dSw(), dpc_dSw(), pC(), 
    dSw_dpC(), Sgr(), Snr(), SnToSne(), Sw(), Swr(), SwToSwe()
    -> dkrn_dsw(), dkrw_dsw(), dpc_dsw(), pc(), dsw_dpc(), sgr(), snr(), 
    snToSne(), sw(), swr(), swToSwe()

  - LinearMaterial(Params): entryPC(), maxPC(), setEntryPC(), setMaxPC() 
    -> entryPc(), maxPc(), setEntryPc(), setMaxPc()

  - RegularizedVanGenuchten(Params): pCHighSw(), pCLowSw() 
    -> pcHighSw(), pcLowSw()

  - VanGenuchtenParams, ParkerVanGen3PParams: setVgM(), setVgN(), vgM(), vgN()
    -> setVgm(), setVgn(), vgm(), vgn()

  - ParkerVanGen3P(Params): betaGN(), betaGW(), betaNW(), pCAlpha(), pCGN(), 
    pCGW(), pCNW(), setBeta..., setkrRegardsSnr(), Swrx()
    -> betaGn(), betaGw(), betaNw(), pcAlpha(), pcgn(), pcgw(), pcnw(), 
    setBeta..., setKrRegardsSnr(), swrx()

  - MPLinearMaterialParams: Sreg() -> sReg()

  - EvalCflFlux...: getCFLFluxFunction() -> getCflFluxFunction

  - FVMPFAOInteractionVolume: getNTKNu_by_dF(), getNTKNu(), getNTKrKNu_by_dF(), 
    getNTKrKNu()
    -> getNtkNu_df(), getNtkNu(), getNtkrkNu_df(), getNtkrkNu()

  - TwoPDFMVolumeVariables: dSM_dSF() -> dsm_dsf()

  - Stokes...Variables: viscosity() -> dynamicViscosity()

  - IAPWS water: ddgamma_ddpi, ddgamma_ddtau, ddgamma_dtaudpi, dgamma_dpi, 
    dgamma_dtau, dp_dpi, dpi_dp, dtau_dt 
    -> ddGamma_ddPi, ddGamma_ddTau, ddGamma_dTaudPi, dGamma_dPi, dGamma_dTau, 
    dp_dPi, dPi_dp, dTau_dt
375
376
377
378
379
380

* 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.


381
Differences Between DuMuX 2.2 and DuMuX 2.3
Christoph Grueninger's avatar
Christoph Grueninger committed
382
383
384
===================================================

* IMPROVEMENTS and ENHANCEMENTS:
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
  - 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 
414
415
416
    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 
417
    README in the patches directory. 
418

419
420
421
  - 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. 
422
423
424
425
426
427
428

  - 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
Klaus Mosthaf's avatar
Klaus Mosthaf committed
429
430

  - Improved handling of the conductive heat fluxes in the non-isothermal implicit  
431
    two-phase models, see the problem files in test/implicit/2p(2c)ni.
Klaus Mosthaf's avatar
Klaus Mosthaf committed
432

433
  - Introduced new selection of start/stop messages.
434
435
436
437

* IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:
  - The property Salinity used in the BrineCO2FluidSystem 
    has been renamed to ProblemSalinity. 
438

Klaus Mosthaf's avatar
Klaus Mosthaf committed
439
  - The matrixHeatFlux(...) and boundaryMatrixHeatFlux(...) methods in the spatial
440
441
442
443
444
445
446
447
    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.
Christoph Grueninger's avatar
Christoph Grueninger committed
448
449

* Deprecated CLASSES/FILES, to be removed after 2.3:
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
  - 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.
487
  - numFAP and numSCV in Box(CC)FVElementGeometry have been renamed to 
488
489
    numFap and numScv, respectively.

490
491
492
493
494
495
496
* 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. 

497
498
499
* 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.
Christoph Grueninger's avatar
Christoph Grueninger committed
500
501


502
503
504
Differences Between DuMuX 2.1 and DuMuX 2.2
===================================================

505
* IMPROVEMENTS and ENHANCEMENTS: 
506
507
508
509
510
511
512
513
  - 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
514
515
    that simulates 2p and 2p2c flow on unstructured grids with hanging nodes 
    in two dimensions. See test/decoupled/2p(2c) for details.
516

517
518
519
520
521
  - 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 
522
523
    equations for momentum transport. See test/freeflow/navierstokes 
    for details.
524

525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
  - 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.
541

542
  - Added compiler support for GCC 4.7 and Clang 3.1.
543

Christoph Grueninger's avatar
Christoph Grueninger committed
544
545
546
547
* 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.
548
549
550
  - 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.
551
552
553
554
555
556
557
558

  - 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.
559
    
560
* Deprecated CLASSES/FILES, to be removed after 2.2:
561
562
563
564
  - 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: 
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
    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.
581
582
583
584
585
586
587
588
589
590
591

  - 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

592
593
  - Some MPFA-O method files/classes have been moved to a new subdirectory 
    "omethod" in dumux/decoupled/2p/diffusion/fvmpfa: 
594
595
    fvmpfaopressure2p.hh, fvmpfaovelocity2p.hh, fvmpfaopressureproperties2p.hh

596
597
  - DUMUX_UNUSED is deprecated and will be removed after 2.2. It should be 
    replaced by the upstream version DUNE_UNUSED.
598
  
599
600
  - DUMUX_DEPRECATED_MSG is deprecated and will be removed after 2.2. It should
    be replaced by the upstream version DUNE_DEPRECATED_MSG.
601

602
603
* Deprecated PROPERTY NAMES, to be removed after 2.2: BEWARE: The compiler will
  not print any warning if a deprecated property name is used. 
604
605
606
607
  - The "SpatialParameters" property has been renamed to "SpatialParams".
  
  - The model specific "...Indices" property has been renamed to "Indices".

608
609
610
611
612
613
614
* 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".
615
616

* Deprecated MEMBER FUNCTIONS, to be removed after 2.2:
617
618
  - Spatial parameters: The spatialParameters member functions of the base 
    problems have been replaced by spatialParams: 
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
    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.

636
637
638
  - Box models: The primaryVarWeight() functions are no longer used for the 
    evaluation of the relative error. 

639
  - Element and FVElementGeometry: The elem_() and fvElemGeom_() member function
640
641
    of BoxLocalResidual have been replaced by element_() and fvGeometry_(). 
    
642
643
  - Primary variables: All "...primaryVar/s" member functions have been replaced
    by "...priVar/s": 
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
    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 &params, 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&)
683
684
    
  - DUMUX_DEPRECATED has been removed.
685
686


687
Notable Differences Between DuMuX 2.0 and DuMuX 2.1
688
===================================================
689

690
691
- The thermodynamics framework has been overhauled:
  - The programming interfaces for fluid systems, fluid states and
692
    components has been formalized and cleaned up.
Klaus Mosthaf's avatar
Klaus Mosthaf committed
693
  - Fluid systems now have the option to cache computationally
694
    expensive parameters if they are needed for several relations.
695
  - Fluid systems are not charged with the computation of the
696
697
    chemical equilibrium anymore.
  - Fluid states are now centralized infrastructure instead of being
698
699
700
701
702
703
704
705
706
707
708
    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:
709
  - 3p3c, 3p3cni: Isothermal and non-isothermal three-phase,
710
711
    three-component models for flow and transport in porous media
    based on primary variable switching.
712
  - MpNc: A model for arbitrary number of phases M > 0, and components
713
714
715
    (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
716
717
    equation as well as isothermal and non-isothermal Stokes models
    for two-component fluids.
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
- 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.
737
738
- The dependencies for the external dune-pdelab and boost packages
  have been removed.
739
740
741
742
743
744
745
746
- 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.
747
748
- Specifying run-time parameters is now possible. The mechanism allows
  to use parameter files or to specify parameters directly on the
749
750
751
752
753
754
  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).
755
  - Setting property defaults has been deprecated.
756
757
758
759
760
761
762
  - 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
763

764
        SET_TYPE_PROP(YourProblemTypeTag, Scalar, quad);
765

766
767
    It should be noted, that performance is very poor when using
    quadruple precision arithmetic. This feature is primarily meant as
768
769
    a debugging tool to quickly check whether there are machine
    precision related convergence problems.