dumux merge requestshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests2020-03-13T15:11:15Zhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1845Feature/istl solver factory2020-03-13T15:11:15ZTimo Kochtimokoch@math.uio.noFeature/istl solver factoryAdd Istl solver factory backend originally implemented by @msblatt
* Depends on [MR 349 in dune-istl](https://gitlab.dune-project.org/core/dune-istl/merge_requests/349) (merged)
* Depends on !1848
* Supersedes !1839 and !1841.
...Add Istl solver factory backend originally implemented by @msblatt
* Depends on [MR 349 in dune-istl](https://gitlab.dune-project.org/core/dune-istl/merge_requests/349) (merged)
* Depends on !1848
* Supersedes !1839 and !1841.
* Fixes #810
* Fixes #652
TODO:
* [x] Rebase if !1850 is merged and adapt structure to new parallel solver internal structure
* [x] Fix template parameter -> only: `<LinearSolverTraits>`. Depends on fix for #805 (see !1850)
* [x] ~~Deprecate old preconditioner params (without subgroup)?~~ -> to be fixed for #825
* [x] Add unit test for the linear solver -> base on dune-istl test as suggested in !1850
**Notes to the reviewer**
Test with dune master (uses solver factory) and dune 2.7 (uses amg). Only need to test `test_richards_lens_*`, `test_shallowwater_dambreak` and `test_linearsolver`3.2Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1841WIP: Feature/test richards istl factory2020-01-29T12:37:41ZTimo Kochtimokoch@math.uio.noWIP: Feature/test richards istl factoryDepends on !1839.
Compiles and test passes for sequential and parallel richards testsDepends on !1839.
Compiles and test passes for sequential and parallel richards tests3.2https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1840WIP: [test][params] Add unit test for translating solver parameters to dune-i...2020-03-11T15:48:59ZTimo Kochtimokoch@math.uio.noWIP: [test][params] Add unit test for translating solver parameters to dune-istl format* [ ] If this works extract the extractAndTranslate function to `parameters.hh`.
* [ ] Get rid of C++17 (if we don't allow it until this is merged)* [ ] If this works extract the extractAndTranslate function to `parameters.hh`.
* [ ] Get rid of C++17 (if we don't allow it until this is merged)3.2https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1839Added first version of generic factory using istl solver factory.2020-01-29T18:50:49ZMarkus BlattAdded first version of generic factory using istl solver factory.*Adds a generic backend that is configurable via parameters:
~~**This is still work in progress and not fully tested, yet. Compiles, did not test running yet.**~~
*Based on [MR 349 in dune-istl](https://gitlab.dune-project.org/core...*Adds a generic backend that is configurable via parameters:
~~**This is still work in progress and not fully tested, yet. Compiles, did not test running yet.**~~
*Based on [MR 349 in dune-istl](https://gitlab.dune-project.org/core/dune-istl/merge_requests/349)
Configuration parameters (Dumux style are)
- `Verbosity`
- `MaxIterations`
- `ResidualReduction`
- `Type`
- `Restart`
- `MaxOrthogonalizationVectors`
- `PreconditionerVerbosity`
- `PreconditionerType`
- `PreconditionerIterations`
- `PreconditionerRelaxation`
- `ILUOrder`
- `ILUResort`
- `AmgSmootherRelaxation`
- `AmgSmootherIterations`
- `AmgMaxLevel`
- `AmgCoarsenTarget`
- `AmgProlongationDampingFactor`
- `AmgAlpha`
- `AmgBetaAmgAdditive`
- `AmgGamma`
- `AmgPreSmoothingSteps`
- `AmgPostSmoothingSteps`
- `AmgCriterionSymmetric`
- `AmgStrengthMeasure`
- `AmgDiagonalRowIndex`
Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1836Feature/newton unit test2020-01-26T15:59:43ZTimo Kochtimokoch@math.uio.noFeature/newton unit test3.2Kilian WeishauptKilian Weishaupthttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1831Resolve "[shallowwater] upwind mobility for shallow water flux."2020-03-18T20:57:46ZLeopold StadlerResolve "[shallowwater] upwind mobility for shallow water flux."Closes #800Closes #8003.2Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1828[solidsystem] Implement one component solid system2020-01-03T09:07:14ZTimo Kochtimokoch@math.uio.no[solidsystem] Implement one component solid system<!--
Thanks for sending a merge request!
If this is your first time, read our [contributing guidelines](/CONTRIBUTING.md)
-->
**What this MR does / why does DuMux need it**:
The inert solid system can be made more general by making it...<!--
Thanks for sending a merge request!
If this is your first time, read our [contributing guidelines](/CONTRIBUTING.md)
-->
**What this MR does / why does DuMux need it**:
The inert solid system can be made more general by making it possible to consider the component non-inert.
We only need the new implementation, hence I deprecated the InertSolidPhase system.3.2https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1824[cppstandard] Require C++172020-01-29T13:09:43ZTimo Kochtimokoch@math.uio.no[cppstandard] Require C++17After receiving no user objections this patch upgrades the required C++ standard to C++17.
After merging we are free to use [C++17 features](https://en.wikipedia.org/wiki/C%2B%2B17).
An attempt to configure Dumux with a compiler that d...After receiving no user objections this patch upgrades the required C++ standard to C++17.
After merging we are free to use [C++17 features](https://en.wikipedia.org/wiki/C%2B%2B17).
An attempt to configure Dumux with a compiler that does not support C++17 will trigger a Cmake error.
Fixes #654 3.2Bernd FlemischBernd Flemischhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1823Feature/algorithm integrate and findroot scalar2019-12-19T15:23:16ZTimo Kochtimokoch@math.uio.noFeature/algorithm integrate and findroot scalar**What this MR does / why does DuMux need it**:
Add algorithms for integration and root finding for scalar functions
* A 1d Newton root finding method
* A 1d Brent root finding method (https://en.wikipedia.org/wiki/Brent%27s_method)...**What this MR does / why does DuMux need it**:
Add algorithms for integration and root finding for scalar functions
* A 1d Newton root finding method
* A 1d Brent root finding method (https://en.wikipedia.org/wiki/Brent%27s_method)
* A 1d general purpose integration code based on double exponential integration (https://en.wikipedia.org/wiki/Tanh-sinh_quadrature)
* A 2d simplex "quadrature" rule that virtually refines the simplex and each fine cell is an elementary integration volume
**Special notes for your reviewer**:
* All methods have unit tests added3.2Martin SchneiderMartin Schneiderhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1822Feature/box forchheimer2021-07-23T13:53:51ZMartin SchneiderFeature/box forchheimerThe following points needs to be discussed
* [x] Code duplication for velocity calculation (same in darcyslaw and forchheimerslaw)
* [x] The upwind scheme is currently implemented in forchheimerslaw, this should be avoided by changing t...The following points needs to be discussed
* [x] Code duplication for velocity calculation (same in darcyslaw and forchheimerslaw)
* [x] The upwind scheme is currently implemented in forchheimerslaw, this should be avoided by changing the existing `upwindscheme.hh` class3.5Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1821[WIP][md] Implement box staggered coupling2023-07-25T08:58:33ZKilian Weishaupt[WIP][md] Implement box staggered couplingTodos:
- [x] Add test for segment-segment intersection algorithm
- [x] Make segment-segment intersection algorithm more efficient
- [x] Put segment-segment in different MR
- [x] Extract Box-Forchheimer to separate MR
- [x] New BJ test ...Todos:
- [x] Add test for segment-segment intersection algorithm
- [x] Make segment-segment intersection algorithm more efficient
- [x] Put segment-segment in different MR
- [x] Extract Box-Forchheimer to separate MR
- [x] New BJ test (existing test uses indefinite perm. matrix)
- [x] Change convergence script to specify convergence rate
- [ ] It currently only works for `DiffusionCoefficientAveragingType::ffOnly`
- [ ] Maxwell Stefan Diffusion law not yet implemented when using Box
- [ ] Renaming: Use ff/pm instead of stokes/darcy
- [ ] New IC assume specific parameter group "Darcy", generalise this
- [ ] Add missing tests
Suggestions:
- [x] Currently, we retrieve the entire context via `couplingContextVector()`, but the old interface is still there. I would shrink this to only one interface and probably rename it. Currently, there is one context object per coupling segment, so maybe we can find a better name.
- [x] At the moment the coupling segment geometry is stored in both the darcy and the stokes coupling info objects in the mapper. I don't think this is the most memory consuming part of the code, but there is room for memory efficiency improvements.
Fixes #788.Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1820[doc] Add script to extract all contributors between two commits2019-12-20T12:55:30ZTimo Kochtimokoch@math.uio.no[doc] Add script to extract all contributors between two commitsI had this hanging around from release manager tasks and thought I could add it.
Prints all authors that committed between two given commits.I had this hanging around from release manager tasks and thought I could add it.
Prints all authors that committed between two given commits.3.2Bernd FlemischBernd Flemischhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1817Feature/test rotationsymmetry2020-04-23T10:48:58ZMartin SchneiderFeature/test rotationsymmetryFixes #787 Fixes #787 3.2Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1807[vangenuchten] Introduce pore-connectivity parameter L2020-02-01T13:41:56ZTimo Kochtimokoch@math.uio.no[vangenuchten] Introduce pore-connectivity parameter L<!--
Thanks for sending a merge request!
If this is your first time, read our [contributing guidelines](/CONTRIBUTING.md)
-->
**What this MR does / why does DuMux need it**:
Introduces the pore-connectivity parameter `l`. The para...<!--
Thanks for sending a merge request!
If this is your first time, read our [contributing guidelines](/CONTRIBUTING.md)
-->
**What this MR does / why does DuMux need it**:
Introduces the pore-connectivity parameter `l`. The parameter is used in the relative permeability curve in the Mualem model.
Mualem (1976) suggested that 0.5 is a good value for many soils. Sometimes a
value different from 0.5 is provided, which is why this patch implements it as additional variable.
**Special notes for your reviewer**:
* There was something weird in `krn`. The function uses the factor $`(1-S_{we})^{1/3}`$ but according to the van Genuchten Mualem model this should be $`(1-S_{we})^{1/2}`$ or $`(1-S_{we})^l`$. See Mualem 1976 (https://doi.org/10.1029/WR012i003p00513) and e.g. Dury et all (1999) (https://doi.org/10.1029/1999WR900019). @holle The `1/3` appears e.g. in your habilitation but no other sources than Mualem and van Genuchten are given. Can you comment on where it might come from?
* I believe the derivative $`\frac{\partial k_{rn}}{\partial S_{we}}`$ was wrong. Please recheck the new result before merging.
These two points change the van genuchten material law (not backwards compatible) and could also result in differences in the reference solutions. If the changes get accepted we should
* [x] Add note in changelog about the changes in vangenuchten
* [x] Check tests and possibly update references3.2Martin SchneiderMartin Schneiderhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1805[pointsource] Make computation more efficient by not copying vector2019-11-21T16:31:25ZTimo Kochtimokoch@math.uio.no[pointsource] Make computation more efficient by not copying vectorInstead of copying a vector of point sources we just do a local copy of each point source. This way we never copy a vector.Instead of copying a vector of point sources we just do a local copy of each point source. This way we never copy a vector.3.2Martin SchneiderMartin Schneiderhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1804[rotationsymmetry] Add convenience traits to construct radially symmetric gri...2019-11-21T22:26:43ZTimo Kochtimokoch@math.uio.no[rotationsymmetry] Add convenience traits to construct radially symmetric grid geometriesAdd a convenience traits class that turn grid geometry traits into radially symmetric grid geometry traitsAdd a convenience traits class that turn grid geometry traits into radially symmetric grid geometry traits3.2Martin SchneiderMartin Schneiderhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1803Feature/radially symmetric problems2019-11-21T11:07:07ZTimo Kochtimokoch@math.uio.noFeature/radially symmetric problems**What this MR does / why does DuMux need it:**
A lot of users seem to solve radially symmetric problems. Many use the cake grid manager. However, cake grids are not very easy to use, not efficient (because it's always one or two dimensi...**What this MR does / why does DuMux need it:**
A lot of users seem to solve radially symmetric problems. Many use the cake grid manager. However, cake grids are not very easy to use, not efficient (because it's always one or two dimensions more than you need), and -- most importantly -- not exact for radially-symmetric problems. Actually cake grids should only be used for cake shaped domains but for non-uniform boundary conditions. However, even for these cases it is questionable why this would be better that e.g. an unstructured grid with gmsh, since cake grids have quite bad cell aspect ratios.
This MR helps to implement "real" radially symmetric problems.
**How does it work:**
This implements wrappers for scvs and scvf that turn them into
radially symmetric counterparts by overloading the volume() and
area() functions. We support three modes:
* disc (annulus): A 1d grid is extruded into an annulus or disc
In the case of a disc (inner pos: 0) the inner scvf.area() is 0!
* ball (shell): A 1d grid is extruded into a spherical shell or a ball
In the case of a ball the inner scvf.area() is 0!
* toroid: A 2d grid is extruded into a toroid
In the case that on grid side is aligned with the axis the inner
scvf.area() for all inner scvfs is 0!
The grid points all have to be >= 0!
We also support unstructured grids and random convex shapes.
**How to use it in application code:** you have to modify the traits passed into the grid geometry class, as shown in the test.
**Special notes for your reviewer**:
Once this is merged, we could implement an "example" demonstrating this feature. For example a comparison to an analytic solution.3.2Martin SchneiderMartin Schneiderhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1795Fix/error message gridgeometry parallel box2019-11-13T16:47:46ZTimo Kochtimokoch@math.uio.noFix/error message gridgeometry parallel boxThe error in box signifying that box does only work in parallel with zero overlap was accidentally commented in c5787288b78801a9b14bbbabd953c1d56b87e1b9 and slipped the review.
This adds it back in (only concerned caching=false).
T...The error in box signifying that box does only work in parallel with zero overlap was accidentally commented in c5787288b78801a9b14bbbabd953c1d56b87e1b9 and slipped the review.
This adds it back in (only concerned caching=false).
This also adds an error message for the parallel periodic boundaries with box which is currently not implemented.
Should be backported to 3.1.
Fixes #786 3.2Bernd FlemischBernd Flemischhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1785[cakegridmanager] Fix bugs, allow zero well radius2019-11-11T20:39:37ZMartin Schneider[cakegridmanager] Fix bugs, allow zero well radius3.2Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.nohttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1781Add script to extract CO2 tables from NIST website2022-03-30T22:03:58ZMartin UtzAdd script to extract CO2 tables from NIST websiteThis MR provides a python script, which can create CO2 tables, like the one used in the CO2 test. The tables contain density and enthalpy values for a specified temperature and pressure range. The CO2 tables are created by the help of a ...This MR provides a python script, which can create CO2 tables, like the one used in the CO2 test. The tables contain density and enthalpy values for a specified temperature and pressure range. The CO2 tables are created by the help of a website (https://webbook.nist.gov/chemistry/fluid), which calculate the needed values. The query for the values is automated by the python script, which also does the formatting of the received values.
The former way to generate the CO2 table was a Fortran script, which can't be published due to copy right issues. Therefore it was decided in #690 to use the NIST website and a python script to generate the new CO2 tables. Both approaches use the formula of Span and Wagner to calculate the values and produce the same result (within a acceptable tolerance). The new approach has the advantage, that we can publish the script.3.5Timo Kochtimokoch@math.uio.noTimo Kochtimokoch@math.uio.no