Skip to content
Snippets Groups Projects
To find the state of this project's repository at the time of any of these versions, check out the tags.
CHANGELOG.md 65.18 KiB

Differences Between DuMuX 2.11 and DuMuX 2.12

  • IMPORTANT NOTES:

    • DuMuX 2.12 is expected to run based on Dune 2.4.1, 2.5, 2.6 and the Dune 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 you want to use Dumux multidomain models, you have to stick with the Dune 2.4 core and specific versions of other modules, see test/multidomain/README for details. Also the geomechanics models require Dune 2.4 and PDELab 2.0.

    • DuMux 2.12 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.

    • For employing corner-point grids by means of opm-grid (former dune-cornerpoint), the OPM releases 2017.04 or 2017.10 have to be used.

  • IMPROVEMENTS and ENHANCEMENTS:

    • Four new tutorial exercises have been added in the folder tutorial. They can be built by executing make build_tutorials in the build folder. Each exercise comes with detailed instructions:

      1. Exercise 1
      2. Exercise 2
      3. Exercise 3
      4. Exercise 4
    • 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).

    • A paraview python script for exporting 2d pictures from *.vtu files has been added.

    • A class for estimating turbulence properties has been added with turbulenceproperties.hh.

  • 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.
  • DELETED classes/files, property names, constants/enums, member functions, which have been deprecated in DuMuX 2.11:

    • Everything listed as deprecated below has been removed.

Differences Between DuMuX 2.10 and DuMuX 2.11

  • IMPORTANT NOTES:

    • DuMuX 2.11 is expected to run based on Dune 2.4.1, 2.5 and the Dune 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 you want to use Dumux multidomain models, you have to stick with the Dune 2.4 core and specific versions of other modules, see test/multidomain/README for details.

    • DuMux 2.11 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.

    • 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:

    • 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.
    • 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.
    • In the ZeroEq models, the properties BBoxMinIsWall and BBoxMaxIsWall have been replaced by the functions bBoxMaxIsWall() and bBoxMaxIsWall() in the problem file.
    • 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
  • 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, member functions, which have been deprecated in DuMuX 2.10:

    • Everything listed as deprecated below has been removed.

Differences Between DuMuX 2.9 and DuMuX 2.10

  • IMPORTANT NOTES:

    • DuMuX 2.10 is expected to run based on Dune 2.4.1, 2.5 and the Dune 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 you want to use Dumux multidomain models, you have to stick with the Dune 2.4 core and specific versions of other modules, see test/multidomain/README for details.

    • DuMux 2.10 requires at least GCC 4.9 or Clang 3.5 in their C++-14 mode.

    • 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:

    • 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 facilitated. See test_cc1pwithgstat in test/porousmediumflow/1p/implicit. This tool can be installed using the bin/installexternal.sh script. If cmake does not find gstat, one has to specify the GSTAT_ROOT variable, see the standard optim.opts or debug.opts.

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

  • IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:

    • The problem class interface needs to provide the method maxTimeStepSize(). This is important if you implement problem classes not deriving from the base problem classes in Dumux (ImplicitProblem, OneModelProblem, ImpetProblem, and MultidomainProblem).
    • 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().
  • 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 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.
  • Deprecated CLASSES/FILES, to be removed after 2.10:

    • The class DiffusivityConstantTau<TypeTag, Scalar> was renamed to DiffusivityConstant<TypeTag> and is located in a according new header. The old class, its header and the property tau are deprecated.

    • PointSourceHelper<TypeTag> has been deprecated. Use BoundingBoxTreePointSourceHelper<TypeTag> instead.

    • The classes Dumux::Liquid/GasPhase<Scalar, Component> have been moved to the namespace Dumux::FluidSystems.

  • Deprecated MEMBER FUNCTIONS, to be removed after 2.10:

    • checkEffectiveSaturation of the classes PlotMaterialLaw<TypeTag> in dumux/io.

    • concentrationGrad of the class TwoPNCFluxVariables<TypeTag>. Use moleFractionGrad instead, with the obviously different physical meaning.

  • DELETED classes/files, property names, constants/enums, member functions, which have been deprecated in DuMuX 2.9:

    • Everything listed as deprecated below has been removed.

