dumux merge requestshttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests2020-10-16T08:57:48Zhttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2130WIP Feature/finite element method2020-10-16T08:57:48ZDennis GläserWIP Feature/finite element methodThis is a first draft of an FEM framework. Currently, major limitations/assumptions are:
* assumes Standard-Galerkin approach
* assumes non-composite dune function space bases
I have tried to incorporate suggestions stemming from ...This is a first draft of an FEM framework. Currently, major limitations/assumptions are:
* assumes Standard-Galerkin approach
* assumes non-composite dune function space bases
I have tried to incorporate suggestions stemming from the discussion in #884, in particular it is:
1. The state of the grid variables was always dependent on the problem (e.g. due to BCs) and a current solution. Nevertheless, we had grid variables and problem and cursol as arguments in several assembly-related functions. In particular, we did `assembler.assemble(curSol)`. The assembler introduced here fulfills this interface (for compatibility with NewtonSolver), but does not use curSol. Instead, the assembler is instantiated with grid variables, which are updated with a solution and a problem. Thus, the assembler takes the solution and problem from the grid variables. So, you would want to do `Assembler assembler(gridVariables); assembler.assemble()`. This could help implementing other time stepping schemes, where you create grid variables on different time levels (stages), make an assembler from them and let it assemble the stage. The assembler is basically a copy of `FVAssembler`, which was almost general and non fv-specific. There is one piece of commented code related to parallelism with box (with a todo in the comment) which has to be figured out still.
2. Local assemblers are now a `localView` of the assembler, no which you then call `bind` with only an element. The problem & current solution are extracted from the grid variables with which the assembler was instantiated. This guarantees that a wrong combination of _problem state_, _solution state_ and _grid variables state_ is passed to it.
3. None of the classes use the property system anymore. I wrote a little test solving a poisson equation, which completely works without the property system. See test/discretization/fem/poisson. Therein, a problem and local residual have to be implemented. Currently, I implemented it in a "Dumux conforming" way, also implementing a spatial parameters class that stores the tensor and an "IntegrationPointVariables" class (the equivalent of vol vars in fv schemes), which hold the tensor at an integration point. The test implementation could be simplified very much if the custom local residual simply called `problem.getTensor()` or so - that would get rid of the spatial params and the integration point variables implementations. I did it this way for now to illustrate the complete workflow for implementing a new model and test.
All of this is subject to discussion, and all new headers have "TODOs" all over the place which can be discussed.https://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/2201[WIP] Feature/new staggered impl2022-05-05T10:47:41ZKilian Weishaupt[WIP] Feature/new staggered impl__TODO__
_General:_
- [ ] Fix docu (especially copy and paste errors)
- [ ] Rethink assembly strategy (forward / inverse)?
- [x] Introduce coupling stencils per DOF?
- [x] improve design of "dual" problem
- [x] boundary flux helpers
- [ ...__TODO__
_General:_
- [ ] Fix docu (especially copy and paste errors)
- [ ] Rethink assembly strategy (forward / inverse)?
- [x] Introduce coupling stencils per DOF?
- [x] improve design of "dual" problem
- [x] boundary flux helpers
- [ ] prohibit Dirichlet for mass model?
- [x] check difference in Jacobian for compressible fluids (channel)
- [x] periodic grids
- [ ] Look into benefits of caching options
- [ ] Add volume work to energy balance
@nedc:
- [x] Set up higher order geometry
- [x] Port the TVD methods
- [x] Add correct checks for various boundary conditions
- [x] Add useful tests for higher order
- [ ] Update and include the rans models
@kweis:
- [x] coupling (staggered-cellcentered)
- [x] implement Beavers-Joseph BC
- [x] Compositional models (1pnc)
@martins
- [ ] Finalize box-staggered coupling (old staggered)
- [ ] Port box-staggered to new staggered
- [ ] Develop new freeflow discretizations (long term)
@hanchuan
- [x] port and test Navier stokes tests (should have been completed already by @kweis)
- [x] port compositional tests (after 1pnc is updated)
- [ ] port stokes-darcy MD tests (after MD is updated)
- [ ] port rans tests (after rans is updated)
fixes #756Kilian WeishauptKilian Weishaupthttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2203WIP: [test] Add Karman vortex street application2021-10-19T07:59:06ZTimo Kochtimokoch@math.uio.noWIP: [test] Add Karman vortex street applicationRuns way too long to be a good test. Maybe also a good test case for solvers though. And looks fairly cool
![vortexstreet-small](/uploads/9bf4bcf66398ba24bbaccb32d17a00b2/vortexstreet-small.gif)
Update: I got a big speedup by using...Runs way too long to be a good test. Maybe also a good test case for solvers though. And looks fairly cool
![vortexstreet-small](/uploads/9bf4bcf66398ba24bbaccb32d17a00b2/vortexstreet-small.gif)
Update: I got a big speedup by using the SIMPLE-preconditioned BiCGSTABSolver of !1989 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/2253[WIP] Feature/nonlinear schemes2022-03-28T09:36:37ZTimo Kochtimokoch@math.uio.no[WIP] Feature/nonlinear schemeshttps://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/2276WIP: [test][1p] Add 3d convergence test2020-10-07T09:26:12ZTimo Kochtimokoch@math.uio.noWIP: [test][1p] Add 3d convergence testAdds a 2d test on a sphere tet grid (`sphere.msh`). I also committed a `sphere_quad.msh` grid which has some nasty distorted quad elements.
Unfortunately I currently get for both grids:
```
Dune::InvalidStateException [decompose:/Users...Adds a 2d test on a sphere tet grid (`sphere.msh`). I also committed a `sphere_quad.msh` grid which has some nasty distorted quad elements.
Unfortunately I currently get for both grids:
```
Dune::InvalidStateException [decompose:/Users/pumbaa/dune-master/dumux/dumux/discretization/cellcentered/wmpfa/facedatahandle.hh:101]: CoNormal decomposition not found
```
although the tet version of the grid looks fairly nice.
I wanted to use this test to check if it works in 3D.
For now it's only Dirichlet but it should be relatively easy to try Neumann boundaries.Martin SchneiderMartin Schneiderhttps://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/2294WIP: Add Trilinos solvers2022-01-19T11:22:38ZBernd FlemischWIP: Add Trilinos solversAdd an optional dependency to Trilinos, https://github.com/trilinos/trilinos. Implement a linear solver backend that uses a solver from there.Add an optional dependency to Trilinos, https://github.com/trilinos/trilinos. Implement a linear solver backend that uses a solver from there.https://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/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/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/2494WIP Test/nonisothermal2021-11-24T10:29:34ZTimo Kochtimokoch@math.uio.noWIP Test/nonisothermalSee !2473. Based on !2471
Shows unphysical temperature gradient.
![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 addin...See !2473. Based on !2471
Shows unphysical temperature gradient.
![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
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
There might be other solution by inserting the continuity equation to turn the term into some time derivative.https://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/2496WIP: [linear] matrix converter with reordering2022-03-28T09:39:27ZTimo Kochtimokoch@math.uio.noWIP: [linear] matrix converter with reorderingWould be probably easier if the matrix converter would have a state.Would be probably easier if the matrix converter would have a state.Kilian WeishauptKilian Weishaupthttps://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/merge_requests/2519WIP Feature/new assembler2021-03-30T10:11:29ZDennis GläserWIP Feature/new assemblerhttps://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/2563[components] Add component SimplerH2O2021-04-20T14:56:33ZTimo Kochtimokoch@math.uio.no[components] Add component SimplerH2OFixes #1013
I hope this is consistent. Water vapor is modeled as an ideal gas. inner energy and vapor pressure are linearized around the reference state. The evaporation enthalpy should be automatically included now.
I added a new com...Fixes #1013
I hope this is consistent. Water vapor is modeled as an ideal gas. inner energy and vapor pressure are linearized around the reference state. The evaporation enthalpy should be automatically included now.
I added a new component as this implementation will probably yield different results than SimpleH2O.Kilian WeishauptKilian Weishaupthttps://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 residuals