We address the numerical solution of linear systems arising from the hybrid discretizations of second-order elliptic partial differential equations (PDEs). Such discretizations hinge on a hybrid set of degrees of freedom (DoFs), respectively defined in cells and faces, which naturally gives rise to a global hybrid system of linear equations. Assuming that the cell unknowns are only locally coupled, they can be efficiently eliminated from the system, leaving only face unknowns in the resulting Schur complement, also called statically condensed matrix. We propose in this work an algebraic multigrid (AMG) preconditioner specifically targeting condensed systems corresponding to lowest order discretizations (piecewise constant). Like traditional AMG methods, we retrieve geometric information on the coupling of the DoFs from algebraic data. However, as the condensed matrix only gives information on the faces, we use the uncondensed version to reconstruct the connectivity graph between elements and faces. An aggregation-based coarsening strategy mimicking a geometric coarsening or semi-coarsening can then be set up to build coarse levels. Numerical experiments are performed on diffusion problems discretized by the Hybrid High-Order (HHO) method at the lowest order. Our approach uses a K-cycle to precondition an outer flexible Krylov method. The results demonstrate similar performances, in most cases, compared to a standard AMG method, and a notable improvement on anisotropic problems with Cartesian meshes.
The experiments can be reproduced with the open-source code fhhos4, release 1.0.
Execute the following command line
> fhhos4 [[test_case]] [[solver]]
where [[test_case]]
corresponds to
# Cube-cart
-geo cube -mesh cart -mesher inhouse -k 0 -n 128
# Cube-tet
-geo cube -mesh tetra -k 0 -n 64
# Complex-tet
-geo platewith4holes -k 0 -n 16
# Heterog1e8
-geo square4quadrants -k 0 -n 2048 -heterog 1e8
# Cube-cart-aniso100
-geo cube -mesh cart -mesher inhouse -k 0 -n 128 -aniso 100
# Cube-tet-aniso100
-geo cube -mesh tetra -k 0 -n 64 -aniso 20
and [[solver]]
corresponds to
# U-AMG
-s fcguamg
# C-AMG
-s fcgaggregamg
# AGMG
-s agmg
> fhhos4 -geo cube -mesh tetra -k 0 -n {16|32|64|128} [[solver]]
Details of the adaptive multiple coarsening strategy of U-AMG for the test case Cube-tet.
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg
Details of the fixed double coarsening strategy of U-AMG for the test case
Cube-tet.
Important parameter: -cs dpa
.
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -cs dpa
# U-AMG (multiple coarsening)
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -cs mpa
# U-AMG (double coarsening)
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -cs dpa
# C-AMG
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcgaggregamg
# AGMG
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s agmg
Important parameter: -coarsening-prolong {3|4|5|6}
.
# Cube-tet
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -coarsening-prolong 6
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -coarsening-prolong 4
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -coarsening-prolong 5
> fhhos4 -geo cube -mesh tetra -k 0 -n 64 -s fcguamg -coarsening-prolong 3
# Cube-cart-aniso100
> fhhos4 -geo cube -mesh cart -mesher inhouse -k 0 -n 128 -aniso 100 -s fcguamg -coarsening-prolong 6
> fhhos4 -geo cube -mesh cart -mesher inhouse -k 0 -n 128 -aniso 100 -s fcguamg -coarsening-prolong 4
> fhhos4 -geo cube -mesh cart -mesher inhouse -k 0 -n 128 -aniso 100 -s fcguamg -coarsening-prolong 5
> fhhos4 -geo cube -mesh cart -mesher inhouse -k 0 -n 128 -aniso 100 -s fcguamg -coarsening-prolong 3
Same commands as for Table 4.4, also with the solver -s fcgaggregamg
.