Differences Between DuMuX 2.8 and DuMuX 2.9

  • IMPORTANT NOTES:

    • DuMuX 2.9 is expected to run based on either Dune 2.4 or Dune 3.0. We will try to keep the compatibility with Dune 3.0 as long as it is technically feasible and our resources allow it. If you want to use Dumux multidomain 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 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. 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. See patches/README for details.

  • IMPROVEMENTS and ENHANCEMENTS:

    • The folder structure has been changed according to FS#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 after switching to Dumux 2.9, will be some warnings when including headers 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 {} \;

      inside the folder that contains your files.
      A patch is available to remove deprecated header files:

      patch -p1 < patches/dumux-2.9-no-deprecated-headers.patch

      The benefits are hopefully:

      • A clearer structure in terms of the problems that you want to apply Dumux 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.

      • Nicer include statements due to relaxation of the naming conventions for the header files. Compare the old

        #include <dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh>

        with the new

        #include <dumux/multidomain/2cnistokes2p2cni/localoperator.hh> 

      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.

      • If you have cloned the Dumux Git repository and have local changes in the 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 the Dumux model portfolio. See test/porousmediumflow/2pminc/implicit for 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 source is a source term specified at any point location in e.g. kg/s. Dumux 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.

  • IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:

    • 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

      • inherit from flux variables from dumux-stable, such as the ImplicitDaryFluxVariables,
      • and/or are used in a local residual from dumux-stable. See the mailing list 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.

  • Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.9: 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.

    • The word Decoupled in the TypeTags has been replaced by Sequential:
      • DecoupledModel -> SequentialModel
      • DecoupledOneP -> SequentialOneP
      • DecoupledTwoP -> SequentialTwoP
      • DecoupledTwoPTwoC -> SequentialTwoPTwoC
      • DecoupledTwoPTwoCAdaptive -> SequentialTwoPTwoCAdaptive
  • Deprecated CLASSES/FILES, to be removed after 2.9:

    • Self-written parallel linear solvers and corresponding infrastructure, according to FS#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)

  • Deprecated MEMBER FUNCTIONS, to be removed after 2.9:

  • Deprecated protected MEMBER VARIABLES, to be removed after 2.9: BEWARE: Older compilers will not print any warning if a deprecated protected member variable is used.

  • DELETED classes/files, property names, constants/enums, member functions, which have been deprecated in DuMuX 2.8:

    • Everything listed as deprecated below has been removed.

Differences Between DuMuX 2.7 and DuMuX 2.8

  • IMPORTANT NOTES:

    • DuMuX 2.8 is expected to run based on either Dune 2.3 or Dune 2.4. However, 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.
  • DELETED BUILD SYSTEM: The Autotools based build system was removed, use the CMake based build system as it is default since Dune 2.4.

  • IMPROVEMENTS and ENHANCEMENTS:

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

    • Zero equation turbulence models (zeroeq) have been added as new models 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.

  • IMMEDIATE INTERFACE CHANGES not allowing/requiring a deprecation period:

    • The (new standard) GridCreator's public method gridPtr has been removed. For using PARAMETERS from DGF files use the GridCreators parameters method via 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.

  • Deprecated PROPERTY and PARAMETER NAMES, to be removed after 2.8: 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.

  • Deprecated CLASSES/FILES, to be removed after 2.8:

    • 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.
  • Deprecated MEMBER FUNCTIONS, to be removed after 2.8:

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

    • The method simulate(Scalar dtInitial, Scalar tEnd) from MultiDomainProblem, 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.

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

  • Deprecated protected MEMBER VARIABLES, to be removed after 2.8: BEWARE: Older compilers will not print any warning if a deprecated protected member variable is used.

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