MONOLITHIC APPROACH FOR SOLVING STOKES-DARCY SYSTEMS: Difference between revisions
No edit summary |
No edit summary |
||
(4 intermediate revisions by one other user not shown) | |||
Line 36: | Line 36: | ||
=== Variables === | === Variables === | ||
{| | {| class="wikitable" | ||
! Name | ! Name | ||
! Unit | ! Unit | ||
Line 43: | Line 43: | ||
| Pressure (Dirichlet pressure) | | Pressure (Dirichlet pressure) | ||
| - | | - | ||
| | | <math>p</math> | ||
|- | |- | ||
| Velocity (Neumann velocity) | | Velocity (Neumann velocity) | ||
| - | | - | ||
| | | <math>v</math> | ||
|} | |} | ||
Line 54: | Line 54: | ||
=== Process Steps === | === Process Steps === | ||
{| | {| class="wikitable" | ||
! Name | ! Name | ||
! Description | ! Description | ||
Line 76: | Line 76: | ||
=== Applied Methods === | === Applied Methods === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 83: | Line 83: | ||
! implemented by | ! implemented by | ||
|- | |- | ||
| wikidata:Q1069090 | | wikidata:[[wikidata:Q1069090|Q1069090]] | ||
| block-Gauss-Seidel preconditioner | | block-Gauss-Seidel preconditioner | ||
| Preconditioning | | Preconditioning | ||
Line 89: | Line 89: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1481893 | | wikidata:[[wikidata:Q1481893|Q1481893]] | ||
| Block Jacobi Preconditioner | | Block Jacobi Preconditioner | ||
| Preconditioning | | Preconditioning | ||
Line 107: | Line 107: | ||
| | | | ||
|- | |- | ||
| wikidata:Q2467290 | | wikidata:[[wikidata:Q2467290|Q2467290]] | ||
| Umfpack | | Umfpack | ||
| Solver | | Solver | ||
Line 113: | Line 113: | ||
| | | | ||
|- | |- | ||
| wikidata: Q56564057 | | wikidata: [[wikidata:Q56564057|Q56564057]] | ||
| PD-GMRES | | PD-GMRES | ||
| Solver | | Solver | ||
Line 119: | Line 119: | ||
| | | | ||
|- | |- | ||
| wikidata:Q56560244 | | wikidata:[[wikidata:Q56560244|Q56560244]] | ||
| Bi-CGSTAB | | Bi-CGSTAB | ||
| Solver | | Solver | ||
Line 125: | Line 125: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1471828 | | wikidata:[[wikidata:Q1471828|Q1471828]] | ||
| AMG method | | AMG method | ||
| Preconditioner | | Preconditioner | ||
Line 131: | Line 131: | ||
| | | | ||
|- | |- | ||
| wikidata: Q17144437 | | wikidata: [[wikidata:Q17144437|Q17144437]] | ||
| Uzawa-iterations | | Uzawa-iterations | ||
| Preconditioner | | Preconditioner | ||
Line 137: | Line 137: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1654069 | | wikidata:[[wikidata:Q1654069|Q1654069]] | ||
| ILU(0) factorization | | ILU(0) factorization | ||
| Preconditioner | | Preconditioner | ||
Line 146: | Line 146: | ||
=== Software used === | === Software used === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 157: | Line 157: | ||
! documented | ! documented | ||
|- | |- | ||
| sw:14293 | | sw:[https://swmath.org/software/14293 14293] | ||
| DuMux | | DuMux | ||
| DUNE for Multi-{Phase, Component, Scale, Physics, …} flow and transport in porous media | | DUNE for Multi-{Phase, Component, Scale, Physics, …} flow and transport in porous media | ||
Line 167: | Line 167: | ||
| [https://dumux.org/docs/ https://dumux.org/docs/] | | [https://dumux.org/docs/ https://dumux.org/docs/] | ||
|- | |- | ||
| sw:18749 | | sw:[https://swmath.org/software/18749 18749] | ||
| ISTL | | ISTL | ||
| Iterative Solver Template Library” (ISTL) which is part of the “Distributed and Unified Numerics Environment” (DUNE). | | Iterative Solver Template Library” (ISTL) which is part of the “Distributed and Unified Numerics Environment” (DUNE). | ||
Line 174: | Line 174: | ||
| Linux, DuNE (C++ Rahmenwerk) | | Linux, DuNE (C++ Rahmenwerk) | ||
| [https://gitlab.dune-project.org/core/dune-istl https://gitlab.dune-project.org/core/dune-istl] | | [https://gitlab.dune-project.org/core/dune-istl https://gitlab.dune-project.org/core/dune-istl] | ||
| doi | | https://doi.org/10.1007/978-3-540-75755-9_82 | ||
| [https://www.dune-project.org/modules/dune-istl/ https://www.dune-project.org/modules/dune-istl/] | | [https://www.dune-project.org/modules/dune-istl/ https://www.dune-project.org/modules/dune-istl/] | ||
|} | |} | ||
Line 180: | Line 180: | ||
=== Hardware === | === Hardware === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 198: | Line 198: | ||
=== Input Data === | === Input Data === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 212: | Line 212: | ||
| | | | ||
| LGS | | LGS | ||
| O( | | O(<math>2*10^6</math>) Matrix size | ||
| Data structure in DUNE/DuMux | | Data structure in DUNE/DuMux | ||
| | | | ||
Line 224: | Line 224: | ||
=== Output Data === | === Output Data === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 258: | Line 258: | ||
| ? | | ? | ||
|- | |- | ||
| wikidata:Q18812775 | | wikidata:[[wikidata:Q18812775|Q18812775]] | ||
| vtk-image files, from the daten structure | | vtk-image files, from the daten structure | ||
| ? | | ? |
Latest revision as of 16:23, 15 November 2022
MONOLITHIC APPROACH FOR SOLVING STOKES-DARCY SYSTEMS
PID (if applicable): arxiv:2108.13229
Problem Statement
Instationary, coupled Stokes-Darcy two-domain problem: coupled systems of free flow adjacent to permeable (porous) media
Object of Research and Objective
The motivation for this is to avoid problems when using simple direct solvers (sparse direct solvers for the (linearized) subproblems): bad parallel scaling, untrustworthy solution with bad conditioning.
Procedure
Assemble and solve the above system via block-preconditioning (implemented entirely in DuMux)
File:Https://i.imgur.com/3K2chRh.jpg
Involved Disciplines
Environmental Systems, Mathematics
Data Streams
Model
Stokes flow in the free-flow domain Darcy’s law for the porous domain
Discretization
- Time: first-order backward Euler scheme
- Space: finite volumes
- Porous Domain (Darcy): mit two-point flux approximation for pressure
- Free Flow domain (Stokes): staggered grid for pressure and velocity, upwind scheme for approximation of fluxes
Variables
Name | Unit | Symbol |
---|---|---|
Pressure (Dirichlet pressure) | - | |
Velocity (Neumann velocity) | - |
Process Informationen
Process Steps
Name | Description | Input | Output | Method | Parameter | Environment | Mathematical Area |
---|---|---|---|---|---|---|---|
Solving | Solving with Preconditioner+Solver | LGS | Vector | Solver: PD-GMRES, Preconditioner: AMG, Uzawa, ILU(0), Block-Jacobi, Block-Gauss-Seidel | DuMux | Numerical Mathematics |
Applied Methods
ID | Name | Process Step | Parameter | implemented by |
---|---|---|---|---|
wikidata:Q1069090 | block-Gauss-Seidel preconditioner | Preconditioning | ||
wikidata:Q1481893 | Block Jacobi Preconditioner | Preconditioning | ||
- | Two-domain block-Gauss-Seidel preconditioner | Two-Domain Preconditioning | ||
- | Two-domain Block Jacobi Preconditioner | Two-Domain Preconditioning | ||
wikidata:Q2467290 | Umfpack | Solver | ||
wikidata: Q56564057 | PD-GMRES | Solver | k (subiteration parameter, determined automatically), tolerance: relative residual... | |
wikidata:Q56560244 | Bi-CGSTAB | Solver | tolerance: relative residual... | |
wikidata:Q1471828 | AMG method | Preconditioner | ||
wikidata: Q17144437 | Uzawa-iterations | Preconditioner | ||
wikidata:Q1654069 | ILU(0) factorization | Preconditioner |
Software used
ID | Name | Description | Version | Programming Language | Dependencies | versioned | published | documented |
---|---|---|---|---|---|---|---|---|
sw:14293 | DuMux | DUNE for Multi-{Phase, Component, Scale, Physics, …} flow and transport in porous media | C++, python-bindings, utility-skripts in python | Linux, DuNE (C++ Framework), cmake (module chains), package-config, compiler, build-essentials, dpg | https://git.iws.uni-stuttgart.de/dumux-repositories/dumux | https://zenodo.org/record/5152939#.YQva944zY2w | https://dumux.org/docs/ | |
sw:18749 | ISTL | Iterative Solver Template Library” (ISTL) which is part of the “Distributed and Unified Numerics Environment” (DUNE). | C++ | Linux, DuNE (C++ Rahmenwerk) | https://gitlab.dune-project.org/core/dune-istl | https://doi.org/10.1007/978-3-540-75755-9_82 | https://www.dune-project.org/modules/dune-istl/ |
Hardware
ID | Name | Processor | Compiler | #Nodes | #Cores |
---|---|---|---|---|---|
AMD EPYC 7551P CPU | 1 | 1 |
Input Data
ID | Name | Size | Data Structure | Format Representation | Format Exchange | binary/text | proprietary | to publish | to archive |
---|---|---|---|---|---|---|---|---|---|
LGS | O() Matrix size | Data structure in DUNE/DuMux | numbers | open | ? | ? |
Output Data
ID | Name | Size | Data Structure | Format Representation | Format Exchange | binary/text | proprietary | to publish | to archive |
---|---|---|---|---|---|---|---|---|---|
Solution Vector | Data Structure in DUNE/DuMux | numbers | open | ? | ? | ||||
Runtime Behavior | Data Structure in DUNE/DuMux | numbers | open | ? | ? | ||||
wikidata:Q18812775 | vtk-image files, from the daten structure | ? | ASCII or binary | open | ? | ? |
Reproducibility
Mathematical Reproducibility
yes, by all parameters
Runtime Reproducibility
yes, for same input samples
Reproducibility of Results
Due to floating point arithmetic, no bitwise reproducibility
Reproducibility on original Hardware
Reproducibility on other Hardware
a) Serial Computation
b) Parallel Computation
Transferability to
a) similar model parameters (other initial and boundary values)
b) other models
Legend
The following abbreviations are used in the document to indicate/resolve IDs:
doi: DOI / https://dx.doi.org/
sw: swMATH / https://swmath.org/software/
wikidata: https://www.wikidata.org/wiki/