CHANGELOG.md 5.71 KB
Newer Older
Lukas Riedel's avatar
Lukas Riedel committed
1 2
# DORiE Changelog

Lukas Riedel's avatar
Lukas Riedel committed
3

Lukas Riedel's avatar
Lukas Riedel committed
4 5
## Unreleased

Lukas Riedel's avatar
Lukas Riedel committed
6
### Added
Lukas Riedel's avatar
Lukas Riedel committed
7 8
* DORiE now depends on [`yaml-cpp`](https://github.com/jbeder/yaml-cpp/), a
    library for reading YAML files. The version required is >=5.2.0.
Lukas Riedel's avatar
Lukas Riedel committed
9 10 11
* New classes representing parameterizations. Every parameterization must now
    derive from `RichardsParameterization`, and return function objects
    representing parameterization functions.
Lukas Riedel's avatar
Lukas Riedel committed
12 13

### Changed
Lukas Riedel's avatar
Lukas Riedel committed
14 15 16 17 18
* `Simulation` is renamed `RichardsSimulation` and moved to 
	[richards_simulation.hh](dune/dorie/interface/richards_simulation.hh).
* `RichardsSimulation` now has its own `RichardsSimulationTraits` derived from
    `BaseTraits`, which defines all its member types. `BaseTraits` now have
    reduced content and are intended to be shared between models/simulations.
Lukas Riedel's avatar
Lukas Riedel committed
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
* Data structures for storing and accessing parameters. The new class
    `FlowParameters` maps parameter sets and scaling factors to every grid cell
    on the coarsest grid level, and only stores one set of parameters for
    each soil layer. Before querying the parameterization functions, users need
    to call `FlowParameters::bind` with a grid entity to cache the appropriate
    data. All classes and functions querying parameter data have been updated.
    
    The old parameterization classes located in
    [`param_base.hh`](dune/dorie/solver/param_base.hh),
    [`param_factory.hh`](dune/dorie/solver/param_factory.hh), and
    [`param_van_genuchten.hh`](dune/dorie/solver/param_van_genuchten.hh)
    are still used for reading in data for the new storage scheme.
    The respective objects are freed once a simulation commences.

### Deprecated
* The configuration file key `[parameters.interpolation]` is deprecated due to
    the new scheme for storing parameterization data. DORiE now only supports 
    nearest-neighbor interpolation of parameters and scaling factors.
Lukas Riedel's avatar
Lukas Riedel committed
37 38 39 40 41 42 43 44 45 46 47


## 1.1.1 (2018-08-21)

### Added
* Documentation of Docker images and their usage in the CI/CD pipeline.

### Changed
* Rebuilds of the DUNE environment Docker image are now triggered by setting the
    CI variable `REBUILD_BASE_IMAGE` to a non-empty value. Previously, the
    builds in stage `setup` where triggered by any manual pipeline run.
Lukas Riedel's avatar
Lukas Riedel committed
48
* The test system folder was renamed from `testing` to [`test`](test).
Santiago Ospina's avatar
Santiago Ospina committed
49 50 51 52 53 54 55 56 57 58
* `RichardsSimulation` now uses one vector of coefficients instead of two, which
    now is a `shared_ptr` instead a `unique_ptr`.
* Every `VTKAdapter` is now able to be used as `GridFunctionAdapter` of the
    solution vector.
* `GradientFluxAdapter` was reimplemented and renamed `WaterFluxAdapter`.
* Every grid function adapter has its own file and are gathered in the 
    subdirectory [dune/dorie/solver/adapters](dune/dorie/solver/adapters)
* `VTKAdapters` are now managed with `shared_ptr` instead of references.
* `OutputWriter` class is deprecated in favor of an minimal extension of the 
    usual `VTKSequenceWriter` for grid functions called
Santiago Ospina's avatar
Santiago Ospina committed
59
    `GridFunctionVTKSequenceWriter`.
Lukas Riedel's avatar
Lukas Riedel committed
60

Lukas Riedel's avatar
Lukas Riedel committed
61 62 63 64
### Fixed
* Removed VTK output from `dorie_mass_conservation` executable, which would
    cause the corresponding test to fail if the designated output directory did
    not exist.
Lukas Riedel's avatar
Lukas Riedel committed
65
* Removed CI artifacts of `test` stage from `deploy` jobs.
Lukas Riedel's avatar
Lukas Riedel committed
66 67 68
* Correctly estimate the number of row entries in the matrix backend based on
    the DG discretization and proper static blocking. This can lead to a
    performance improvement for large problems.
Lukas Riedel's avatar
Lukas Riedel committed
69 70 71
* VTK output is now written _before_ the grid is adapted. Previously, the output
    displayed the adapted grid and not the one the solution was computed on.
* Grid adaptation is skipped after computing the final solution.
Lukas Riedel's avatar
Lukas Riedel committed
72 73
* Path to Pipeline artifacts for `test` stage. The artifacts are now correctly
    captured and can be viewed and downloaded from the GitLab web interface.
Lukas Riedel's avatar
Lukas Riedel committed
74 75
* Fix a bug in the boundary condition evaluation where an `end()` iterator
    was dereferenced without error.
Lukas Riedel's avatar
Lukas Riedel committed
76 77
* Re-introduced deployment of the documentation which can now be found online
    at https://dorie-doc.netlify.com/.
Lukas Riedel's avatar
Lukas Riedel committed
78

Lukas Riedel's avatar
Lukas Riedel committed
79

Lukas Riedel's avatar
Lukas Riedel committed
80
## 1.1.0 (2018-07-27)
Lukas Riedel's avatar
Lukas Riedel committed
81

Lukas Riedel's avatar
Lukas Riedel committed
82
### Added
Lukas Riedel's avatar
Lukas Riedel committed
83 84
* DORiE now employs a `SubsamplingVTKWriter` for higher output precision.
    Subsampling levels are controlled via the new key `output.subsamplingLevel`.
Santiago Ospina's avatar
Santiago Ospina committed
85 86 87
* Automatic deployment of `devel` and stable DORiE Docker Images to Docker Hub.
* Automatic update of the DUNE environment Docker Image for `master` builds.
* CI pipeline now also compiles a Debug build with the LLVM Clang compiler.
Lukas Riedel's avatar
Lukas Riedel committed
88
* Add `.gitattributes` for `CHANGELOG.md` to reduce merge conflicts with
Santiago Ospina's avatar
Santiago Ospina committed
89
    `merge=union`.
Lukas Riedel's avatar
Lukas Riedel committed
90
* Public API definition in documentation.
Lukas Riedel's avatar
Lukas Riedel committed
91

Lukas Riedel's avatar
Lukas Riedel committed
92
### Changed
Santiago Ospina's avatar
Santiago Ospina committed
93
* Update code base to *DUNE v2.6*.
Lukas Riedel's avatar
Lukas Riedel committed
94
* Raise software requirements to versions available on Ubuntu 18.04 LTS
Santiago Ospina's avatar
Santiago Ospina committed
95 96
    (Bionic Beaver).
* Switch VTK output from conforming to non-conforming.
Lukas Riedel's avatar
Lukas Riedel committed
97
* Use `multicore` build tag only for `test:parallel` build because the current
Santiago Ospina's avatar
Santiago Ospina committed
98
    GitLab Runner cannot handle the load.
Lukas Riedel's avatar
Lukas Riedel committed
99 100
* Use the `OVLP_AMG_4_DG` linear solver for all computations, including
    sequential ones. This significantly improves performance for large problems.
Lukas Riedel's avatar
Lukas Riedel committed
101
* Change compilation order which reduces RAM usage when compiling in parallel.
Santiago Ospina's avatar
Santiago Ospina committed
102
* Decentralization of the header system so that in most of the header files are 
Santiago Ospina's avatar
Santiago Ospina committed
103
	independent of each other.
Lukas Riedel's avatar
Lukas Riedel committed
104 105 106 107 108

### Deprecated
* `output.subsamplingLevel` is optional and defaults to 0 if not given
    explicitly in the config file. The key will become mandatory in future
    versions.
Lukas Riedel's avatar
Lukas Riedel committed
109

Lukas Riedel's avatar
Lukas Riedel committed
110 111
### Removed
* Complete doxygen documentation from Sphinx docs.
Lukas Riedel's avatar
Lukas Riedel committed
112

Lukas Riedel's avatar
Lukas Riedel committed
113
### Fixed
Lukas Riedel's avatar
Lukas Riedel committed
114 115
* The source code is now compatible to the Clang LLVM compiler.
    DORiE can now be compiled with the onboard compiler on macOS.
Lukas Riedel's avatar
Lukas Riedel committed
116 117
* Fix finite element map used for simplex grids. The old one did not implement
    a discontinuous function space.
Lukas Riedel's avatar
Lukas Riedel committed
118
* Allow warnings on ParMETIS not being available for parallel computations.
Lukas Riedel's avatar
Lukas Riedel committed
119 120


Lukas Riedel's avatar
Lukas Riedel committed
121 122
## 1.0.0 (2018-03-28)

Santiago Ospina's avatar
Santiago Ospina committed
123
First stable version.