PARTITIONED COUPLING FOR SOLVING STOKES-DARCY SYSTEMS: Difference between revisions
→PARTITIONED COUPLING FOR SOLVING STOKES-DARCY SYSTEMS: link to the comparison |
|||
(10 intermediate revisions by 2 users not shown) | |||
Line 10: | Line 10: | ||
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. | 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. | ||
This is part of the [[COMPARING_PARTITIONED_COUPLING_VS._MONOLITHIC_BLOCK_PRECONDITIONING_FOR_SOLVING_STOKES-DARCY_SYSTEMS | comparison to monolithic block preconditioning approach]] | |||
=== Procedure === | === Procedure === | ||
Line 15: | Line 16: | ||
Splitting the problem into two subproblems (into free flow and porous media flow) and coupling (with DuMux and preCICE): use of specialized solvers for the subdomains, coupling with preCICE. | Splitting the problem into two subproblems (into free flow and porous media flow) and coupling (with DuMux and preCICE): use of specialized solvers for the subdomains, coupling with preCICE. | ||
https://i.imgur.com/BFmhwG0.jpg | |||
=== Involved Disciplines === | === Involved Disciplines === | ||
Line 36: | Line 37: | ||
=== Variables === | === Variables === | ||
{| | {| class="wikitable" | ||
! Name | ! Name | ||
! Unit | ! Unit | ||
Line 50: | Line 51: | ||
|} | |} | ||
== Process | == Process Information == | ||
=== Process Steps === | === Process Steps === | ||
{| | {| class="wikitable" | ||
! Name | ! Name | ||
! Description | ! Description | ||
Line 73: | Line 74: | ||
| Numerical Mathematics | | Numerical Mathematics | ||
|} | |} | ||
=== Applied Methods === | === Applied Methods === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
! Process Step | ! Process Step | ||
! Parameter | ! Parameter | ||
! | ! Implemented By | ||
|- | |- | ||
| wikidata:Q7001954 | | wikidata:[[wikidata:Q7001954|Q7001954]] | ||
| Dirichlet-Neumann coupling | | Dirichlet-Neumann coupling | ||
| Coupling | | Coupling | ||
Line 91: | Line 90: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1683631 | | wikidata:[[wikidata:Q1683631|Q1683631]] | ||
| Picard iteration mit fixed-point iteration | | Picard iteration mit fixed-point iteration | ||
| Coupling | | Coupling | ||
Line 97: | Line 96: | ||
| | | | ||
|- | |- | ||
| wikidata:Q25098909 | | wikidata:[[wikidata:Q25098909|Q25098909]] | ||
| inverse least-squares interface quasi-Newton | | inverse least-squares interface quasi-Newton | ||
| Coupling | | Coupling | ||
Line 103: | Line 102: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1069090 | | wikidata:[[wikidata:Q1069090|Q1069090]] | ||
| block-Gauss-Seidel method | | block-Gauss-Seidel method | ||
| Preconditioner | | Preconditioner | ||
Line 109: | Line 108: | ||
| | | | ||
|- | |- | ||
| wikidata:Q2467290 | | wikidata:[[wikidata:Q2467290|Q2467290]] | ||
| Umfpack | | Umfpack | ||
| Solver | | Solver | ||
Line 115: | Line 114: | ||
| | | | ||
|- | |- | ||
| wikidata:Q56564057 | | wikidata:[[wikidata:Q56564057|Q56564057]] | ||
| PD-GMRES | | PD-GMRES | ||
| Solver | | Solver | ||
Line 121: | Line 120: | ||
| | | | ||
|- | |- | ||
| wikidata:Q56560244 | | wikidata:[[wikidata:Q56560244|Q56560244]] | ||
| Bi-CGSTAB | | Bi-CGSTAB | ||
| Solver | | Solver | ||
Line 127: | Line 126: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1471828 | | wikidata:[[wikidata:Q1471828|Q1471828]] | ||
| AMG method | | AMG method | ||
| Preconditioner | | Preconditioner | ||
Line 133: | Line 132: | ||
| | | | ||
|- | |- | ||
| wikidata: Q17144437 | | wikidata: [[wikidata:Q17144437|Q17144437]] | ||
| Uzawa-iterations | | Uzawa-iterations | ||
| Preconditioner | | Preconditioner | ||
Line 139: | Line 138: | ||
| | | | ||
|- | |- | ||
| wikidata:Q1654069 | | wikidata:[[wikidata:Q1654069|Q1654069]] | ||
| ILU(0) factorization | | ILU(0) factorization | ||
| Preconditioner | | Preconditioner | ||
Line 145: | Line 144: | ||
| | | | ||
|} | |} | ||
=== Software used === | === Software used === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 157: | Line 154: | ||
! Programming Language | ! Programming Language | ||
! Dependencies | ! Dependencies | ||
! | ! Versioned | ||
! | ! Published | ||
! | ! Documented | ||
|- | |- | ||
| sw:8713 | | sw:[https://swmath.org/software/8713 8713] | ||
| preCICE | | preCICE | ||
| Library for coupling simulations | | Library for coupling simulations | ||
Line 168: | Line 165: | ||
| Linux, Boost, MPI, ... | | Linux, Boost, MPI, ... | ||
| [https://github.com/precice/precice https://github.com/precice/precice] | | [https://github.com/precice/precice https://github.com/precice/precice] | ||
| | | https://doi.org/10.18419/darus-2125 | ||
| [https://precice.org/docs.html https://precice.org/docs.html] | | [https://precice.org/docs.html https://precice.org/docs.html] | ||
|- | |- | ||
| 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 181: | Line 178: | ||
| [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 188: | Line 185: | ||
| Linux, DuNE (C++ Framework) | | Linux, DuNE (C++ Framework) | ||
| [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] | ||
| | | 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 194: | Line 191: | ||
=== Hardware === | === Hardware === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 212: | Line 209: | ||
=== Input Data === | === Input Data === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 219: | Line 216: | ||
! Format Representation | ! Format Representation | ||
! Format Exchange | ! Format Exchange | ||
! | ! Binary/Text | ||
! | ! Proprietary | ||
! | ! To Publish | ||
! | ! To Archive | ||
|- | |- | ||
| | | | ||
| LGS | | LGS | ||
| O( | | O(<math>2*10^6</math>) Matrix size | ||
| Data structure in DUNE/DuMux | | Data structure in DUNE/DuMux | ||
| | | | ||
Line 238: | Line 235: | ||
=== Output Data === | === Output Data === | ||
{| | {| class="wikitable" | ||
! ID | ! ID | ||
! Name | ! Name | ||
Line 245: | Line 242: | ||
! Format Representation | ! Format Representation | ||
! Format Exchange | ! Format Exchange | ||
! | ! Binary/Text | ||
! | ! Proprietary | ||
! | ! To Publish | ||
! | ! To Archive | ||
|- | |- | ||
| | | | ||
Line 272: | Line 269: | ||
| ? | | ? | ||
|- | |- | ||
| wikidata:Q18812775 | | wikidata:[[wikidata:Q18812775|Q18812775]] | ||
| vtk-image files, from the daten structure | | vtk-image files, from the daten structure | ||
| ? | | ? | ||
Line 288: | Line 285: | ||
=== Mathematical Reproducibility === | === Mathematical Reproducibility === | ||
Yes, by all parameters | |||
=== Runtime Reproducibility === | === Runtime Reproducibility === | ||
Yes, for same input samples | |||
=== Reproducibility of Results === | === Reproducibility of Results === |
Latest revision as of 15:06, 7 November 2022
PARTITIONED COUPLING 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. This is part of the comparison to monolithic block preconditioning approach
Procedure
Splitting the problem into two subproblems (into free flow and porous media flow) and coupling (with DuMux and preCICE): use of specialized solvers for the subdomains, coupling with preCICE.
https://i.imgur.com/BFmhwG0.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 Information
Process Steps
Applied Methods
ID | Name | Process Step | Parameter | Implemented By |
---|---|---|---|---|
wikidata:Q7001954 | Dirichlet-Neumann coupling | Coupling | ||
wikidata:Q1683631 | Picard iteration mit fixed-point iteration | Coupling | ||
wikidata:Q25098909 | inverse least-squares interface quasi-Newton | Coupling | ||
wikidata:Q1069090 | block-Gauss-Seidel method | Preconditioner | ||
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:8713 | preCICE | Library for coupling simulations | v2104.0 | Core library in C++; Bindings for Fortran, Python, C, Matlab; Adaptors dependant on simulation code (Fortran, Python, C, Matlab) | Linux, Boost, MPI, ... | https://github.com/precice/precice | https://doi.org/10.18419/darus-2125 | https://precice.org/docs.html |
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++ Framework) | 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/