dumux merge requestshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests2022-02-22T15:00:44Zhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2730Draft: Advection Diffusion Model2022-02-22T15:00:44ZNed ColtmanDraft: Advection Diffusion ModelI'm not sure if this is something we would really want, but I set it up for a different module and mentioned this in issue #1001.
This is the same as the tracer1p model with a stationary velocity field, but it does not assume that the ...I'm not sure if this is something we would really want, but I set it up for a different module and mentioned this in issue #1001.
This is the same as the tracer1p model with a stationary velocity field, but it does not assume that the domain is a porous medium. It should solve the transport equation decoupled from any momentum balance.
The test calculates a velocity field, passes this to a spatialParams, then calculates transport on the same domain with a fixed velocity field. To make it interesting, it's a rectangular domain with a circle cut out of the center.
This should produce the same result as the tracer1p model with the same velocity field and a porosity of 1.
If this is something we do want to include, It would likely benefit from a bit of refactoring.https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2629WIP: Feature/sequential impes tests2021-05-20T17:47:36ZTimo Kochtimokoch@math.uio.noWIP: Feature/sequential impes testsRelated to #869Related to #869https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2572[WIP] Feature/dumux solution vector2022-02-25T12:25:33ZKilian Weishaupt[WIP] Feature/dumux solution vector__TODO__:
- [ ] decide whether this is the way to go (maybe do some performance testing)
- [ ] specify interface
- [ ] make sure the `Assembler` or `NewtonSolver` already get the `native()` object (in context of residuals__TODO__:
- [ ] decide whether this is the way to go (maybe do some performance testing)
- [ ] specify interface
- [ ] make sure the `Assembler` or `NewtonSolver` already get the `native()` object (in context of residualshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2520WIP Feature/solution state2021-03-29T15:02:53ZDennis GläserWIP Feature/solution statehttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2519WIP Feature/new assembler2023-06-13T16:46:51ZDennis GläserWIP Feature/new assemblerhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2495Draft: [temp][hack] Change free flow block structure to old version:2021-04-14T13:19:01ZKilian WeishauptDraft: [temp][hack] Change free flow block structure to old version:DO NOT MERGE THIS. ONLY FOR DEMONSTRATIVE PURPOSEDO NOT MERGE THIS. ONLY FOR DEMONSTRATIVE PURPOSEhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2494WIP Test/nonisothermal2023-07-24T13:12:10ZTimo Kochtimokoch@math.uio.noWIP Test/nonisothermalSee !2473. Based on !2471
Shows ~~unphysical~~ temperature gradient. Edit: This is expected. Even for an incompressible fluid viscous dissipation leads to small temperature changes. However, this term is not correctly implemented (see ...See !2473. Based on !2471
Shows ~~unphysical~~ temperature gradient. Edit: This is expected. Even for an incompressible fluid viscous dissipation leads to small temperature changes. However, this term is not correctly implemented (see #1256)
![Screenshot_2021-03-02_at_14.00.47](/uploads/97d41ded8307b900fa2ea99a54400903/Screenshot_2021-03-02_at_14.00.47.png)
* [x] See if we can get a better solution by adding $`\vec{v}\cdot\nabla p`$ in the energy balance somehow
Edit: adding this term leads to ignoring viscous dissipation. But does not correct the original mistake in the implementation (see #1256)
~~For incompressible fluids we have at least two options:~~
~~* Assemble internal energy fluxes instead of enthalpy fluxes, the volume work term disappears (not generic)~~
~~* Add the missing term and keep assembling enthalpy fluxes~~
The solution is to include the gravity contribution (see #1256)https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2448WIP Feature/new assembly multidomain2021-02-25T20:58:24ZDennis GläserWIP Feature/new assembly multidomainDisclaimer: this is very drafty and does not work yet. No need to review. For now this MR is only here in order to have a place to discuss about this.
Depends also on !2469, in order to harmonize cc/box scvfs and fix vtk output for box-...Disclaimer: this is very drafty and does not work yet. No need to review. For now this MR is only here in order to have a place to discuss about this.
Depends also on !2469, in order to harmonize cc/box scvfs and fix vtk output for box-facet-coupling models.Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2433WIP: Feature/new staggered higher order2022-03-28T09:14:46ZNed ColtmanWIP: Feature/new staggered higher ordertodos:
- [x] Sincos higher order test stationary (pass)
- [x] Sincos higher order test instationary (fail)
- [x] 3D Channel higher order test (pass)
- [x] Kovaznay higher order test stationary (fail)
- [ ] Find errors that would cause ba...todos:
- [x] Sincos higher order test stationary (pass)
- [x] Sincos higher order test instationary (fail)
- [x] 3D Channel higher order test (pass)
- [x] Kovaznay higher order test stationary (fail)
- [ ] Find errors that would cause bad convergence and solution differencesNed ColtmanNed Coltmanhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2295WIP Feature/gridvars based assembler2021-03-25T08:53:17ZDennis GläserWIP Feature/gridvars based assembler<!--
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**:
Introduce grid variables-based, discretization scheme-agnost...<!--
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**:
Introduce grid variables-based, discretization scheme-agnostic assembler class, and make the implementations of `PDESolver` support it.
TODO:
- [ ] add support for cell-centered schemes
- [ ] add analytic assembly
- [ ] define `Operators` for all available models and test new layout with the entire test suite?
addresses parts of #940https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2292WIP: Feature/nonlinear schemes decomposition negative2021-08-24T10:33:28ZTimo Kochtimokoch@math.uio.noWIP: Feature/nonlinear schemes decomposition negativehttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2272WIP Feature/multidomain analytic jac rebase2020-10-02T08:44:24ZTimo Kochtimokoch@math.uio.noWIP Feature/multidomain analytic jac rebasedo not merge. rebase of !1703. Should be force pushed to !1703 if it's working again.
Something went wrong in the rebase so the test fails.do not merge. rebase of !1703. Should be force pushed to !1703 if it's working again.
Something went wrong in the rebase so the test fails.https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2244Feature/update box couplingdata2020-10-27T13:28:29ZMartin SchneiderFeature/update box couplingdataUpdate the box coupling such that it works for general non-matching grids.
This is done by introducing general projections onto the stokes faces.Update the box coupling such that it works for general non-matching grids.
This is done by introducing general projections onto the stokes faces.Martin SchneiderMartin Schneiderhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2162[WIP] Feature/restructure ff fluxvars2020-06-04T09:38:21ZKilian Weishaupt[WIP] Feature/restructure ff fluxvarshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2112WIP: Cleanup/assembly properties2021-03-25T08:52:56ZTimo Kochtimokoch@math.uio.noWIP: Cleanup/assembly properties* [ ] test everything
* [ ] update changelog for `ElementBoundaryTypes` in `LocalResidual`
* [ ] think about `NumEqVector`* [ ] test everything
* [ ] update changelog for `ElementBoundaryTypes` in `LocalResidual`
* [ ] think about `NumEqVector`Dennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1989[WIP] [linear] Add first draft of SIMPLE preconditioner2021-04-13T12:38:00ZKilian Weishaupt[WIP] [linear] Add first draft of SIMPLE preconditioner__SIMPLE__
Goal: solve
```math
\begin{pmatrix}
A & B\\
C & D
\end{pmatrix}
\begin{pmatrix}
u\\
p
\end{pmatrix}
=
\begin{pmatrix}
f\\
g
\end{pmatrix}
```
__Equations__
Exact velocity: $`~~~~~~u = u^* + \delta u...__SIMPLE__
Goal: solve
```math
\begin{pmatrix}
A & B\\
C & D
\end{pmatrix}
\begin{pmatrix}
u\\
p
\end{pmatrix}
=
\begin{pmatrix}
f\\
g
\end{pmatrix}
```
__Equations__
Exact velocity: $`~~~~~~u = u^* + \delta u ~~~~~~~ (1)`$
Exact pressure: $`~~~~~~p = p^* + \delta p ~~~~~~~ (2)`$
Exact velocity equation: $`~~~~~~A u + B p = f ~~~~~~~ (3)`$
Approximate velocity equation using some pressure guess $`p^*`$: $`~~~~~~A u^* + B p^* = f ~~~~~~~ (4)`$
Substract: (3-4) : $`~~~~~~A (u - u^*) + B (p-p^*) = 0 ~~~~~~~ (5)`$
$`~~~~~~A \delta u + B \delta p = 0 ~~~~~~~ (6)`$
Assumption (SIMPLE): $`~~~~~~diag(A) \approx A ~~~~~~~ (7)`$
Rearrange (6) and insert (7): $`~~~~~~\delta u = - diag(A)^{-1} B \delta p~~~~~~~ (7)`$
Mass conservation: $`~~~~~~C u = g~~~~~~~ (8)`$
$`~~~~~~C (u^* + \delta u) = g~~~~~~~ (9)`$
$`~~~~~~C (u^* + - C diag(A)^{-1} B \delta p) = g~~~~~~~ (10)`$
$`~~~~~~C u^* = g + C diag(A)^{-1} B \delta p~~~~~~~ (11)`$
Schur complement $`~~~~~~C diag(A)^{-1} B \delta p = C u^* - g ~~~~~~~ (12)`$
__Algorithm__
1.) Solve (4) for $`u^*`$
2.) Solve (12) for $`\delta p`$
3.) Get $`\delta u`$ from (7)
4.) update $`p=p^* + \alpha \delta p`$
5.) update $`u= u^* +\delta u`$
Naive implementation of https://www.cs.umd.edu/~elman/papers/tax.pdf
Converges, but is slower than Uzawa.
The internal GMRES solver to invert the Schur complement is not preconditioned yet (Richardson, w = 1).
Richardson seems to be the only preconditioner that does not require an assembled matrix.
Maybe we can write our own Jacobi preconditioner? If one can apply the action of the Schur complement without a matrix (what we do right now), is it also possible to apply the inverse of its diagonal without having the matrix?
__Udpate__ : There seem to be various matrix-free preconditioning methods
http://www2.cs.cas.cz/~tuma/ps/cutu06.pdf
https://hal.inria.fr/inria-00074080/document
http://www2.cs.cas.cz/semincm/lectures/2009-05-15-DuintjerTebbens.pdf
https://arxiv.org/pdf/1805.11930.pdf
https://arxiv.org/pdf/2006.06052.pdf
https://gitlab.dune-project.org/exadune/exadune-appl/-/blob/feature/blockiterative-preconditioner-FlexibleGMRES/src/blockiterativesolver/blockdiagonalpreconditioner.hh
A very simple (and probably expensive) option to test if preconditioning helps inverting the approximate Schur $`\tilde{S}`$ complement would be
```math
\tilde{S}^{-1}_{0,0} = \left(\tilde{S} \cdot (1, 0, ... ,n)^T \right) \cdot (1, 0, ... ,n)^T \\
\tilde{S}^{-1}_{1,1} = \left(\tilde{S} \cdot (0, 1, ... ,n)^T \right) \cdot (0, 1, ... ,n)^T \\
....
```
With that, one could construct a Jacobi preconditioner after doing n matrix vector operations.
https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1716WIP: Feature/explicit flashs of compositional models2023-02-22T19:17:52ZBeatrix BeckerWIP: Feature/explicit flashs of compositional models**What this MR does / why does DuMux need it**:
Introduces a 2p2c-specific constraint solver, that explicitly calculates mass fractions for two-phase state, assuming ideal mixtures (as does the generic mpnc constraint solver for two-phas...**What this MR does / why does DuMux need it**:
Introduces a 2p2c-specific constraint solver, that explicitly calculates mass fractions for two-phase state, assuming ideal mixtures (as does the generic mpnc constraint solver for two-phase state).
Changes in volumevariables: The new constraint solver is used for two-phase state. In the one-phase state the `ComputeFromReferencePhase` solver is used, since it does the simplest thing possible for ideal mixtures.
`useConstraintSolver` is deleted because it's not needed anymore.
Resolves #761
**Special notes for your reviewer**:
Is it okay to have a new header for the 2p2c-specific constraint solver or should I integrate it as a special case in the generic one? I guess this is not backward compatible (deleted `useConstraintSolver`)? Do I have to deprecate the entire old volumevariables? @holle : The 2p2c tests parse with the new constraint solver (they did so before with the old, in my opinion slightly less correct/buggy version, too, although that was never tested...). Does it look good to you, too?Holger ClassHolger Classhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1703WIP Feature/multidomain analytic jac2022-03-28T09:36:21ZTimo Kochtimokoch@math.uio.noWIP Feature/multidomain analytic jacDennis GläserDennis Gläserhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1655[WIP] Add first draft of Boussinesq comparison2019-06-28T13:15:59ZKilian Weishaupt[WIP] Add first draft of Boussinesq comparisonDO NOT MERGE YETDO NOT MERGE YETKilian WeishauptKilian Weishaupthttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/1485[WIP] Feature/stokesdarcy anisotropy DO NOT MERGE2019-01-30T13:33:37ZKilian Weishaupt[WIP] Feature/stokesdarcy anisotropy DO NOT MERGE__DO NOT MERGE____DO NOT MERGE__