CHANGELOG.md 94.4 KB
 Simon Emmert committed Apr 29, 2020 1 Differences Between DuMux 3.3 and DuMux 3.2  Timo Koch committed Apr 29, 2020 2 3 4 5 ============================================= ### Improvements and Enhancements  Simon Emmert committed Apr 29, 2020 6 - __Dune version__: DuMux now requires Dune >=2.7  Timo Koch committed Jun 24, 2020 7 - The DuMux install script has been translated to Python to improve portability. The old shell script will be removed after release 3.3.  Kilian Weishaupt committed Sep 29, 2020 8 9 - The velocity reconstruction for immiscible porous-media models has been improved, leading to slightly different velocity fields in the vicinity of Neumann boundaries.  Kilian Weishaupt committed Oct 02, 2020 10 11 12 13 - 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 and dumux/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  Timo Koch committed Apr 29, 2020 14 15 16  ### Immediate interface changes not allowing/requiring a deprecation period:  17 - For the "sequential" models, the property BoundaryTypes has been simply renamed to SequentialBoundaryTypes  Timo Koch committed Jun 24, 2020 18 - __Quadmath__: Dumux::Quad has been removed without deprecation. Use Dune::Float128 instead.  19   Timo Koch committed Apr 29, 2020 20 21 ### Deprecated properties/classes/functions/files, to be removed after 3.3:  22 23 - The property BoundaryTypes has been deprecated. The boundary condition type can now be deduced from the problem type using ProblemTraits.  Timo Koch committed Apr 29, 2020 24 25 ### Deleted classes/files, property names, constants/enums:  26 - Everything that has been deprecated before release 3.2 has been removed.  Kilian Weishaupt committed Oct 02, 2020 27 28 - All of the geometry headers previously saved in dumux/common/geometry have been relocated to dumux/geometry. The headers in dumux/common/geometry are deprecated and will be removed in 3.3. The geometry tests have been moved from test/common/geometry  Ned Coltman committed Jul 29, 2020 29  and test/common/boundingboxtree to test/geometry.  30   Ned Coltman committed May 04, 2020 31 32 ### Other noteworthy changes: - after release 3.2, DuMux releases earlier than 2.12 will no longer be automatically tested or supported.  Timo Koch committed Apr 29, 2020 33   Simon Emmert committed Apr 29, 2020 34 Differences Between DuMux 3.2 and DuMux 3.1  Timo Koch committed Oct 11, 2019 35 36 37 38 ============================================= ### Improvements and Enhancements  Simon Emmert committed Apr 29, 2020 39 - __C++17__: DuMux now requires a C++ compiler supporting the C++17 features of GCC 7 (e.g. GCC 7, Clang 5).  Timo Koch committed Nov 21, 2019 40 41 - __Radially symmetric problems__: We now have support for radially symmetric problems (disc, ball, toroid). The support comes in form of wrappers for sub control volumes and faces that overload the respective volume() and area() function turning a 1d or 2d problem into a 2d or 3d radially symmetric problem.  Kilian Weishaupt committed Jan 23, 2020 42 43 - __Improvements of Beavers-Joseph(-Saffman) condition for the free flow model__: The naming for handling BJ(-S) boundary conditions has been adapted from isBJS() to isBeaversJoseph() / setBJS() to setBeaversJoseph(). In order to consider the velocity within the porous medium, the old velocityPorousMedium(element, scvf) method (returning a Scalar) has been renamed to porousMediumVelocity(element, scvf) (returning a velocity vector). The latter defaults to VelocityVector(0.0).  Timo Koch committed Jan 31, 2020 44 45 - __Van Genuchten__: The VanGenuchten-Mualem material law now allows to set a parameter l (default to 0.5) which is sometimes fitted.  46 47 - __Runtime variable output precision e.g. Float64__: The VtkOutputModule has been adapted to allow easy changes of the vtk output precision. It is now possible to specify output precision in the input file using Vtk.Precision followed by either Float32, Float64, UInt32, UInt8 or Int32. Float32 stays the default. We especially advice the use of Float64 when working with restart files. An additional new option is Vtk.CoordPrecision which changes the precision of the coordinates only and uses the default of Vtk.Precision.  Ned Coltman committed Mar 26, 2020 48 49 50  - __Effective Laws and Diffusion Coefficients__: The effective laws interface has been changed within !1684. The interface for these laws has been unified, and all coefficents are to be stored in containers that fit to the model. These quantities should then be added in the volumeVariables, meaning all effective quantities would be accessible from the volumevariables.  Johannes Hommel committed Apr 29, 2020 51 52 - __Examples__: The documentation of the examples has been improved further, focusing on readability and convenience. Further, three additional examples are included the folder examples. To get an overview, point your browser to https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/tree/master/examples.  Bernd Flemisch committed Jul 15, 2020 53 - __Linear solvers__: There is a new ISTL solver factory backend which allows to choose solvers at runtime (requires dune-istl 2.7) and also enables more parallel solvers (requires dune-istl > 2.7.0).  Timo Koch committed Jul 14, 2020 54 55   Timo Koch committed Oct 11, 2019 56 57 ### Immediate interface changes not allowing/requiring a deprecation period  Christoph Grüninger committed Jan 03, 2020 58 - Remove Grid.HeapSize as dune-ugrid removed the according feature as well.  Timo Koch committed Jan 31, 2020 59 60 - __Van Genuchten__: Corrected VanGenuchten-Mualem exponent in the non-wetting saturation formula (1/3 instead of 1/2 (or l, see above)) - __Van Genuchten__: Corrected VanGenuchten-Mualem implementation of dkrn/dSw  Timo Koch committed Mar 31, 2020 61 - __Brooks-Corey__: Corrected Brooks-Corey implementation of dkrn/dSw and added the derivatives for the regularized version  Timo Koch committed Feb 13, 2020 62 - __AMGBackend__: The internal structure of the AMGBackend and the ParallelISTLHelper has been overhauled, as only used by the AMG, we did not make the changes backwards-compatible  63 64 - The global default parameters for linear solvers have been removed and moved to the class LinearSolver. This only affects users that directly obtain this parameter via getParam somewhere in the code.  Christoph Grüninger committed Jan 03, 2020 65   Kilian Weishaupt committed Apr 07, 2020 66 67 68 - __Sequential linear solver backends__: Remove template argument precondBlockLevel from solve functions. The preconditioner block level is now determined automatically, assuming a value of 1 for regular BCRS matrices and a value of 2 for MultiTypeBlock matrices. The respective calls from the NewtonSolver and PDESolverclasses have been adapted.  Kilian Weishaupt committed Apr 29, 2020 69 - __Change matrix block arrangement for staggered models__: The matrix block structure has been adapted such that it complies with the literature standard, i.e., having the velocity block (A) on M[0][0]  Kilian Weishaupt committed Mar 09, 2020 70 71 72 73 rather than on M[1][1]. This also requires re-arranging the submodels and properties in dumux-multidomain such that the face-related classes and vector entries now appear before the cell-centered ones. math M = \begin{pmatrix}  Kilian Weishaupt committed Apr 29, 2020 74 75  D & C\\ B & A  Kilian Weishaupt committed Mar 09, 2020 76 77 78 79 80 \end{pmatrix} \qquad => \qquad M = \begin{pmatrix}  Kilian Weishaupt committed Apr 29, 2020 81 82  A & B\\ C & D  Kilian Weishaupt committed Mar 09, 2020 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109  \end{pmatrix}  Backwards-compatibility can only be provided to a certain extent. The following changes need to made in the main file: 1.) change the order of the arguments for the assembler such that it reads: c++ auto assembler = std::make_shared(std::make_tuple(ffProblem, ffProblem, otherProblem, ...), std::make_tuple(ffGridGeometry->faceFVGridGeometryPtr(), ffFvGridGeometry->cellCenterFVGridGeometryPtr(), otherFvGridGeometry, ...), std::make_tuple(ffGridVariables->faceGridVariablesPtr(), ffGridVariables->cellCenterGridVariablesPtr(), otherGridVariables, ...), couplingManager, timeLoop, solOld); // Not changing the arguments will yield a deprecation warning stating this hint but the code still compiles and runs.  2.) change the order of arguments in the partial function: c++ ffSol = partial(sol, ffFaceIdx, ffCellCenterIdx); // Not changing the argument will rise a compiler error which makes the MR not fully backwards-compatible.   Ned Coltman committed Mar 26, 2020 110 111 112 Regarding changes made to the effective laws and diffusionCoefficient containters, Backwards-compatibility is maintined for a large extent, barring any volumevariable classes defined externally that inherit from the non-isothermal volumevariables. If you use a self defined volumevariables class that inherits from the non-isothermal volumevariables, please adapt the your volumevariables class to fit to the non-isothermal volumevariables, and include the new methods for accessing the diffusion and effective diffusion coefficients.  Timo Koch committed Mar 26, 2020 113 114 - Tracer model: tracer fluid systems do no longer provide a getMainComponent function since this simply doesn't make sense -- the main bulk component is not modeled.  Timo Koch committed Oct 11, 2019 115 ### Deprecated properties, to be removed after 3.2:  Simon Emmert committed Apr 29, 2020 116 - __GridView__: The property GridView has been deprecated and can be accessed via GridGeometry::GridView instead.  Timo Koch committed Oct 11, 2019 117 118  ### Deprecated classes/files, to be removed after 3.2:  Timo Koch committed Feb 13, 2020 119 120 - __AMGBackend__: The class AMGBackend is deprecated and has been replaced by AMGBiCGSTABBackend which gets some different template arguments - __AMGTraits__: AMGTraits are deprecated, are to be replaced by LinearSolverTraits and restructured internally. As they were only used by the AMGBackend, we did not make the internal changes backwards-compatible  Timo Koch committed Oct 11, 2019 121 122  ### Deprecated member functions, to be removed after 3.2:  Ned Coltman committed Mar 26, 2020 123 124 - __DiffusionCoefficient(various arguments)__: These coefficients are now defined in the volvars and stored in a container fit to the model. To access these values, use the unified c++ diffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx)  - __EffectiveDiffusivity(various arguments)__: These values are now defined in the volvars and stored in a container fit to the model. To access these values, use the unified c++ effectiveDiffusionCoefficient(int phaseIdx, int compIIdx, int compJIdx)   Timo Koch committed Oct 11, 2019 125 126  ### Deleted classes/files, property names, constants/enums  Timo Koch committed Apr 29, 2020 127 Everything that has been deprecated before release 3.1 has been removed.  Timo Koch committed Oct 11, 2019 128   Simon Emmert committed Apr 29, 2020 129 Differences Between DuMux 3.1 and DuMux 3.0  Timo Koch committed Dec 21, 2018 130 131 132 133 ============================================= ### Improvements and Enhancements  Simon Emmert committed Apr 29, 2020 134 - __Examples__: Three extensively documented examples have been added which highlight interesting features and show how to apply DuMux to interesting problems. They can be found in the new folder examples. To get an overview, point your browser to https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/tree/master/examples.  Bernd Flemisch committed Oct 11, 2019 135   Katharina Heck committed Oct 10, 2019 136 - __Porousmediumflow__: Added a new porous medium model for the energy balance of a porous solid (general heat equation).  Bernd Flemisch committed Oct 11, 2019 137   Dennis Gläser committed Feb 28, 2019 138 - __Multidomain__: It is now possible to use the facet coupling module together with the mpfa-o scheme in the bulk domain.  Bernd Flemisch committed Oct 11, 2019 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154  - __Box__: The box scheme works now on grids with prism / wedge elements in 3D. - __Diffusive fluxes__: We revised the formulation of the diffusion laws to allow for changes between mass-averaged velocity reference systems and molar-averaged velocity reference systems. The standard formulation is now set to mass-averaged velocity reference systems. - __GridManager__: * Supports now reading unstructured grids and data from vtu/vtp files (ASCII, XML format) sequential. For UGGrid and FoamGrid you can specify a grid in such a format in the input file: Grid.File = mygrid.vtu / Grid.File = mygrid.vtp. The associated data is then available in the grid data object. * Instead of always including all grid manager specializations you can now only include the specialization that you need. For example, if you only use YaspGrid in your code, you only need to include dumux/io/grid/gridmanager_yasp.hh. The convenience header dumux/io/grid/gridmanager.hh still includes all specializations. * Added a NetPBMReader which allows to read simple raster images files (*.pbm and *.pgm). Can be used, e.g., with dune-subgrid in order to create a grid from an image file. - __Freeflow__: A second order approximation of the convective term of all Navier-Stokes based models is now available.  Roman Winter committed Oct 02, 2019 155  This can be enabled using the property UpwindSchemeOrder. This property defaults to a first order upwinding approximation,  Bernd Flemisch committed Oct 11, 2019 156  which is the method used for all models in release 3.0. If this property is set to 2, a second order flux limiter method will be used.  Timo Koch committed May 02, 2019 157 158 159 160  Various flux limiter functions have been implemented to maintain the monotonicity of this discretization. Per default the Minmod flux limiter is used, but Vanleer, Vanalbada, Superbee, Umist, Mclimiter, and Wahyd based flux limiters are also available. These can be specified using the input file entry Flux.DifferencingScheme. These methods are also implemented for non-uniform structured grids (e.g. YaspGrid - TensorProductCoordinates). Per default, a scheme assuming a  Ned Coltman committed Apr 30, 2019 161  uniform grid is used, but two other methods, Li and Hou, are both available for adaptations to non-uniform grids.  Timo Koch committed May 02, 2019 162  These can be specified using the input file entry Flux.TVDApproach.  Bernd Flemisch committed Oct 11, 2019 163   Ned Coltman committed Apr 30, 2019 164 - __RANS__: The called RANS model, defined in the properties system, will specify, via the model traits,  Timo Koch committed May 02, 2019 165 166 167  which RANS problem implementation should be used. In each problem file, the initial and boundary conditions can be set using templated functions based on the model type. Examples of these functions exist in the RANS based tests. No further preprocessor macros are required.  Bernd Flemisch committed Oct 11, 2019 168 169 170 171 172 173  - __ShallowWater__: Thanks to Leopold Stadler we now have a shallow water equations solver / model. Have a look at freeflow/shallowwater and give it a try with the dam break test at test/freeflow/shallowwater. The are also some friction laws computing shear stresses (Manning, Nikuradse) to account for friction in a channel/river bed, thanks to Martin Utz. - __Staggered__: Added a StaggeredNewtonConvergenceWriter for the staggered grid discretization scheme. - __Solver__: There is a new abstract base class PDESolver that is a class that does linearize & assemble, solve and update.  Roman Winter committed Oct 02, 2019 174  The NewtonSolver now derives from this class (interface is unchanged). A new class LinearPDESolver simplifies solving linear problems  Timo Koch committed May 07, 2019 175  by reducing the code in the main file and streamlining the terminal output to look like the Newton output.  Katharina Heck committed Oct 10, 2019 176   Timo Koch committed Jan 21, 2019 177   Timo Koch committed Dec 21, 2018 178 179 ### Immediate interface changes not allowing/requiring a deprecation period  Roman Winter committed Oct 02, 2019 180 181 - NewtonConvergenceWriter's first template argument has changed from GridView to FVGridGeometry. This allows to call the resize() method after a grid change without any arguments. Here is an example how to instatiate the convergence writer:  Kilian Weishaupt committed Mar 26, 2019 182 183 184 185   using NewtonConvergenceWriter = Dumux::NewtonConvergenceWriter; auto convergenceWriter = std::make_shared(*fvGridGeometry);   Bernd Flemisch committed Oct 11, 2019 186   Kilian Weishaupt committed Mar 29, 2019 187 188 189 190 - The interface of the abstract TimeLoopBase class has been extended by virtual void advanceTimeStep(), virtual void setTimeStepSize(Scalar dt), virtual Scalar maxTimeStepSize(), and virtual bool finished(), thus forcing the inheriting classes to implement those functions. TimeLoop is no longer a template argument in NewtonSolver's solve() method, thereby increasing type safety and providing better compiler error messages.  Kilian Weishaupt committed Mar 26, 2019 191   Katharina Heck committed Oct 10, 2019 192 193 - __RANS__: The base problems for all turbulence models e.g. ZeroEqProblem have been been renamed to one generic RANSProblem  Bernd Flemisch committed Oct 11, 2019 194 195 196 197 198 199 200 201 ### Deprecated properties, to be removed after 3.1: - FVGridGeometry and EnableFVGridGeometryCache have been replaced by GridGeometry and EnableGridGeometryCache. Unfortunately, clang doesn't emit deprecation warnings if an old property name is used. Consider employing gcc for detecting occurrences of the old name.  Timo Koch committed Dec 21, 2018 202 203 ### Deprecated classes/files, to be removed after 3.1:  Bernd Flemisch committed Aug 29, 2019 204 205 206 207 208 209 - BaseFVGridGeometry from dumux/discretization. Use BaseGridGeometry instead. - CakeGridCreator and SubgridGridCreator from dumux/io/grid. Use the corresponding ...Manager instead. - IntRange from dumux/common. Use Dune::IntegralRange instead.  Timo Koch committed Dec 21, 2018 210 211 ### Deprecated member functions, to be removed after 3.1:  Kilian Weishaupt committed Mar 26, 2019 212 213 214 215 - The convergence writer is no longer passed to NewtonSolver's solve() method. For outputting convergence data, please use newtonSolver.attachConvergenceWriter(convWriter) in main.cc (directly after instantiating the writer). To stop the output, the writer can also be detached again using newtonSolver.detachConvergenceWriter().  Timo Koch committed Dec 21, 2018 216 217 ### Deleted classes/files, property names, constants/enums  Bernd Flemisch committed Oct 11, 2019 218 219 - Deprecated classes and files for the 3.0 release listed below stay deprecated for at least one more release cycle.  Timo Koch committed Dec 21, 2018 220   Simon Emmert committed Apr 29, 2020 221 Differences Between DuMux 2.12 and DuMux 3.0  Timo Koch committed Dec 17, 2018 222 223 =============================================  Bernd Flemisch committed Dec 21, 2018 224 225 ## Important Notes  Simon Emmert committed Apr 29, 2020 226 227 - DuMux 3.0 is a major version update. It is not backward compatible in all aspects to 2.12. The following minor version updates will be, as before for the DuMux 2-series, always backward compatible  Timo Koch committed Dec 17, 2018 228 229  to at least the last minor version update.  Bernd Flemisch committed Dec 21, 2018 230 231 - The tutorial has been replaced by the new module dumux-course which is accessible at https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course.  Simon Emmert committed Apr 29, 2020 232  We recommend new users and also users experienced with DuMux 2.X to clone  Bernd Flemisch committed Dec 21, 2018 233 234  the course and have a look at the exercises in there.  Simon Emmert committed Apr 29, 2020 235 - DuMux 3.0 is based on Dune 2.6 and is expected to run with the current Dune master.  Bernd Flemisch committed Dec 21, 2018 236 237 238  We will try to keep the compatibility with the Dune master as long as it is technically feasible and our resources allow it.  Simon Emmert committed Apr 29, 2020 239 - DuMux 3.0 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.  Bernd Flemisch committed Dec 21, 2018 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273  However, we suggest to use newer compiler versions, as we cannot test against all previous compiler versions. - For employing corner-point grids by means of opm-grid, the OPM release 2018.10 has to be used. ## Improvements and Enhancements ### General - __New style main files:__ 3.0 comes which a major overhaul of how the sequence of simulation steps is specified. Until 2.12 there was the start.hh header including the free function start that contained a predefined sequence of steps. Customization of the sequence was possible by many hooks implemented in classes used in this sequence. This made it hard to follow the course of the program and hard to implement customization at points where this was not previously envisioned. In contrast, in the new approach the sequence of simulation steps was linearized, meaning that each step is visible in the program's main file. In the new main files, one can clearly see the io, initialization, assembly, solving, update, time loop, etc., of the program. Many parts of the simulation that were previously mandatory, i.e. simulations in 2.12 always contained a time loop, are now optional (stationary simulations just don't need a time loop). The new style main files make it easier two follow the course of the program, are easier to customize, and offer more flexibility concerning the customization of steps and components of a simulation. All tests and examples in the dumux repository have been adapted to the new style main files. - __Property system:__ The property system is now usable without preprocessor macros. To this end it was completely reimplemented using C++14 techniques and variadic templates. The hierarchies can now be arbitrarily deep instead of being limited to 5 levels. The new implementation does not use C++ inheritance. Properties and TypeTag now have to be properly qualified with the namespaces Properties::, TTag::. Types that share the name with properties have to properly qualified with the Dumux:: namespace. This update makes it hopefully more readable and removes the "magic" part from the property system. - __Runtime parameters:__ Runtime parameters are no longer accessed with preprocessor macros. They have been replaced by C++ function templates Dumux::getParam, Dumux::hasParam, Dumux::getParamFromGroup. The ..FromGroup version has been redesigned to allow the specification of parameters for different models in one input file. The concept of a parameter group string was extended to make it possible to use a single input file for complex multidomain simulation setups. - __Restarting simulations:__ The old restart module was replaced by an implementation based on a VTK backend (other formats might be added later such as HDF5). Restarted simulations can read solutions from vtk files. For parallel runs, there is currently the restriction that the number of processors has to be the same as before the restart. Restarted simulations can read grids from vtk (currently only sequential, non-adaptive grids, support for parallel and adaptive will be added in a future version). - __Assembly__: The assembler can now assemble implicit and explicit Euler time discretizations. An interface for implementing analytical Jacobians was added. The CCTpfa assembler has been significantly improved for complex models that spend a lot of time computing constitutive laws. Also the numerical differentiation scheme was improved by altering the order in which derivatives are computed.  Simon Emmert committed Apr 29, 2020 274 275 - __TypeTag templates:__ Implementers of code in DuMux 3.0 are advised to avoid TypeTag as a template argument for class templates. Many classes in the DuMux core have been changed to have a small number of specific template arguments, including GridGeometry,  Bernd Flemisch committed Dec 21, 2018 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296  TimeLoop, Newton, LinearSolver, SpatialParams. This makes it possible to share objects of these types between models using different TypeTags. This was not possible before as Class and Class are different types, even if they contain exactly the same implementation code. Furthermore, having TypeTag as a template argument leads to bad programming, and unnecessary dependencies that should be avoided in every object-oriented code. - __The grid geometry concept:__ In version 3.0, discretization methods use grid geometries which are wrappers or adapters around a Dune::GridView, providing data structures and interfaces necessary to implement these discretization methods easily. In particular, the abstraction of sub-control-volumes (scv) and sub-control-volume-faces (scvf) are now separate classes and the grid geometry provides means to iterate over all scvs and scvfs of an element, using range-based-for loops. - __The caching concept:__ Version 3.0 introduces a caching concept for the new grid geometry, the volume variables and the flux variables. There are classes with a Grid prefix, that store data for the current grid view, and classes with the Element prefix that store data locally for an element or element stencil. Depending on the caching concept used, data will be either stored completely in the Grid objects (e.g. GridGeometry) and the Element objects (e.g. ElementGeometry) are mere accessor objects, or, data will be partly only cached locally. Local caching uses less memory but might result in an increased runtime. Grid caching is memory intensive but can provide a significant run-time speedup. Choose whatever concept fits your available resources, the default being local caching. - __Support__ for grid managers dune-subgrid (a meta grid selecting only certain elements from a host grid) and dune-spgrid (a structured parallel grid manager, supporting periodic boundaries). ### Models, Physics and Methods  Simon Emmert committed Apr 29, 2020 297 298 - __MPFA schemes:__ The new design of the DuMux core facilitates the incorporation of new finite-volume schemes. In particular, the new core comes with a framework for MPFA schemes, in which currently the only available scheme is the MPFA-O scheme. It can be used in conjunction with any DuMux model and  Bernd Flemisch committed Dec 21, 2018 299  also works on surface grids. More schemes will be added in the future.  Simon Emmert committed Apr 29, 2020 300 - __Box-dfm:__ The 2pdfm model from version 2.12 has been generalized such that it can be used on any DuMux model and in both two and three dimensions.  Bernd Flemisch committed Dec 21, 2018 301 302 303 304 305 306 - __Tracer transport__: A new model for tracer transport with a given flow field has been added. The model can be also used to implement sequentially coupled simulations, or iterative solvers where flow and transport are decoupled / weakly coupled. - __Mineralization__: An adapter model for mineralization has been added and can be used with all porousmediumflow models. A balance for the solid volume fraction of precipitating, adsorbed, or absorbed substances is added to the existing equations. - __Solution-dependent spatial params:__ A redesign of the spatial params interface allows now to define spatial parameters such as permeability and porosity that depend on the solution. This makes it easier to implement mineralization models altering the solid structure of the porous medium.  Simon Emmert committed Apr 29, 2020 307 - __Solid systems:__ DuMux 3.0 introduces solid systems similar to fluid systems but for solid components. This allows a consistent  Bernd Flemisch committed Dec 21, 2018 308 309  implementation of mineralization models including reactions, dissolution, precipitation and other processes altering the solid phase of the porous medium.  Simon Emmert committed Apr 29, 2020 310 - __Multidomain:__ DuMux 3.0 introduces a new multidomain framework which does no longer depend on dune-multidomain and can be used for the coupling  Bernd Flemisch committed Dec 21, 2018 311  of an arbitrary number of subdomains. The sub-domains can be regions in which different sets of equations are solved and/or which have different  Simon Emmert committed Apr 29, 2020 312  dimensionalities. The implementation is such that any of the existing DuMux models can be used in the subdomains, while the data and functionality  Bernd Flemisch committed Dec 21, 2018 313 314 315 316 317 318 319  required for the coupling of the sub-domains is implemented in a CouplingManger class. Three different coupling concepts are available, for which there are a number of available CouplingManager class implementations: - _Boundary:_ coupling across sub-domain boundaries - _Embedded:_ Coupling between a bulk domain and an embedded lower-dimensional sub-domain which has an independent grid - _Facet:_ Coupling betweeen a bulk domain and a codimension-one sub-domain, which is conforming with the element facets of the bulk domain - __Free-flow models:__ The previous Navier-Stokes model using the box method has been replaced by one that employs a staggered grid discretization. The new method does not require any stabilization techniques while those were necessary for the box method in order to avoid spurious oscillations.  Simon Emmert committed Apr 29, 2020 320  The free-flow models in DuMux 3.0 consider single phase flow with or without component/energy transport. So far, only regular Cartesian grids are supported  Bernd Flemisch committed Dec 21, 2018 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351  but local grid refinement will be added in a future release. Several RANS models for turbulent flow have been added: k-omega, k-epsilon, low-Re-k-epsilon, one-eq, zero-eq. The RANS models might be subject to further (interface) changes. - __Thermal and chemical non-equilibrium:__ The possibility to consider thermal and/or chemical non-equilibrium of several types has been enabled for all porous medium models. - __Interface solver:__ For the two-phase flow model in conjunction with the box scheme, an interface solver can now be used to reconstruct the saturations in the sub-control volumes adjacent to vertices that lie on material discontinuities. This allows a sharper representation of the saturation front evolving in heterogeneous porous media. - __Components:__ Components can now derive from different base classes, Base, Liquid, Solid, Gas, depending on which phase states are implemented. This can be used to determine at compile time if a component supports a certain phase state. - __Tabulation of fluid parameter laws:__ The tabulation of fluid parameter laws has been improved to only tabulate those functions actually used during the simulation. To this end, the tabulation is done on the first call of a corresponding fluid parameter. - __MPNC:__ The general m-phase n-component model has been adapted in structure to the other porous medium flow models. - __Different wettability:__ The 2p models can now model materials with different wettability (hydrophobic, hydrophilic) in different parts of the domain. - __Maxwell-Stefan-diffusion:__ Most models can now use Maxwell-Stefan diffusion for multi-component diffusion instead of Fickian diffusion. There are also a few tests demonstrating how to use it. ## Immediate interface changes not allowing/requiring a deprecation period - Many classes have been completely redesigned. See the numerous example applications included in 3.0 showcasing all new classes. - The GridCreator has been replaced by the GridManager, which no longer uses a singleton for the grid object. This makes it possible to create two grids of the exact same type. The GridManager also handles user data provided in grid files. ## Deprecated classes/files, to be removed after 3.0 - All classes of the sequential models are deprecated. The sequential models will be ported to the new structure of porous medium models (formerly called implicit models). This way sequential and implicit model implementations no longer differ and use the same numerical infrastructure. - The TimeManager class is to be replaced by the class TimeLoop. - The VtkMultiWriter class is to be replaced by the class VtkOutputModule. - The file start.hh is replaced by new style main files.  Simon Emmert committed Apr 29, 2020 352 ## Deleted classes/files/functions... which have been deprecated in DuMux 2.12  Bernd Flemisch committed Dec 21, 2018 353 - Everything listed as deprecated below has been removed.  Timo Koch committed Dec 17, 2018 354 355   Simon Emmert committed Apr 29, 2020 356 Differences Between DuMux 2.11 and DuMux 2.12  Thomas Fetzer committed Apr 18, 2017 357 358 359 ============================================= * IMPORTANT NOTES:  Simon Emmert committed Apr 29, 2020 360  - DuMux 2.12 is expected to run based on Dune 2.4.1, 2.5, 2.6 and the Dune  Thomas Fetzer committed Apr 18, 2017 361 362  master. We will try to keep the compatibility with the Dune master as long as it is technically feasible and our resources allow it. If  Simon Emmert committed Apr 29, 2020 363  you want to use DuMux multidomain models, you have to stick with the  Thomas Fetzer committed Apr 18, 2017 364  Dune 2.4 core and specific versions of other modules, see  Bernd Flemisch committed Dec 19, 2017 365 366  [test/multidomain/README](test/multidomain/README) for details. Also the geomechanics models require Dune 2.4 and PDELab 2.0.  Thomas Fetzer committed Apr 18, 2017 367   Simon Emmert committed Apr 29, 2020 368  - DuMux 2.12 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.  Thomas Fetzer committed Apr 18, 2017 369 370  - For employing corner-point grids by means of opm-grid (former  Bernd Flemisch committed Dec 19, 2017 371  dune-cornerpoint), the OPM releases 2017.04 or 2017.10 have to be used.  Thomas Fetzer committed Apr 18, 2017 372 373  * IMPROVEMENTS and ENHANCEMENTS:  Bernd Flemisch committed Dec 19, 2017 374 375 376 377 378 379 380 381  - Four new tutorial exercises have been added in the folder [tutorial](tutorial). They can be built by executing make build_tutorials in the build folder. Each exercise comes with detailed instructions: 1. [Exercise 1](tutorial/ex1/README.md) 2. [Exercise 2](tutorial/ex2/README.md) 3. [Exercise 3](tutorial/ex3/README.md) 4. [Exercise 4](tutorial/ex4/README.md)  Thomas Fetzer committed Apr 18, 2017 382   Bernd Flemisch committed Dec 19, 2017 383 384 385 386 387 388  - Fixed bug in heatCapacity() of component air and replace the use of a constant value in gasEnthalpy() by calling heatCapacity(). - The GnuplotInterface now supports in-simulation generation of image files (*.png).  Thomas Fetzer committed Apr 18, 2017 389   Bernd Flemisch committed Dec 19, 2017 390 391  - A paraview python script for exporting 2d pictures from *.vtu files has been added.  Thomas Fetzer committed Apr 18, 2017 392   Bernd Flemisch committed Dec 19, 2017 393 394  - A class for estimating turbulence properties has been added with turbulenceproperties.hh.  Thomas Fetzer committed Apr 18, 2017 395   Bernd Flemisch committed Dec 19, 2017 396 397 398 399 * IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period: - gnuplotinterface.hh: The add...ToPlot() functions have changed signature, the curve name/title is not mandatory anymore and can be specified together with the curve options.  Thomas Fetzer committed Apr 18, 2017 400 401  * DELETED classes/files, property names, constants/enums,  Simon Emmert committed Apr 29, 2020 402  member functions, which have been deprecated in DuMux 2.11:  Thomas Fetzer committed Apr 18, 2017 403 404 405  - Everything listed as deprecated below has been removed.  Simon Emmert committed Apr 29, 2020 406 Differences Between DuMux 2.10 and DuMux 2.11  Christoph Grüninger committed Sep 30, 2016 407 408 409 ============================================= * IMPORTANT NOTES:  Simon Emmert committed Apr 29, 2020 410  - DuMux 2.11 is expected to run based on Dune 2.4.1, 2.5 and the Dune  Christoph Grüninger committed Sep 30, 2016 411 412  master. We will try to keep the compatibility with the Dune master as long as it is technically feasible and our resources allow it. If  Simon Emmert committed Apr 29, 2020 413  you want to use DuMux multidomain models, you have to stick with the  Christoph Grüninger committed Sep 30, 2016 414 415 416  Dune 2.4 core and specific versions of other modules, see test/multidomain/README for details.  Simon Emmert committed Apr 29, 2020 417  - DuMux 2.11 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.  Christoph Grüninger committed Sep 30, 2016 418 419 420 421 422 423 424  - For employing corner-point grids by means of opm-grid (former dune-cornerpoint), the OPM release 2016.04 has to be used. * IMPROVEMENTS and ENHANCEMENTS: * IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:  Thomas Fetzer committed Mar 10, 2017 425 426 427 428  - A gridcreator for piece-of-cake-type grids has been added. It is capable of creating meshes with gradually in- and decreasing distances between nodes. It also allows the creation of a 360° cake where the last elements are connected to the first elements.  Martin Beck committed Dec 29, 2016 429 430 431 432  - shouldWriteRestartFile() is now, as shouldWriteOutput() already was, called before the time level is advanced. So it might be necessary to use ...WillBeFinished instead of ...IsFinished for writing restart files at the correct time.  Thomas Fetzer committed Nov 21, 2016 433 434 435  - In the ZeroEq models, the properties BBoxMinIsWall and BBoxMaxIsWall have been replaced by the functions bBoxMaxIsWall() and bBoxMaxIsWall() in the problem file.  436 437 438 439 440 441  - In the TwoPNC (and, consequently the TwoPNCMin) models, the old formulations pgSl, plSg as well as pnSw and pwSg have been replaced by the pnsw and pwsn, to satify the naming convention and be consistent with TwoPTwoC. - In the TwoPTwoC model, the indices are no longer dependent on the formulation. Further, the values of "nPhaseOnly" and "bothPhases" have been harmonized with those in TwoPNC  Christoph Grüninger committed Sep 30, 2016 442 443 444 445 446 447 448 449 450 451 452  * Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.11: BEWARE: The compiler will not print any warning if a deprecated property or parameter name is used. If possible, a run-time warning will appear in the summary lines after the corresponding run. * Deprecated CLASSES/FILES, to be removed after 2.11: * Deprecated MEMBER FUNCTIONS, to be removed after 2.11: * DELETED classes/files, property names, constants/enums,  Simon Emmert committed Apr 29, 2020 453  member functions, which have been deprecated in DuMux 2.10:  Christoph Grüninger committed Sep 30, 2016 454 455 456  - Everything listed as deprecated below has been removed.  Simon Emmert committed Apr 29, 2020 457 Differences Between DuMux 2.9 and DuMux 2.10  Timo Koch committed Mar 24, 2016 458 459 460 =================================================== * IMPORTANT NOTES:  Simon Emmert committed Apr 29, 2020 461  - DuMux 2.10 is expected to run based on Dune 2.4.1, 2.5 and the Dune  Christoph Grüninger committed Sep 23, 2016 462 463  master. We will try to keep the compatibility with the Dune master as long as it is technically feasible and our resources allow it. If  Simon Emmert committed Apr 29, 2020 464  you want to use DuMux multidomain models, you have to stick with the  Christoph Grüninger committed Sep 23, 2016 465 466  Dune 2.4 core and specific versions of other modules, see test/multidomain/README for details.  Bernd Flemisch committed Sep 22, 2016 467   Simon Emmert committed Apr 29, 2020 468  - DuMux 2.10 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.  Timo Koch committed Mar 24, 2016 469   Bernd Flemisch committed Sep 22, 2016 470 471 472  - For employing corner-point grids by means of opm-grid (former dune-cornerpoint), the OPM release 2016.04 has to be used.  Timo Koch committed Mar 24, 2016 473 * IMPROVEMENTS and ENHANCEMENTS:  Bernd Flemisch committed Sep 22, 2016 474 475 476 477 478 479 480 481 482 483 484  - Two new fully-implicit models have been added: ThreePWaterOil and TwoPOneC. The first one admits two components water and oil that may be present in two liquid and one gaseous phase, see test_box3pwateroil in test/porousmediumflow/3pwateroil/implicit for details. The second one is dedicated to one generic component that may be present in liquid and gaseous state, see test_boxsteaminjection in test/porousmediumflow/2p1c/implicit for an example. - Numbering of the VTK files starts with 0 now. - Using the geostatistical tool gstat for generating random fields has been  Martin Schneider committed Sep 27, 2016 485 486  facilitated. See test_cc1pwithgstat in test/porousmediumflow/1p/implicit. This tool can be installed using the bin/installexternal.sh script.  Timo Koch committed Dec 17, 2018 487 488  If cmake does not find gstat, one has to specify the GSTAT_ROOT variable, see the standard optim.opts or debug.opts.  Christoph Grüninger committed Sep 30, 2016 489   Bernd Flemisch committed Sep 22, 2016 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512  - The multidomain models should now run with all compilers without segfaults, both with optimization and debug options. - Computation for two-dimensional fracture networks in three-dimensional space has been fixed and is tested now in test/porousmediumflow/2p/implicit/test_fracture_box2p. - The bin folder containing various helper scripts has been restructured. For example, the scripts fuzzycompare.py and runtest.py are now contained in the subfolder testing. - Two new scripts extractlinedata.py and extractpointdataovertime.py have been added to bin/postprocessing. They realize what their names suggest. - The computation of the tortuosity tau with the Millington-Quirk model has been optimized. Tests show a speedup of up to 5% for a 2p2c simulation. - The fully-implicit box scheme now fully supports prism-shaped elements. - Convenience functions for reading values from a file to a container and for writing values to a file from a container have been added, see test_container_io in test/io/container.  Timo Koch committed Mar 24, 2016 513 514  * IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:  Timo Koch committed Jun 29, 2016 515 516  - The problem class interface needs to provide the method maxTimeStepSize(). This is important if you implement problem classes not deriving from the base  Simon Emmert committed Apr 29, 2020 517  problem classes in DuMux (ImplicitProblem, OneModelProblem,  Bernd Flemisch committed Sep 22, 2016 518  ImpetProblem, and MultidomainProblem).  519 520 521 522  - All name-related methods that previously returned / received const char* do now use the type-safe alternative std::string. An example is FluidSystem::componentName(). If you need a const char* for special operation use the string member c_str().  Timo Koch committed Mar 24, 2016 523 524 525  * Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.10: BEWARE: The compiler will not print any warning if a deprecated property or parameter name  Bernd Flemisch committed Sep 22, 2016 526 527 528 529 530  is used. If possible, a run-time warning will appear in the summary lines after the corresponding run. - The pure run-time parameter tau has been renamed to the property and run-time parameter TauTortuosity. For the models 1p2c, 2p2c, 3p3c it got the default value 0.5.  Timo Koch committed Mar 24, 2016 531 532  * Deprecated CLASSES/FILES, to be removed after 2.10:  Christoph Grüninger committed Sep 06, 2016 533 534 535  - The class DiffusivityConstantTau was renamed to DiffusivityConstant and is located in a according new header. The old class, its header and the property tau are deprecated.  Timo Koch committed Mar 24, 2016 536   Bernd Flemisch committed Sep 22, 2016 537 538 539 540 541 542  - PointSourceHelper has been deprecated. Use BoundingBoxTreePointSourceHelper instead. - The classes Dumux::Liquid/GasPhase have been moved to the namespace Dumux::FluidSystems.  Timo Koch committed Mar 24, 2016 543 * Deprecated MEMBER FUNCTIONS, to be removed after 2.10:  Bernd Flemisch committed Sep 22, 2016 544 545  - checkEffectiveSaturation of the classes PlotMaterialLaw in dumux/io.  Timo Koch committed Mar 24, 2016 546   Bernd Flemisch committed Sep 22, 2016 547 548  - concentrationGrad of the class TwoPNCFluxVariables. Use moleFractionGrad instead, with the obviously different physical meaning.  Timo Koch committed Mar 24, 2016 549 550  * DELETED classes/files, property names, constants/enums,  Simon Emmert committed Apr 29, 2020 551  member functions, which have been deprecated in DuMux 2.9:  Timo Koch committed Mar 24, 2016 552 553 554  - Everything listed as deprecated below has been removed.  Simon Emmert committed Apr 29, 2020 555 Differences Between DuMux 2.8 and DuMux 2.9  Thomas Fetzer committed Jan 08, 2016 556 557 558 =================================================== * IMPORTANT NOTES:  Simon Emmert committed Apr 29, 2020 559  - DuMux 2.9 is expected to run based on either Dune 2.4 or Dune 3.0. We will  Bernd Flemisch committed Mar 24, 2016 560  try to keep the compatibility with Dune 3.0 as long as it is technically  Simon Emmert committed Apr 29, 2020 561  feasible and our resources allow it. If you want to use DuMux multidomain  Bernd Flemisch committed Mar 24, 2016 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585  models, you have to stick with the Dune 2.4 core and specific versions of other modules, see test/multidomain/README for details. - The ALUGrid stand-alone library cannot be used any longer. Use the module [dune-alugrid](https://gitlab.dune-project.org/extensions/dune-alugrid) instead. Both the releases/2.4 branch and the master should work. - The above is not true if you like to run a sequential MPFA model on an ALUGrid. Then, you currently have to use the master-old branch of dune-alugrid. We will try to fix this as soon as possible. Alternatively, UGGrid or YaspGrid can be chosen as grid managers. - Instead of using AlbertaGrid for the tests where dim < dimWorld, we now employ [dune-foamgrid](https://gitlab.dune-project.org/extensions/dune-foamgrid). Dune-foamgrid provides 1d and 2d simplex grids embedded in an arbitrary dimension world space. It features element parametrizations, runtime growth, runtime-movable vertices. You might still use AlbertaGrid, but it is not supported by our GridCreator. - If you like/have to use corner-point grids by means of the module dune-cornerpoint, you have to use (and partially patch) the 2015.10 release of [OPM](http://opm-project.org/?page_id=36). See patches/README for details.  Thomas Fetzer committed Jan 08, 2016 586 587  * IMPROVEMENTS and ENHANCEMENTS:  Bernd Flemisch committed Mar 24, 2016 588 589 590 591 592  - The folder structure has been changed according to [FS#250](http://www.dumux.org/flyspray/index.php?do=details&task_id=250). This has been a rather massive change affecting more than 1000 files. Close to 400 files have been moved and/or renamed. We made everything backwards-compatible, the worst thing that should happen  Simon Emmert committed Apr 29, 2020 593  after switching to DuMux 2.9, will be some warnings when including headers  Bernd Flemisch committed Mar 24, 2016 594 595 596 597 598 599 600 601 602 603  from old destinations/names. You can fix the include statements and get rid of the warnings by applying the bash script bin/fix_includes.sh to your source files, for example by executing  bash ../dumux/bin/fix_includes.sh file1 [file2 ...]  or  find . -name '*.[ch][ch]' -exec bash ../dumux/bin/fix_includes.sh {} \;   Timo Koch committed Dec 17, 2018 604  inside the folder that contains your files.  Kilian Weishaupt committed Mar 24, 2016 605 606 607 608  A patch is available to remove deprecated header files:  patch -p1 < patches/dumux-2.9-no-deprecated-headers.patch   Bernd Flemisch committed Mar 24, 2016 609  The benefits are hopefully:  Simon Emmert committed Apr 29, 2020 610  + A clearer structure in terms of the problems that you want to apply DuMux  Bernd Flemisch committed Mar 24, 2016 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627  for. Three main application areas on the top level: porousmediumflow, freeflow and geomechanics. The different numerical treatments "fully implicit" or "sequential" appear as discretization detail after the choice of the physical model. That's of course currently rather wishful thinking, but nevertheless where we are headed. The folder implicit on the top level now only contains physics-agnostic classes that can be used by any class of an application area. Please note the change from "decoupled" to "sequential" according to the related task [FS#252](http://www.dumux.org/flyspray/index.php?do=details&task_id=252). + Nicer include statements due to relaxation of the naming conventions for the header files. Compare the old  #include  with the new   Timo Koch committed Dec 17, 2018 628  #include  Bernd Flemisch committed Mar 24, 2016 629 630 631 632 633 634 635 636 637 638 639   The structure change is reflected in the test folder: + The tests fromtest/implicit/particular_model have been moved to test/porousmediumflow/particular_model/implicit. For example, test/implicit/2p has been moved to test/porousmediumflow/2p/implicit. + Analogously, the tests from test/decoupled/particular_model have been moved to test/porousmediumflow/particular_model/sequential. + The subfolders decoupled and implicit of test have been removed.  Simon Emmert committed Apr 29, 2020 640  + If you have cloned the DuMux Git repository and have local changes in the  Bernd Flemisch committed Mar 24, 2016 641 642 643 644 645 646 647  folders test/implicit or test/decoupled, you can expect merge conflicts for your next git pull. You can either deal with these conflicts directly or create a patch, remove the local changes, pull, and apply the patch afterwards with some care to respect the changed structure. - A two-phase multiple-interacting-continua (MINC) model has been added to  Simon Emmert committed Apr 29, 2020 648  the DuMux model portfolio. See test/porousmediumflow/2pminc/implicit for  Bernd Flemisch committed Mar 24, 2016 649 650 651 652 653 654 655  details. - The multidomain models have been restructured. Duplicated code has been reduced; isothermal and non-isothermal models are treated in a more consistent manner. - It is now possible to specify point sources for implicit models. A point  Simon Emmert committed Apr 29, 2020 656  source is a source term specified at any point location in e.g. kg/s. DuMux  Bernd Flemisch committed Mar 24, 2016 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675  will compute the correct control volume the source belongs to for you. Point sources can be e.g. solution and/or time-dependent. See tests (1p/implicit/pointsources, 2p/implicit/pointsources) for examples. - All tests use our standard GridCreator now. If it is possible to specify the grid entirely in the input-file, the corresponding DGF files have been deleted. In particular, a YaspGrid tensor grid can now also be specified via the input file only. - Several sections on our fluid/material framework have been moved from the handbook to the Doxygen documentation. - The three-phase constitutive relations from material/fluidmatrixinteractions have been reworked to be consistent with their two-phase analogues. In particular, an EffToAbsLaw and regularization classes have been implemented. - In case of a simulation stop due to too many timestep subdivisions, restart files of both the current and the old solution are automatically generated.  Timo Koch committed Mar 08, 2016 676   Thomas Fetzer committed Jan 08, 2016 677 * IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:  Bernd Flemisch committed Mar 24, 2016 678 679 680 681  - All flux variables are now default-constructible. While the non-trivial constructors are deprecated, model implementers might be required to make their flux variables default-constructible too. In particular, this affects you if you develop your own flux variables that  Timo Koch committed Dec 17, 2018 682  + inherit from flux variables from dumux-stable, such as the  Bernd Flemisch committed Mar 24, 2016 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704  ImplicitDaryFluxVariables, + and/or are used in a local residual from dumux-stable. See the [mailing list](https://listserv.uni-stuttgart.de/pipermail/dumux/2016q1/001551.html) for details. - For the multidomain models, the notation of the boundary condition types has changed. This is especially important for all momentum boundary conditions. In general: + couplingInflow -> couplingNeumann + couplingOutflow -> couplingDirichlet - But for the momentum balances: + couplingInflow -> couplingDirichlet + couplingOutflow -> couplingNeumann - Due to the change in the three-phase fluid-matrix-interactions, you might have to adjust your spatial parameters. You should get a compiler warning message that gives you more details. - The TypeTags ImplicitModel and ExplicitModel have been deleted. They haven't been used apart from one internal inheritance. See FS#304 for details.  Timo Koch committed Mar 08, 2016 705   Timo Koch committed Jan 18, 2016 706 * Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.9: BEWARE: The  Thomas Fetzer committed Jan 08, 2016 707 708 709  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.  Bernd Flemisch committed Mar 24, 2016 710 711 712 713 714 715  - The word Decoupled in the TypeTags has been replaced by Sequential: + DecoupledModel -> SequentialModel + DecoupledOneP -> SequentialOneP + DecoupledTwoP -> SequentialTwoP + DecoupledTwoPTwoC -> SequentialTwoPTwoC + DecoupledTwoPTwoCAdaptive -> SequentialTwoPTwoCAdaptive  Bernd Flemisch committed Mar 07, 2016 716   Thomas Fetzer committed Jan 08, 2016 717   Timo Koch committed Jan 18, 2016 718 * Deprecated CLASSES/FILES, to be removed after 2.9:  Bernd Flemisch committed Mar 24, 2016 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743  - Self-written parallel linear solvers and corresponding infrastructure, according to [FS#293](http://www.dumux.org/flyspray/index.php?do=details&task_id=293). For parallel runs, use the AMGBackend instead. For sequential runs, direct replacements are: + BoxBiCGStabILU0Solver -> ILU0BiCGSTABBackend + BoxBiCGStabSORSolver -> SORBiCGSTABBackend + BoxBiCGStabSSORSolver -> SSORBiCGSTABBackend + BoxBiCGStabJacSolver -> JacBiCGSTABBackend + BoxBiCGStabGSSolver -> GSBiCGSTABBackend + BoxCGILU0Solver -> ILUnCGBackend + BoxCGSORSolver -> SORCGBackend + BoxCGSSORSolver -> SSORCGBackend + BoxCGJacSolver -> JacCGBackend + BoxCGGSSolver -> GSCGBackend + IMPETBiCGStabILU0Solver -> ILU0BiCGSTABBackend - CubeGridCreator, functionality available in default GridCreator - SimplexGridCreator, functionality available in default GridCreator - DgfGridCreator, functionality available in default GridCreator (since 2.8) - Decoupled...Indices -> Sequential...Indices (BEWARE: maybe no compiler warnings)  Thomas Fetzer committed Jan 08, 2016 744   Timo Koch committed Jan 18, 2016 745 * Deprecated MEMBER FUNCTIONS, to be removed after 2.9:  Thomas Fetzer committed Jan 08, 2016 746   Timo Koch committed Jan 18, 2016 747 * Deprecated protected MEMBER VARIABLES, to be removed after 2.9: BEWARE: Older  Thomas Fetzer committed Jan 08, 2016 748 749 750 751  compilers will not print any warning if a deprecated protected member variable is used. * DELETED classes/files, property names, constants/enums,  Simon Emmert committed Apr 29, 2020 752  member functions, which have been deprecated in DuMux 2.8:  Bernd Flemisch committed Mar 24, 2016 753 754  - Everything listed as deprecated below has been removed.  Thomas Fetzer committed Jan 08, 2016 755   Simon Emmert committed Apr 29, 2020 756 Differences Between DuMux 2.7 and DuMux 2.8  Thomas Fetzer committed Jun 17, 2015 757 758 759 =================================================== * IMPORTANT NOTES:  Simon Emmert committed Apr 29, 2020 760  - DuMux 2.8 is expected to run based on either Dune 2.3 or Dune 2.4. However,  Bernd Flemisch committed Sep 23, 2015 761 762 763 764 765  no attempt has been made to fix the warnings arising from the deprecation of EntityPointer in Dune 2.4. This will be made during the next release cycle. Moreover, using the multidomain models based on Dune 2.4 is currently only possible by patching dune-multidomaingrid. See test/multidomain/README for details.  Thomas Fetzer committed Jun 17, 2015 766   Christoph Grueninger committed Jun 24, 2015 767 768 769 * DELETED BUILD SYSTEM: The Autotools based build system was removed, use the CMake based build system as it is default since Dune 2.4.  Thomas Fetzer committed Jun 17, 2015 770 * IMPROVEMENTS and ENHANCEMENTS:  Bernd Flemisch committed Sep 23, 2015 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793  - New fully-implicit porous-media models for two fluid phases that may consist of an arbitrary number of components have been added. The basic one is associated with the property TwoPNC, see test/implicit/2pnc. A more advanced one that incorporates solid-fluid phase changes is indicated by TwoPNCMin, see test/implicit/2pncmin. - The implicit cell-centered models now can use adaptive grid refinement. To make a test problem adaptive, just set the property AdaptiveGrid to true and choose corresponding indicators via AdaptionInitializationIndicator and AdaptionIndicator, see test/implicit/2p/lensproblem.hh for an example. So far, indicators are only provided for the TwoPModel. Indicators for other models will be provided in the future, as well as parallelization and box discretization. - With the CpGridCreator, a grid creator has been introduced that reads from a Petrel output / Eclipse input file and generates a CpGrid that is offered by the OPM module dune-cornerpoint. The fully-implicit cell-centered models are now able to deal with cornerpoint grids. See test/implicit/2p/test_cc2pcornerpoint for a test of the functionality. A realistic corner-point grid will be provided in dumux-lecture soon. The OPM modules need to be patched to be compatible with Dune's CMake based build system, see patches/README for details.  Thomas Fetzer committed Sep 23, 2015 794  - Zero equation turbulence models (zeroeq) have been added as new models  Bernd Flemisch committed Sep 23, 2015 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818  to the freeflow folder. Tests for coupling a turbulent free flow using zeroeq turbulence models with flow in a porous medium have been added. - A new class GridCreator is now the new standard grid creator replacing DgfGridCreator. It comprises all functionality from the DgfGridCreator (see also immediate interface changes), plus the ability to read gmsh, or to build a structured grid (only with Dune 2.4) by merely changing the input file. - Multidomain problems can now be run by using the general start routine, just as most other problems. For this, the constructor of the multidomain problems has been changed and the InterfaceMeshCreator has been replaced by the InterfaceGridCreator, see below. - The Richards model has now an additional flag useHead, which can be used to switch between a pressure-saturation and a pressureHead-watercontent formulation. The primary variables are either pressure in [Pa] or pressure head in [cm], respectively. Default is useHead = false. See test/implicit/richards for details. - A bug in the diffusion term in the freeflow models has been fixed. - A lot of work has been devoted to improving the testing environment, adding new tests, restructuring the handbook and improving the documentation.  Thomas Fetzer committed Jun 17, 2015 819 820  * IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:  Bernd Flemisch committed Sep 23, 2015 821   Timo Koch committed Aug 20, 2015 822 823  - The (new standard) GridCreator's public method gridPtr has been removed. For using PARAMETERS from DGF files use the GridCreators parameters method via  Bernd Flemisch committed Sep 23, 2015 824 825 826 827  GridCreator::parameters(...). See test/implicit/co2 for an example. - The use and support for SGrid is dropped. SGrid is deprecated in Dune 2.4. Use YaspGrid instead.  Thomas Fetzer committed Jun 17, 2015 828   Christoph Grueninger committed Jun 24, 2015 829 * Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.8: BEWARE: The  Thomas Fetzer committed Jun 17, 2015 830 831 832 833  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.  Christoph Grueninger committed Jun 24, 2015 834 * Deprecated CLASSES/FILES, to be removed after 2.8:  Thomas Fetzer committed Jul 24, 2015 835 836 837  - The InterfaceMeshCreator has been moved to InterfaceGridCreator and adapted to the structure of other grid creators, it can simply be used by specifying the GridCreator TypeTag.  Thomas Fetzer committed Jun 17, 2015 838   Christoph Grueninger committed Jun 24, 2015 839 * Deprecated MEMBER FUNCTIONS, to be removed after 2.8:  Bernd Flemisch committed Sep 23, 2015 840 841 842 843  - The constructor of the multidomain problems has changed. They will now be called directly from the start.hh, identical to the other problems. The new parameters are the TimeManager and the HostGrid.  Christoph Grueninger committed Jul 21, 2015 844  - The method simulate(Scalar dtInitial, Scalar tEnd) from MultiDomainProblem,  Bernd Flemisch committed Sep 23, 2015 845 846 847 848 849 850 851  is unused and will be dropped. - The GnuplotInterface functions are now called without giving a window number. If plots should be plotted in different windows, different GnuplotInterface objects are now required. This affects also all other plots in the "io" folder.  Thomas Fetzer committed Jul 24, 2015 852 853  - The write() function in plotoverline2d.hh now has an append function, to be able to decide whether the previously written file should be kept or not.  Thomas Fetzer committed Jun 17, 2015 854   Christoph Grueninger committed Jun 24, 2015 855 856 * Deprecated protected MEMBER VARIABLES, to be removed after 2.8: BEWARE: Older compilers will not print any warning if a deprecated protected member variable  Thomas Fetzer committed Jun 17, 2015 857 858 859  is used. * DELETED classes/files, property names, constants/enums,  Simon Emmert committed Apr 29, 2020 860  member functions, which have been deprecated in DuMux 2.7:  Thomas Fetzer committed Jun 17, 2015 861 862  Everything listed as deprecated below has been removed.  Simon Emmert committed Apr 29, 2020 863 Differences Between DuMux 2.6 and DuMux 2.7  Bernd Flemisch committed Oct 29, 2014 864 ===================================================  Bernd Flemisch committed Jan 16, 2015 865   Beatrix Becker committed Apr 01, 2015 866 * IMPORTANT NOTES:  Simon Emmert committed Apr 29, 2020 867  - DuMux 2.7 should work with DUNE 2.3 as well as 2.4. However, at the time of  Beatrix Becker committed Apr 01, 2015 868  writing, DUNE-multidomain(grid) doesn't work with DUNE 2.4. Therefore, if a  Simon Emmert committed Apr 29, 2020 869  DuMux multidomain model should be used, DUNE 2.3 is required. See  Beatrix Becker committed Apr 01, 2015 870 871  test/multidomain/README for details.  Christoph Grueninger committed Apr 09, 2015 872 873 874  - The 2.3 branch of dune-alugrid has no CMake support, use dune-alugrid master respectivly 2.4. Or you can fall back to Autotools or use legacy ALUGrid 1.52.  Christoph Grueninger committed Apr 07, 2015 875   Bernd Flemisch committed Jan 27, 2015 876 * IMPROVEMENTS and ENHANCEMENTS:  Bernd Flemisch committed Jan 28, 2015 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891  - Since 2.6, all isothermal implicit porous-media models (except 2pdfm) can be easily enhanced with the energy equation. For 2.7, this has been also carried out for the models that were only isothermal before, namely, 1p, 3p and richards. Tests have been written and are provided in test/implicit. In order to keep the number of subfolders bearable, isothermal as well as thermal tests are gathered in the model folders "1p", "1p2c", ..., "3p3c", "mpnc", "richards" (without the "ni") and the corresponding "ni"-folders have been deleted. - All implicit porous-media models (except 2pdfm) are now able to run on grids with dim < dimWorld. In implicit/1p, four new tests are added that run the 1p test problem on 1d-3d and 2d-3d Alberta grids with box and cell-centered, respectively. Compilation has been tested also for all other models, but no runtime testing has been performed.  Bernd Flemisch committed Jan 27, 2015 892 893 894 895 896 897  - 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 committed Mar 31, 2015 898 899 900 901  - The geomechanics ElTwoPModel runs in parallel now. This is made possible by a dedicated solver, the El2PAMGBackend which has to be set for the property LinearSolver in the problem file. See test/geomechanics/el2p for details.  Bernd Flemisch committed Jan 28, 2015 902 903 904 905  - Before, velocity output for the implicit porous-media models only worked for cube grids. This has been generalized to simplices (box and cc) and prisms/ pyramids (box only).  Thomas Fetzer committed Mar 26, 2015 906 907 908 909 910 911 912 913 914 915 916  - Revised and fixed restart capability for the multidomain models. - A gnuplot interface has been added (works only with CMake). With this interface it is possible to plot material laws (like in the 2p2cni test), or to generate live-updating output (like in test_2cnistokes2p2cni). The gnuplot interface reads analytical functions, data file or data arrays. - The fuzzycompare script for automatic testing has been improved. Instead of printing only the first deviation from the reference solution, it now prints the maximum deviation in each field/variable.  Simon Emmert committed Apr 29, 2020 917 * DEPRECATED BUILD SYSTEM: DuMux 2.7 will be the last release which can be built  Christoph Grueninger committed Mar 30, 2015 918  with the Autotools based build system. It is deprecated and will be removed  Simon Emmert committed Apr 29, 2020 919  for DuMux 2.8. We encourage the change towards CMake, especially with the  Christoph Grueninger committed Mar 30, 2015 920 921 922  upcoming DUNE 2.4. The warning can be suppressed with --disable-dumux-deprecated-autotools  Bernd Flemisch committed Jan 16, 2015 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 * 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 committed Jan 27, 2015 943 944 945 946 947 948 949 950 951 952  - 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.  Bernd Flemisch committed Feb 02, 2015 953 954 955  - The properties "AMGPDELabBackend" and "AMGLocalFemMap" have been unified to "AmgTraits".  Bernd Flemisch committed Jan 27, 2015 956 957 958 959 960 961 962 963 964 965 966 967 968 * 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 committed Jan 16, 2015 969 * Deprecated CLASSES/FILES, to be removed after 2.7:  Bernd Flemisch committed Feb 02, 2015 970 971 972 973 974  - SeqAMGBackend and ScaledSeqAMGBackend, replaced by AMGBackend. - P0LocalFiniteElementMap. - CellData2P2Cmultiphysics, replaced by CellData2P2CMultiPhysics.  Christoph Grueninger committed Nov 21, 2014 975   Christoph Grueninger committed Apr 02, 2015 976 977  - BoxLocalOperator from dumux/multidomain/common/pdelablocaloperator.hh.  Bernd Flemisch committed Jan 16, 2015 978 979 980 981 982 983 984 * 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 committed Jan 27, 2015 985 986 987 988 989 990 991 992 993  - 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"  Christoph Grueninger committed Nov 21, 2014 994 995 996 997  - 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 committed Oct 29, 2014 998   Bernd Flemisch committed Jan 27, 2015 999 * Deprecated protected MEMBER VARIABLES, to be removed after 2.7: BEWARE: Older  Timo Koch committed Dec 17, 2018 1000  compilers will not print any warning if a deprecated protected member variable