... | ... | @@ -25,10 +25,12 @@ Key reasons for using the lid-driven cavity (referred to as "cavity" in the foll |
|
|
* It is intended to stress test the linear algebra solver, most of the time being spent in the pressure equation.
|
|
|
* Results for scaling are available at the white paper \[[1](https://develop.openfoam.com/committees/hpc/-/wikis/home#references)\].
|
|
|
|
|
|
### 3D Lid-driven cavity benchmark
|
|
|
|
|
|
<details>
|
|
|
<summary>
|
|
|
|
|
|
### 3D Lid-driven cavity benchmark
|
|
|
click to expand the section
|
|
|
|
|
|
</summary>
|
|
|
|
... | ... | @@ -38,7 +40,6 @@ This test case has simple geometry and boundary conditions, involving transient, |
|
|
|
|
|
It is intended to stress test the linear algebra solver, most of the time being spent in the pressure equation.
|
|
|
|
|
|
|
|
|
**_Definition of geometrical and physical properties_**
|
|
|
|
|
|
In this simple geometry, all the boundaries of the box are walls. The top wall moves in the x-direction at the speed of 1 m/s while the other five are stationary. Three different sizes have been selected:
|
... | ... | @@ -49,6 +50,7 @@ In this simple geometry, all the boundaries of the box are walls. The top wall m |
|
|
- Extra-extra Large (XXL)
|
|
|
|
|
|
The following table shows the geometrical and physical properties of the different test cases, which have an increasing number of cells: 1 million (m) (S), 8 m (M) and 64 m (XL) of cells, obtained by halving ∆x when moving from the smaller to the bigger test-case. The Courant number Co=(U ∆t)/∆x is kept under the stability limit, and it is halved when moving to bigger test cases. The time step ∆t is reduced proportionally to Co and ∆x, by 4 times. The physical time to reach a steady state in laminar flow is T= 0.5.
|
|
|
|
|
|
| Parameters / Test-case | **S** | **M** | **XL** |
|
|
|
|------------------------|-------|-------|--------|
|
|
|
| ∆x (m.) | 0.001 | 0.0005 | 0.00025 |
|
... | ... | @@ -67,9 +69,7 @@ The test-case XL is used with a number of iterations equal to 100 to reduce the |
|
|
|
|
|
**_Set-up of linear algebra solvers_**
|
|
|
|
|
|
The setup for the linear algebra solvers comprises the following:
|
|
|
|
|
|
Pressure:
|
|
|
The setup for the linear algebra solvers comprises the following:Pressure:
|
|
|
|
|
|
- FOAM-DIC-PCG: is an OpenFOAM iterative solver that combines a Diagonal-based Incomplete-Cholesky (DIC) preconditioner with a Conjugate Gradient (PCG) solver. DIC is a common preconditioner in OpenFOAM for its easy configuration and high efficiency
|
|
|
- FOAM-GAMG-PCG: is an OpenFOAM iterative solver that uses a Conjugate Gradient (CG) accelerated by a generalized geometric-algebraic multigrid (GAMG) method that supports both geometrical and algebraic multigrid.
|
... | ... | @@ -77,13 +77,12 @@ Pressure: |
|
|
- PETSc-AMG-CG(\*): is the PETSc counterpart of the FOAM-GAMG-PCG method. In this solver, we use an algebraic multigrid method (**_BoomerAMG_**), provided by the third-party library of PETSc named Hypre.
|
|
|
- PETSc-AMG-CG(\*) + caching: as above but the matrix is converted only at the beginning and cached together with the preconditioner for all the time steps. In this particular case of the constant-coefficients matrix, the numerical solution is equivalent to the case without caching.
|
|
|
|
|
|
(\*) For the PETSc solvers, the \[PETSc4FOAM library\]\[readme petscfoam\] is used for embedding PETSc and its external dependencies (i.e. Hypre) into arbitrary OpenFOAM simulations.
|
|
|
|
|
|
Velocity:
|
|
|
(\*) For the PETSc solvers, the \[PETSc4FOAM library\]\[readme petscfoam\] is used for embedding PETSc and its external dependencies (i.e. Hypre) into arbitrary OpenFOAM simulations.Velocity:
|
|
|
|
|
|
- The solver/preconditioner pair for the momentum equation is kept fixed by using a DILU-PBiCGStab that is a combination of Diagonal Incomplete LU (asymmetric) factorization for the preconditioner with a Stabilized Preconditioned (bi-)conjugate gradient solver.
|
|
|
|
|
|
The following Table summarizes the different preconditioner/solver pairs used to solve the pressure equation
|
|
|
|
|
|
| Method | Preconditioner | Solver |
|
|
|
|--------|----------------|--------|
|
|
|
| FOAM-DIC-PCG | Diagonal-based incomplete-Cholesky | Conjugate Gradient |
|
... | ... | @@ -111,7 +110,6 @@ ln -s fvSolution.<Method>.fixedITER fvSolution |
|
|
![Figure](Lid_driven_cavity-3d/assets/time_3d.png "total time for PISO solver, XL Test case")
|
|
|
|
|
|
This figure shows the total time for solving PISO with different preconditioner/solver pairs reported in the Table above, for the XL test-case, with fixed exit norm configuration.
|
|
|
|
|
|
</details>
|
|
|
|
|
|
### 3D Lid-driven cavity micro-benchmark
|
... | ... | |