Algebraic multigrid preconditioner for statically condensed systems arising from lowest-order hybrid discretizations

Abstract

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.

Publication
SIAM Journal on Scientific Computing

Reproduction of the numerical experiments

The experiments can be reproduced with the open-source code fhhos4, release 1.0.

Figure 4.2 and Table 4.2

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

Figure 4.4

> fhhos4 -geo cube -mesh tetra -k 0 -n {16|32|64|128} [[solver]]

Section 4.3.3 (Table 4.3 of the submitted version)

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

Section 4.3.3 (Table 4.4 of the submitted version)

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

Table 4.3

# 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

Table 4.4

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

Figure 4.4

Same commands as for Table 4.4, also with the solver -s fcgaggregamg.