Implementation | Vs(K) | Notes | Va(K) |
Usual-HRT | ∅ | Usual | [Pk(K)]d⊕x˜Pk(K) |
Stab-1-HRT | V(1)s(K) | New | [Pk(K)]d |
Stab-2-HRT | V(2)s(K) | New | [Pk−1(K)]d |
We show how to reduce the computational time of the practical implementation of the Raviart-Thomas mixed method for second-order elliptic problems. The implementation takes advantage of a recent result which states that certain local subspaces of the vector unknown can be eliminated from the equations by transforming them into stabilization functions; see the paper published online in JJIAM on August 10, 2023. We describe in detail the new implementation (in MATLAB and a laptop with Intel(R) Core (TM) i7-8700 processor which has six cores and hyperthreading) and present numerical results showing 10 to 20% reduction in the computational time for the Raviart-Thomas method of index k, with k ranging from 1 to 20, applied to a model problem.
Citation: Sreevatsa Anantharamu, Bernardo Cockburn. Efficient implementation of the hybridized Raviart-Thomas mixed method by converting flux subspaces into stabilizations[J]. Mathematics in Engineering, 2024, 6(2): 221-237. doi: 10.3934/mine.2024010
[1] | Paola F. Antonietti, Chiara Facciolà, Marco Verani . Unified analysis of discontinuous Galerkin approximations of flows in fractured porous media on polygonal and polyhedral grids. Mathematics in Engineering, 2020, 2(2): 340-385. doi: 10.3934/mine.2020017 |
[2] | Federica Botta, Matteo Calafà, Pasquale C. Africa, Christian Vergara, Paola F. Antonietti . High-order discontinuous Galerkin methods for the monodomain and bidomain models. Mathematics in Engineering, 2024, 6(6): 726-741. doi: 10.3934/mine.2024028 |
[3] | Thomas J. Radley, Paul Houston, Matthew E. Hubbard . Quadrature-free polytopic discontinuous Galerkin methods for transport problems. Mathematics in Engineering, 2024, 6(1): 192-220. doi: 10.3934/mine.2024009 |
[4] | Andrea Manzoni, Alfio Quarteroni, Sandro Salsa . A saddle point approach to an optimal boundary control problem for steady Navier-Stokes equations. Mathematics in Engineering, 2019, 1(2): 252-280. doi: 10.3934/mine.2019.2.252 |
[5] | Ivan Fumagalli . Discontinuous Galerkin method for a three-dimensional coupled fluid-poroelastic model with applications to brain fluid mechanics. Mathematics in Engineering, 2025, 7(2): 130-161. doi: 10.3934/mine.2025006 |
[6] | Stefano Berrone, Stefano Scialò, Gioana Teora . The mixed virtual element discretization for highly-anisotropic problems: the role of the boundary degrees of freedom. Mathematics in Engineering, 2023, 5(6): 1-32. doi: 10.3934/mine.2023099 |
[7] | Federico Cluni, Vittorio Gusella, Dimitri Mugnai, Edoardo Proietti Lippi, Patrizia Pucci . A mixed operator approach to peridynamics. Mathematics in Engineering, 2023, 5(5): 1-22. doi: 10.3934/mine.2023082 |
[8] | Paola F. Antonietti, Ilario Mazzieri, Laura Melas, Roberto Paolucci, Alfio Quarteroni, Chiara Smerzini, Marco Stupazzini . Three-dimensional physics-based earthquake ground motion simulations for seismic risk assessment in densely populated urban areas. Mathematics in Engineering, 2021, 3(2): 1-31. doi: 10.3934/mine.2021012 |
[9] | Andrea Borio, Martina Busetto, Francesca Marcon . SUPG-stabilized stabilization-free VEM: a numerical investigation. Mathematics in Engineering, 2024, 6(1): 173-191. doi: 10.3934/mine.2024008 |
[10] | Gianluca Crippa, Christian Schulze . Sub-exponential mixing of generalized cellular flows with bounded palenstrophy. Mathematics in Engineering, 2023, 5(1): 1-12. doi: 10.3934/mine.2023006 |
We show how to reduce the computational time of the practical implementation of the Raviart-Thomas mixed method for second-order elliptic problems. The implementation takes advantage of a recent result which states that certain local subspaces of the vector unknown can be eliminated from the equations by transforming them into stabilization functions; see the paper published online in JJIAM on August 10, 2023. We describe in detail the new implementation (in MATLAB and a laptop with Intel(R) Core (TM) i7-8700 processor which has six cores and hyperthreading) and present numerical results showing 10 to 20% reduction in the computational time for the Raviart-Thomas method of index k, with k ranging from 1 to 20, applied to a model problem.
Let us begin by noting that the title of the paper contains both words: 'mixed methods' and 'stabilization'. At first glance, this might appear to be a technical error since mixed methods do not need stabilization since stability is directly ensured by the choice of their function spaces. However, this is not an error. In a recent paper, [5], one of the authors showed how a portion of the flux space of any hybridized mixed method can be recast as a stabilization of a equivalent hybridizable discontinuous Galerkin (HDG) methods. By equivalent, we mean that the original hybridized mixed method and the new HDG methods result in exactly the same solution. In this paper, we show that the implementation of the equivalent HDG method is faster than that of original hybridized mixed method. We carry out this for two equivalent HDG methods.
We apply this implementation procedure to a particular mixed method, namely, the Raviart-Thomas (RT) method [13] in symplexes for two reasons. The first is that its extension to any other mixed (or HDG) method defined on polytopal meshes is particularly straightforward* The second reason is that, if this procedure does not work on a simple mixed method, it is very unlikely it would have a chance to work on more sophisticated mixed methods on polytopal meshes. In other words, we consider the material presented here as a necessary stepping stone towards the treatment of the cases of mixed and HDG methods defined in general polytopes.
*How to define mixed methods for polyhedral elements has been shown in the series of papers on M-decompositions [6,7,9] and on new commuting diagrams [8]. See also the review [10] and the references therein.
The paper is organized as follows. In Section 2, we describe how to obtain an HDG method from a hybridized mixed method, we follow [5]. In Section 3, we describe in full detail the implementation of the hybridized RT method. We then do the same for two equivalent HDG methods. In Section 4, we display our numerical results. We end with some concluding remarks. We use the standard notation used for HDG methods, see, for example, [4,5].
For the sake of completeness, we begin by summarizing the subspace-to-stabilization result [5, Section 5]. Consider the Poisson problem:
cq=−∇u, in Ω, and∇⋅q=f, in Ω, | (2.1) |
with the boundary condition that u=uD on the boundary ∂Ω. Here, c is the coefficient, f is the source term and uD is the Dirichlet boundary data. In this paper, we consider the case c=Id. The method can be easily generalized to arbitrary symmetric positive definite tensor fields c. The hybridized mixed method formulation for this problem is as follows: For each element K of the mesh, find qh and uh belonging to the local function spaces V(K) and W(K), respectively, such that:
(qh,v)K−(uh,∇⋅v)K=−⟨ˆuh,v⋅n⟩∂K,(∇⋅qh,w)K=(f,w)K, | (2.2) |
for all test functions v and w belonging to the local function spaces V(K) and W(K), respectively. The above equations are referred to as the 'local problem'. Here, ˆuh is an approximation to u on the faces of the triangulation and is a data to the above problem. The additional equations for this face variable are:
⟨q+h⋅n++q−h⋅n−,μ⟩FI=0, for all μ∈Mh(FI),⟨ˆuh,μ⟩FD=⟨uD,μ⟩FD, for all μ∈Mh(FD), | (2.3) |
where FI is each interior face of the mesh, FD is each Dirichlet boundary face of the mesh and Mh(F) is the local function space on face F. The above equations are referred to as the 'global problem'.
Split V(K) into Vs(K)⊕Va(K). Here, Vs(K) is the subspace of V(K) that will be converted into stabilization and Va(K) is the subspace of V(K) that will be used to define the local problem of the equivalent HDG method. Their exact definition is deferred until later. This splitting converts the local problem (Eq (2.2)) into:
((qa+qs),va)K−(uh,∇⋅va)K=−⟨ˆuh,va⋅n⟩∂K,((qa+qs),vs)K−(uh,∇⋅vs)K=−⟨ˆuh,vs⋅n⟩∂K,(∇⋅(qa+qs),w)K=(f,w)K, |
for all test functions va, vs, and w in the local function spaces Va(K), Vs(K), and W(K), respectively. Requiring the functions in Va(K) and Vs(K) to be orthogonal to each other in the (⋅,⋅)K inner-product, we obtain:
(qa,va)K−(uh,∇⋅va)K=−⟨ˆuh,va⋅n⟩∂K,(qs,vs)K−(uh,∇⋅vs)K=−⟨ˆuh,vs⋅n⟩∂K,(∇⋅(qa+qs),w)K=(f,w)K. | (2.4) |
Integrating the second equation by parts and requiring Vs(K) to be any subspace of V(K) that is L2(K)-orthogonal to ∇W(K) yields
(qs,vs)K=⟨uh−ˆuh,vs⋅n⟩∂K. | (2.5) |
Note that in the above equation, qs (which is the portion of q in the subspace Vs(K)) depends solely on the jump uh−ˆuh on the faces of the element. Observe that the appearance of the term uh−ˆuh has some similarity to the flux stabilization τ(uh−ˆuh) that is used in a HDG method (note that (τ(⋅) here is a linear-mapping that satisfies certain requirements). This similarity is exploited to define a stabilization function τ(uh−ˆuh) for the HDG method that is equivalent to the above hybridized mixed method below.
Based on the form of Eq (2.5), let us define LVs to be the local lifting operator that maps a function μ in the space L2(∂K) to the function LVs(μ) in the space Vs(K) as:
(LVs(μ),vs)K=⟨μ,vs⋅n⟩∂K, | (2.6) |
for all test functions vs in the local space Vs(K). Then, qs=LVs(uh−ˆuh), where by LVs(uh), we mean LVs(uh|∂K). Moreover, the hybridized mixed method in Eq (2.4) can be manipulated to the following HDG method for the portion qa of the flux approximation and the full scalar approximation uh: Find qa and uh in the local function spaces Va(K) and W(K), respectively, such that:
(qa,va)K−(uh,∇⋅va)K=−⟨ˆuh,va⋅n⟩∂K,−(qa,∇w)K+⟨qh⋅n,w⟩∂K=(f,w)K,andqh⋅n=qa⋅n+τ(uh−ˆuh), | (2.7) |
where the stabilization function τ(⋅) is defined using the lifting operator as: τ(uh−ˆuh) = n⋅LVs(uh−ˆuh). The global problem of the HDG method is same as the one in Eq (2.3).
The flux approximation qh of the hybridized mixed method in Eq (2.2) is then obtained from the above HDG method as qh=qa+LVs(uh−ˆuh). Thus, the effect of the local space Vs(K) is fully encapsulated in the defined stabilization function τ via the lifting operator LVs. This is the crux of the 'spaces-to-stabilization' idea.
In summary, the conditions on the local spaces Va(K) and Vs(K) are that:
Vs(K) should be any subspace of V(K) that is L2-orthogonal to ∇W(K),oolVa(K) should be the remaining portion of V(K) that is orthogonal to Vs(K)in the (⋅,⋅)K inner-product. | (2.8) |
The former and latter conditions above were used to obtain the Eqs (2.5) and (2.4), respectively.
Similar to other HDG methods, the degrees of freedom corresponding to qa and uh can be statically condensed to yield a globally-coupled problem just for the degrees of freedom corresponding to the face variable ˆuh as follows. The local problem for the equivalent HDG method given in Eq (2.7) can be shown to be equal to the following local problem:
Find qa and uh in the local function spaces Va(K) and W(K), respectively, such that
(qa,va)K−(uh,∇⋅va)K=−⟨ˆuh,va⋅n⟩∂K,(∇⋅qa,w)K+(LVs(uh),LVs(w))K=(f,w)K+(LVs(ˆuh),LVs(w))K, | (2.9) |
for all test functions va and w in the local function spaces Va(K) and W(K), respectively. The influence of ˆuh and f on (qa,uh) can be separated as (qa,uh) = (Qˆuh,Uˆuh) + (Qf,Uf). Here, (Qˆuh,Uˆuh) is the solution to the following problem with μ=ˆuh:
Find Qμ and Uμ in the local function spaces Va(K) and W(K), respectively, such that:
(Qμ,va)K−(Uμ,∇⋅va)K=−⟨μ,va⋅n⟩∂K,(∇⋅Qμ,w)K+(LVs(Uμ),LVs(w))K=(LVs(μ),LVs(w))K, | (2.10) |
for all test functions va and w in the local function spaces Va(K) and W(K), respectively. (Qf,Uf) is the solution to the problem:
Find Qf and Uf in the local function spaces Va(K) and W(K), respectively, such that:
(Qf,va)K−(Uf,∇⋅va)K=0,(∇⋅Qf,w)K+(LVs(Uf),LVs(w))K=(f,w)K, | (2.11) |
for all test functions va and w in the local function spaces Va(K) and W(K), respectively.
Using the above decomposition, we can show that the equation for ˆuh given in Eq (2.3) is equal to the following problem:
Find ˆuh belonging to the global function space Mh such that:
∑K(Qˆuh,Qμ)K+∑K(LVs(Uˆuh−ˆuh),LVs(Uμ−μ))K=∑K(f,Uμ)K,∀μ∈Mh(FI),⟨ˆuh,μ⟩FD=⟨uD,μ⟩FD,oooo∀μ∈Mh(FD), | (2.12) |
for each interior face FI and Dirichlet boundary face FD of the triangulation. Here, the global function space Mh is the set of functions in L2(F), where F is the union of all faces F in the mesh, and the restriction of Mh on face F is Mh(F).
We use this subspace-to-stabilization idea to come up with two new implementations of the hybridized RT mixed method. Each implementation stems from a different choice of the subspace Vs(K). We note that for the usual hybridized RT method, the local spaces V(K), W(K) and Mh(F) are:
V(K)=[Pk(K)]d⊕x˜Pk(K),W(K)=Pk(K) and Mh(F)=Pk(F). |
Here, Pk(K) denotes the space polynomials of degree k defined on K, ˜Pk(K) denotes the space of homogeneous polynomials of degree k defined on K and d is the spatial dimension of the problem. Table 1 shows the three choices of Vs(K) and the name of the implementation that stems from each of these choices.
Implementation | Vs(K) | Notes | Va(K) |
Usual-HRT | ∅ | Usual | [Pk(K)]d⊕x˜Pk(K) |
Stab-1-HRT | V(1)s(K) | New | [Pk(K)]d |
Stab-2-HRT | V(2)s(K) | New | [Pk−1(K)]d |
The implementation Usual-HRT is the usual implementation of the hybridized RT method, see [1]. This stems from the choice Vs(K)=∅ (the empty set). The implementations Stab-1-HRT and Stab-2-HRT are the two new implementations proposed in this paper. The new implementation Stab-1-HRT stems from the choice Vs(K)=V(1)s(K), where V(1)s(K) is the largest subspace of V(K) that is L2−orthogonal to [Pk(K)]d. The other new implementation V(2)s(K) stems from choosing Vs(K)=V(2)s(K), where V(2)s(K) is the space V(2)s(K) plus the vector-valued polynomials in [Pk(K)]d that are L2-orthogonal to [Pk−1(K)]d.
For each of these implementations, the local space Va(K) is the (⋅,⋅)K-orthogonal complement of Vs(K) within V(K). The space Va(K) for the Usual-HRT, Stab-1-HRT, and Stab-2-HRT implementation is [Pk(K)]d+xPk(K), [Pk(K)]d, and [Pk−1(K)]d, respectively. The details of each of these implementations are given next.
The details of the Usual-HRT implementation are given below.
In the Usual-HRT implementation, the space Va(K) equals [Pk(K)]d⊕x˜Pk(K). We use the following basis functions for this space in each element K:
φ(K)1,…,φ(K)n. |
Here, n=dm+m′, where m=Ck+d−1d, m′=Ck+d−1d−1 and Cba is the binomial coefficient b!/(a!(b−a)!). The first dm basis functions φ(K)1,…,φ(K)dm correspond to the [Pk(K)]d portion of the space. The remaining m′ functions φ(K)dm+1,…,φ(K)n correspond to the remaining portion of the space.
These basis functions are orthonormal to each other. They satisfy the orthonormality condition:
∫Kφ(K)i⋅φ(K)jdΩ=|K|δij, | (3.1) |
where δij is the Kroenecker delta and |K| is the measure (area in 2D and volume in 3D) of element K. The first dm basis functions φ1,…,φdm are constructed using the (normalized) Dubiner polynomials [12] as:
φ(K)d(i′−1)+j′=q(K)i′ej′, for i′=1,m and j′=1,…,d. | (3.2) |
Here, ej′ are the canonical basis functions of Rd. q1,…,qm are the orthonormal Dubiner polynomials in the element K obtained by mapping the orthonormal polynomials in the reference simplex ˆK to the element K as:
q(K)i(x(K)(ˆx))=ˆqi(ˆx), |
where x(K)(ˆx) is the affine mapping from the reference element ˆK to the element K. These polynomials satisfy the following orthonormality relation:
∫Kq(K)iq(K)jdΩ=|K|δij. | (3.3) |
The remaining m′ basis functions φ(K)dm+1,…,φ(K)n are constructed by multiplying the degree k Dubiner polynomial basis functions with x and orthonormalizing them with the rest of the basis functions using the modified Gram-Schmidt kernel. This is described in Algorithm 1.
Algorithm 1 Generating φ(K)dm+1,…,φ(K)n. |
for i=dm+1,…,n do |
φ(K)i←xq(K)i−(d−1)m−m′ |
Orthonormalize φ(K)i against the previous (i−1) basis functions using a modified Gram-Schmidt kernel |
end for |
For the space W(K) (which equals Pk(K)), we use the same orthonormal Dubiner polynomial basis functions:
q(K)1,…,q(K)m. |
For the space Mh(F), we also use orthonormal Dubiner polynomial basis functions but defined on the faces of the mesh. They are:
ψ(F)1,…,ψ(F)m′, |
where F is a typical face of the mesh.
Using the above basis functions converts the local problem that depends on μ (Eq (2.10)) to the following matrix problem:
[In×n|K|−D(K)m×nTD(K)m×n0m×m][Qμ,(K)n×((d+1)m′)Uμ,(K)m×((d+1)m′)]=[−bQμ,(K)n×((d+1)m′)0m×((d+1)m′)]. | (3.4) |
Here, In×n is the identity matrix, 0a×b is a×b matrix of zeros, D(K)m×n is the divergence matrix, Qμ,(K)n×(d+1)m′ is the degree of freedom matrix corresponding to the element-wise mapping Qμ, Uμ,(K)m×((d+1)m′) is the degree of freedom matrix corresponding to the element-wise mapping Uμ, and −bQμ,(K)n×((d+1)m′) is the right-hand side matrix corresponding to the degrees of freedom Qμ,(K)n×(d+1)m′. The size of all matrices is given in the subscript. The entries of the divergence and right-hand matrices are:
[D(K)m×n]i,j=∫Kqi∇⋅φ(K)jdΩ, and [bQμ,(K)n×((d+1)m′)]i,(j−1)m′+r=∫Fjψ(Fj)rφ(K)i⋅ndΓ, | (3.5) |
respectively, where Fj is the jth face of element K.
For efficient solution of the above local problem, we perform two optimizations. The first optimization pertains to computing the divergence matrix D(K)m×n. This matrix has the following form:
D(K)m×n=[D(K)(1)(m−m′)×dmo.o0m′×dmooD(K)(2)|m×m′|]. | (3.6) |
Here, D(K)(1)(m−m′)×dm is the portion of the divergence-matrix from the first dm basis functions, φ(K)1,…,φ(K)dm, which correspond to the [Pk(K)]d portion of the space. The remaining portion of the divergence matrix, D(K)(2)m×m′, is from the last m′ basis functions, φ(K)dm+1,…,φ(K)n. This form is exploited for its efficient computation as follows. The portion D(K)(1)(m−m′)×dm is first computed in along the coordinates of the reference element ˆK. We will denote this reference divergence matrix as ˆD(m−m′)×dm and is given by:
[ˆD(m−m′)×dm]i,j=∫ˆKˆqiˆ∇⋅ˆφjdˆΩ. |
Then, to compute D(K)(1)(m−m′)×dm in each element K, we simply combine the columns of ˆD(m−m′)×dm using the entries of the Jacobian of x(K)(ˆx). Hence, we do not differentiate the first dm basis functions separately for each element of the mesh but just once in the reference element. Elementwise differentiation is performed only for the last m′ basis functions needed to compute the remaining of the divergence matrix, portion, D(K)(2)m×m′.
The second optimization pertains to the solution of the local matrix problem in Eq (3.4). Since the mass matrix is identity, the degrees of freedom matrix Qμ,(K)n×(d+1)m′ can be easily eliminated to obtain the following matrix problem just for the degrees of freedom Uμ,(K)m×((d+1)m′):
L(K)m×mUμ,(K)m×((d+1)m′)=D(K)m×nbQμ,(K)n×((d+1)m′). | (3.7) |
Here, L(K)m×m is the Laplacian matrix and is equal to:
L(K)m×m=D(K)m×nD(K)m×nT. |
To solve this problem, the matrix L(K)m×m is first factored using the (dense) Cholesky factorization method and the computed factor is used to obtain Uμ,(K)m×((d+1)m′).
Similarly, the above basis functions convert the local problem that depends on f (Eq (2.11)) to the following matrix problem:
[In×n|K|−D(K)m×nTD(K)m×n0m×m][Qf,(K)n×1Uf,(K)m×1]=[0n×1|K|P(K)fm×1]. |
Here, Qf,(K)n×1 and Uf,(K)m×1 are the degrees of freedom vector corresponding to the mapping Qf and Uf, respectively.Here, P(K)fm×1 is the degree of freedom vector obtained by L2-projection of f onto W using the above basis functions. Similar to the local problem that depended on μ, the above matrix problem is also solved by eliminating the degrees of freedom corresponding to Qf,(K)n×1 and then using the above computed Cholesky factor to obtain Uf,(K)m×1.
Using the above computed local problem solutions, the element matrix A(K)((d+1)m′)×((d+1)m′) and element vector b(K)((d+1)m′)×1 are computed in each element K as:
A(K)((d+1)m′)×((d+1)m′)=Qμ,(K)n×(d+1)m′TQμ,(K)n×(d+1)m′|K|, and b(K)((d+1)m′)×1=Uμ,(K)m×(d+1)m′TP(K)fm×1|K|, | (3.8) |
respectively. These element matrices and vectors are assembled together and the degrees of freedom of ˆuh corresponding to the Dirichlet boundary faces are statically condensed to obtain the global matrix problem:
Am′nF×m′nFˆum′nF×1=bm′nF×1. | (3.9) |
Here, nF is the total number of faces of the mesh minus the Dirichlet boundary faces. Am′nF×m′nF is the global left-hand side matrix. bm′nF×1 is the global right-hand side vector. ˆum′nF×1 is the degree of freedom vector corresponding to ˆuh. The above global matrix problem is solved using the sparse Cholesky factorization method.
The details of the new Stab-1-HRT implementation are given below. For general HDG methods, see [3,11].
In this implementation, for the space Va(K) in each element K, we use the following orthonormal basis functions:
φ(K)1,…,φ(K)dm. |
The above functions φ(K)i are the same ones that were defined in Section 3.1.1. For the space Vs(K), we use:
φ(K)dm+1,…,φ(K)n. |
These are the remaining m′ basis functions that were defined in Section 3.1.1. For the remaining spaces W and Mh, we use the same basis functions as that used in Section 3.1.1.
In this implementation, we have to compute the stabilization mapping LVs (given in Eq (2.6)). Using the above basis functions for Vs(K), the matrix form of this mapping becomes:
Ls,(K)m′×(d+1)m′=1|K|bs,(K)m′×(d+1)m′. |
Here, bs,(K)m′×(d+1)m′ is the right-hand side of the stabilization mapping given by:
[bs,(K)m′×((d+1)m′)]i,(j−1)m′+r=∫Fjψ(Fj)rφ(K)dm+i⋅ndΓ. |
Using the above basis functions for Va and the above matrix form of the stabilization mapping, the local problem that depends on μ (Eq (2.10)) becomes the following local matrix problem:
[In×n|K|−D(K)m×dmTD(K)m×dmMs,(K)m×m][Qμ,(K)dm×(d+1)m′Uμ,(K)m×(d+1)m′]=[−bQμ,(K)dm×((d+1)m′)bUμ,(K)m×((d+1)m′)]. | (3.10) |
Here, Ms,(K)m×m is the mass matrix that arises from the equivalent stabilization. It relates to the stabilization mapping matrix as:
Ms,(K)m×m=|K|[Ls,(K)m′×(d+1)m′B(K)(d+1)m′×m]T[Ls,(K)m′×(d+1)m′B(K)(d+1)m′×m], |
where B(K)(d+1)m′×m is the linear mapping from the degrees of freedom of u to that of μ in element K. D(K)m×n is the same divergence matrix that was defined in Section 3.1.2. The right-hand side matrix bUμ,(K)m×((d+1)m′) is given by:
bUμ,(K)m×((d+1)m′)=|K|[Ls,(K)m′×(d+1)m′B(K)(d+1)m′×m]TLs,(K)m′×(d+1)m′. |
Observe that the divergence matrix D(K)m×dm in Eq (3.10) has the following form:
D(K)m×dm=[D(K)(1)(m−m′)×dmo.o0m′×dmoo], |
where the portion D(K)(1)(m−m′)×dm is the same as that defined in Eq (3.6). Observe that the portion D(K)(2)n×m′ that was present in Eq (3.6) is not present above. Hence, we only compute the portion D(K)(1)(m−m′)×dm using the optimized implementation described in Section 3.1.2. We never compute D(K)(2)n×m′ that required differentiation of the last m′ basis functions separately in each element of the mesh. This yields in considerable reduction in the time taken to compute the individual local problems and is demonstrated by the numerical experiments in Section 4.
Similar to the Usual-HRT implementation, the degree of freedom matrix Qμ,(K)dm×(d+1)m′ is eliminated to obtain the following equation for Uμ,(K)m×(d+1)m′:
L(K),1m×mUμ,(K)m×(d+1)m′=D(K)m×nbQμ,(K)dm×((d+1)m′)+bUμ,(K)m×((d+1)m′). | (3.11) |
Here, the Laplacian matrix L(K),1m×m is given by:
L(K),1m×m=D(K)m×dmD(K)m×dmT+Ms,(K)m×m. |
The Laplacian is first factored using the Cholesky factorization method and the computed factors are used to compute Uμ,(K)m×(d+1)m′.
Similarly, the chosen basis functions convert the local problem that depends on f to the following matrix problem:
[In×n|K|−D(K)m×dmTD(K)m×dmMs,(K)m×m][Qf,(K)dm×(d+1)m′Uf,(K)m×(d+1)m′]=[0dm×1|K|P(K)fm×1]. |
The above matrix problem is solved similar to the above local problem that depended only on μ. The same Cholesky factors are used for its solution.
In this implementation, the element matrix and vector are computed as:
A(K)((d+1)m′)×((d+1)m′)=Qμ,(K)dm×(d+1)m′TQμ,(K)dm×(d+1)m′|K|, and b(K)((d+1)m′)×1=Uμ,(K)m×(d+1)m′TP(K)fm×1|K|. | (3.12) |
Then, similar to the Usual-HRT implementation, the above element matrices and element vectors are assembled to form the global problem:
Am′nF×m′nFˆum′nF×1=bm′nF×1. |
This global problem is solved using the sparse Cholesky factorization.
The details of the new Stab-2-HRT implementation are given below.
In this implementation, for the space Va(K) in each element K, we use the following orthonormal basis functions:
φ(K)1,…,φ(K)d(m−m′)), |
where the above functions φ(K)i are the same functions defined in Section 3.1.1. For the space Vs(K), we use the remaining (d+1)m′ functions as the basis:
φ(K)d(m−m′)+1,…,φn. |
For the spaces W and Mh, we use the same basis functions that were used in Section 3.1.1.
The local problem solution for this implementation is very similar to that of the Stab-1-HRT implementation. The matrix form of the stabilization mapping LVs is:
Ls,(K)(d+1)m′×(d+1)m′=1|K|bs,(K)(d+1)m′×(d+1)m′, |
where
[bs,(K)(d+1)m′×((d+1)m′)]i,(j−1)m′+r=∫Fjψ(Fj)rφ(K)d(m−m′)+i⋅ndΓ. |
The local problem that depends on μ (Eq (2.10)) becomes the following matrix problem:
[Id(m−m′)×d(m−m′)|K|−D(K)m×d(m−m′)TD(K)m×d(m−m′)M(K),(L)m×m][Qμ,(K)d(m−m′)×(d+1)m′Uμ,(K)m×(d+1)m′]=[−bQμ,(K)dm×((d+1)m′)bUμ,(K)m×((d+1)m′)], | (3.13) |
where the mass-matrix from the stabilization term is:
Ms,(K)m×m=|K|[Ls,(K)(d+1)m′×(d+1)m′B(K)(d+1)m′×m]T[Ls,(K)(d+1)m′×(d+1)m′B(K)(d+1)m′×m]. |
Then, similar to the Stab-1-HRT implementation, the above local matrix problem is solved using the Cholesky factorization methodology after eliminating the matrix Qμ,(K)d(m−m′)×(d+1)m′.
The local problem that depends on f becomes:
[Id(m−m′)×d(m−m′)|K|−D(K)m×d(m−m′)TD(K)m×d(m−m′)M(K),(L)m×m][Qf,(K)d(m−m′)×1Uf,(K)m×1]=[−0dm×1|K|P(K)fm×1]. | (3.14) |
The above matrix problem is also solved using the same Cholesky factors that were computed while solving the above local problem that depended on μ alone.
In this implementation, the element matrix and vector are computed as:
A(K)((d+1)m′)×((d+1)m′)=|K|(Qμ,(K)dm×(d+1)m′TQμ,(K)dm×(d+1)m′+[Ls,(K)(d+1)m′×(d+1)m′(B(K)(d+1)m′×mUμ,(K)m×(d+1)m′−I(d+1)m′×(d+1)m′)]T[Ls,(K)(d+1)m′×(d+1)m′(B(K)(d+1)m′×mUμ,(K)m×(d+1)m′−I(d+1)m′×(d+1)m′)]),b(K)((d+1)m′)×1=Uμ,(K)m×(d+1)m′TP(K)fm×1|K|. |
Then, similar to the Stab-1-HRT implementation, the above element matrices and element vectors are assembled to form the global problem
Am′nF×m′nFˆum′nF×1=bm′nF×1 |
and this global problem is solved using the sparse Cholesky factorization.
We present results comparing the three implementations. We consider the Poisson problem with f=8π2sin(2πx1)sin(2πx2) in the domain (0,1)2. The domain is first split into 16 uniform quadrilateral elements along each direction. Each quadrilateral element is further split into two triangular elements. This leads to a uniform mesh of 512 triangular elements. Polynomial degrees 1 to 20 are considered. Zero-Dirichlet boundary condition is imposed on all the four sides of the domain. All these implementations were first validated to make sure they yield identical solutions.
All numerical experiments were performed in MATLAB. We use a workstation with Intel(R) Core(TM) i7-8700 processor. The processor has six cores and hyperthreading. We also note that MATLAB uses the multi-threaded MKL BLAS backend for certain matrix and vector manipulations. Hence, there is some inherent parallelism in our implementation. For the global problem solution, we use the sparse direct solver available in MATLAB. MATLAB uses the sparse multi-threaded Cholesky solver CHOLMOD [2] for our symmteric positive definite problem when performing x = A \ b.
Tables 2 and 3 show the time consumed by the one-time operations (that are performed just once in the reference element), the local problem solution in all the elements, global problem solution and the total solution time. The breakdown of the time taken by the different components of the local problem solution are shown in Tables 4 and 5. The percentage benefit of the new implementations compared to the Usual-HRT implementation is shown in Table 6.
k | One-time operations | Local problem solutions | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 8.54E-03 | 4.66E-03 | 6.14E-03 | 1.07E-01 | 8.29E-02 | 9.56E-02 |
2 | 3.04E-03 | 2.11E-03 | 2.19E-03 | 1.65E-01 | 1.17E-01 | 1.26E-01 |
3 | 3.46E-03 | 8.79E-04 | 8.62E-04 | 2.36E-01 | 1.78E-01 | 1.89E-01 |
4 | 1.20E-03 | 1.20E-03 | 1.25E-03 | 3.59E-01 | 2.76E-01 | 2.90E-01 |
5 | 1.77E-03 | 1.70E-03 | 1.83E-03 | 5.31E-01 | 4.23E-01 | 4.40E-01 |
6 | 2.43E-03 | 2.52E-03 | 2.45E-03 | 8.82E-01 | 7.23E-01 | 6.70E-01 |
7 | 3.37E-03 | 3.36E-03 | 3.39E-03 | 1.25E+00 | 1.05E+00 | 1.07E+00 |
8 | 4.93E-03 | 5.01E-03 | 4.92E-03 | 1.74E+00 | 1.45E+00 | 1.47E+00 |
9 | 6.85E-03 | 6.85E-03 | 7.16E-03 | 2.28E+00 | 1.99E+00 | 2.02E+00 |
10 | 9.15E-03 | 9.17E-03 | 9.00E-03 | 3.07E+00 | 2.62E+00 | 2.68E+00 |
11 | 1.21E-02 | 1.26E-02 | 1.25E-02 | 3.98E+00 | 3.43E+00 | 3.47E+00 |
12 | 1.70E-02 | 1.72E-02 | 1.71E-02 | 5.13E+00 | 4.41E+00 | 4.59E+00 |
13 | 2.33E-02 | 2.35E-02 | 2.37E-02 | 6.56E+00 | 5.83E+00 | 5.84E+00 |
14 | 3.01E-02 | 2.99E-02 | 3.02E-02 | 8.27E+00 | 7.26E+00 | 7.39E+00 |
15 | 4.01E-02 | 3.99E-02 | 4.04E-02 | 1.06E+01 | 9.26E+00 | 9.34E+00 |
16 | 5.18E-02 | 5.12E-02 | 5.46E-02 | 1.30E+01 | 1.14E+01 | 1.16E+01 |
17 | 7.16E-02 | 7.28E-02 | 7.09E-02 | 1.60E+01 | 1.40E+01 | 1.41E+01 |
18 | 9.03E-02 | 8.97E-02 | 9.03E-02 | 1.95E+01 | 1.71E+01 | 1.73E+01 |
19 | 1.25E-01 | 1.25E-01 | 1.26E-01 | 2.51E+01 | 2.07E+01 | 2.09E+01 |
20 | 1.68E-01 | 1.63E-01 | 1.66E-01 | 2.99E+01 | 2.48E+01 | 2.51E+01 |
k | Global problem solution | Total solution | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 3.02E-02 | 3.00E-02 | 3.12E-02 | 1.46E-01 | 1.18E-01 | 1.33E-01 |
2 | 2.76E-02 | 2.66E-02 | 3.06E-02 | 1.96E-01 | 1.46E-01 | 1.59E-01 |
3 | 2.70E-02 | 2.65E-02 | 3.04E-02 | 2.66E-01 | 2.06E-01 | 2.20E-01 |
4 | 3.03E-02 | 3.04E-02 | 3.41E-02 | 3.90E-01 | 3.08E-01 | 3.26E-01 |
5 | 3.44E-02 | 3.35E-02 | 3.77E-02 | 5.67E-01 | 4.58E-01 | 4.79E-01 |
6 | 3.96E-02 | 3.92E-02 | 4.19E-02 | 9.24E-01 | 7.65E-01 | 7.14E-01 |
7 | 4.66E-02 | 4.65E-02 | 5.08E-02 | 1.30E+00 | 1.10E+00 | 1.13E+00 |
8 | 5.24E-02 | 5.07E-02 | 5.54E-02 | 1.80E+00 | 1.51E+00 | 1.53E+00 |
9 | 5.81E-02 | 5.84E-02 | 6.35E-02 | 2.35E+00 | 2.06E+00 | 2.09E+00 |
10 | 6.54E-02 | 6.52E-02 | 6.99E-02 | 3.15E+00 | 2.69E+00 | 2.76E+00 |
11 | 7.22E-02 | 7.10E-02 | 7.73E-02 | 4.06E+00 | 3.51E+00 | 3.56E+00 |
12 | 8.00E-02 | 7.92E-02 | 8.51E-02 | 5.22E+00 | 4.51E+00 | 4.69E+00 |
13 | 9.06E-02 | 8.95E-02 | 9.55E-02 | 6.68E+00 | 5.94E+00 | 5.96E+00 |
14 | 1.00E-01 | 1.01E-01 | 1.05E-01 | 8.40E+00 | 7.39E+00 | 7.53E+00 |
15 | 1.12E-01 | 1.10E-01 | 1.16E-01 | 1.07E+01 | 9.41E+00 | 9.50E+00 |
16 | 1.25E-01 | 1.23E-01 | 1.29E-01 | 1.32E+01 | 1.16E+01 | 1.17E+01 |
17 | 1.39E-01 | 1.37E-01 | 1.42E-01 | 1.62E+01 | 1.42E+01 | 1.43E+01 |
18 | 1.52E-01 | 1.50E-01 | 1.55E-01 | 1.97E+01 | 1.73E+01 | 1.75E+01 |
19 | 1.62E-01 | 1.60E-01 | 1.69E-01 | 2.54E+01 | 2.09E+01 | 2.12E+01 |
20 | 1.81E-01 | 1.78E-01 | 1.85E-01 | 3.03E+01 | 2.51E+01 | 2.55E+01 |
k | Additional RT basis | Div. matrix of additional RT basis | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 2.50E-02 | 2.52E-02 | 2.59E-02 | 2.74E-02 | - | - |
2 | 5.57E-02 | 5.35E-02 | 5.35E-02 | 4.43E-02 | - | - |
3 | 1.05E-01 | 1.05E-01 | 1.04E-01 | 5.99E-02 | - | - |
4 | 1.88E-01 | 1.88E-01 | 1.88E-01 | 8.57E-02 | - | - |
5 | 3.16E-01 | 3.18E-01 | 3.17E-01 | 1.15E-01 | - | - |
6 | 5.49E-01 | 5.48E-01 | 5.23E-01 | 1.61E-01 | - | - |
7 | 8.37E-01 | 8.37E-01 | 8.36E-01 | 2.08E-01 | - | - |
8 | 1.23E+00 | 1.21E+00 | 1.21E+00 | 2.72E-01 | - | - |
9 | 1.68E+00 | 1.71E+00 | 1.70E+00 | 3.35E-01 | - | - |
10 | 2.30E+00 | 2.29E+00 | 2.30E+00 | 4.29E-01 | - | - |
11 | 3.05E+00 | 3.05E+00 | 3.05E+00 | 5.31E-01 | - | - |
12 | 3.98E+00 | 3.97E+00 | 4.03E+00 | 6.83E-01 | - | - |
13 | 5.12E+00 | 5.24E+00 | 5.16E+00 | 8.89E-01 | - | - |
14 | 6.52E+00 | 6.57E+00 | 6.62E+00 | 1.08E+00 | - | - |
15 | 8.42E+00 | 8.47E+00 | 8.46E+00 | 1.37E+00 | - | - |
16 | 1.04E+01 | 1.05E+01 | 1.05E+01 | 1.61E+00 | - | - |
17 | 1.28E+01 | 1.29E+01 | 1.29E+01 | 2.05E+00 | - | - |
18 | 1.58E+01 | 1.58E+01 | 1.58E+01 | 2.41E+00 | - | - |
19 | 1.93E+01 | 1.92E+01 | 1.92E+01 | 4.31E+00 | - | - |
20 | 2.32E+01 | 2.31E+01 | 2.32E+01 | 5.04E+00 | - | - |
k | Local matrix problem | ||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 3.47E-02 | 3.88E-02 | 4.98E-02 |
2 | 4.04E-02 | 4.20E-02 | 5.07E-02 |
3 | 4.27E-02 | 4.78E-02 | 5.86E-02 |
4 | 4.93E-02 | 5.42E-02 | 6.88E-02 |
5 | 5.69E-02 | 6.34E-02 | 8.10E-02 |
6 | 1.15E-01 | 1.21E-01 | 9.54E-02 |
7 | 1.37E-01 | 1.45E-01 | 1.68E-01 |
8 | 1.58E-01 | 1.58E-01 | 1.85E-01 |
9 | 1.65E-01 | 1.82E-01 | 2.21E-01 |
10 | 2.06E-01 | 2.03E-01 | 2.54E-01 |
11 | 2.36E-01 | 2.34E-01 | 2.82E-01 |
12 | 2.74E-01 | 2.69E-01 | 3.40E-01 |
13 | 3.27E-01 | 3.70E-01 | 4.62E-01 |
14 | 3.95E-01 | 4.26E-01 | 5.03E-01 |
15 | 4.55E-01 | 4.87E-01 | 5.74E-01 |
16 | 5.54E-01 | 5.44E-01 | 6.88E-01 |
17 | 6.07E-01 | 6.41E-01 | 7.81E-01 |
18 | 7.19E-01 | 7.51E-01 | 9.29E-01 |
19 | 8.61E-01 | 9.04E-01 | 1.12E+00 |
20 | 1.02E+00 | 1.05E+00 | 1.31E+00 |
k | Local problem solution | Total solution | ||
Stab-1-HRT | Stab-2-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 22.65 | 10.90 | 19.40 | 8.93 |
2 | 28.84 | 23.40 | 25.32 | 18.63 |
3 | 24.35 | 20.03 | 22.72 | 17.46 |
4 | 23.04 | 19.06 | 21.16 | 16.55 |
5 | 20.34 | 17.23 | 19.21 | 15.53 |
6 | 17.94 | 23.99 | 17.15 | 22.64 |
7 | 16.20 | 14.47 | 15.58 | 13.59 |
8 | 16.85 | 15.67 | 16.41 | 15.01 |
9 | 12.77 | 11.44 | 12.40 | 10.88 |
10 | 14.87 | 12.83 | 14.53 | 12.38 |
11 | 13.85 | 12.71 | 13.58 | 12.32 |
12 | 13.95 | 10.49 | 13.70 | 10.20 |
13 | 11.15 | 11.01 | 10.97 | 10.74 |
14 | 12.21 | 10.64 | 12.01 | 10.42 |
15 | 12.31 | 11.56 | 12.16 | 11.36 |
16 | 12.50 | 11.24 | 12.36 | 11.04 |
17 | 12.40 | 11.64 | 12.24 | 11.47 |
18 | 12.20 | 11.08 | 12.07 | 10.94 |
19 | 17.59 | 16.47 | 17.40 | 16.25 |
20 | 17.15 | 16.01 | 16.98 | 15.82 |
The new implementations Stab-1-HRT and Stab-2-HRT are faster than the Usual-HRT implementation for all the polynomial degrees. From Table 6, we observe that they are 10-20% faster depending on the polynomial degree. Stab-1-HRT is slightly faster than Stab-2-HRT for nearly all polynomial degrees (except degree six).
The local problem solutions consume the majority of the total solution time. These local problem solution solutions are faster for the new Stab-1-HRT and Stab-2-HRT implementations compared to the usual-HRT implementations. From Tables 4 and 5 (which show the breakdown of the local problem solutions), we observe that this performance benefit is essentially because in the new Stab-1-HRT and Stab-2-HRT implementations, we need not compute the derivative of the additional RT basis functions, i.e., φdm+1, …, φn, and their contribution to the divergence matrix of the local problems. However, in the usual-HRT implementation, these derivatives and their contribution to the divergence matrix must be computed. In the Stab-1-HRT and Stab-2-HRT implementations, there is an overhead associated with the computation of the stabilization mappings. However, the benefits from not computing the derivative of the additional RT basis functions and their contribution to the divergence matrix significantly outweights this overhead. Hence, the new implementations of the hybridized RT method yield significant (10–20%) performance benefit compared to the usual implementation.
As pointed out in [5], although the choice of the local function space Va(K) is not unique, as we have also seen here, the smallest of these local spaces, ∇W(K)=∇Pk(K), is actually unique. It remains to be seen it we still retain an advantage over the usual implementation of the hybridized RT method for this choice. This constitutes the subject of ongoing work.
The present paper is currently being extended along the following directions:
(1) As pointed out in the Introduction, the choice of the RT method as the mixed method is by no means restrictive, as the approach proposed here can also be applied to any other mixed method for polyhedral meshes, for e.g., those defined using M-decompositions in [6,7,9] and using new commuting diagrams [8] (see also the review [10]) and the references therein). The space V(K) in these methods also have the form [Pk(K)]d⊕Vfill and the W(K) is still equal to Pk(K). Similar to the implementation presented here, the effect of Vfill (and also a portion of [Pk(K)]d) can be encapsulated within a mapping LVs defined in a similar way.
In our new implementations, we have not defined the basis functions via the Piola Transform. On the other hand, the reference unit simplex is only used to define the orthonormal polynomial basis functions for [Pk(K)]d and to compute the divergence matrix via chain rule. In the case of polytopal elements, we note that the polytopal mixed methods in [6,7,8,9,10] do not make use of a reference element. Hence, it would be a different baseline to compare our implementations to.
Furthermore, the application of this approach to other general HDG methods can be carried out very easily, as we are going to show elsewhere.
(2) In d=3 dimensions, we expect similar or better speedups. For e.g., for simplexes and Stab-2-HRT, the reduction in the computational effort for the local problem is approximately proportional to dim(V(2)s(K)) which is (d+1)Ck+d−1d−1. The factor
dim(V(2)s(K))dim(V(K))=(d+1)Ck+d−1d−1(dCk+dd+Ck+d−1d−1)=d+1d+k. |
For large k, this factor is around 4/3 times larger for d=3 compared to d=2. Hence, we expect similar or bigger speedups for three-dimensional problems. Extension to d=3 is part of our ongoing work.
(3) Finally, note that, although we have exploited the fact that the tensor-valued function c is the identity for our model second-order elliptic problem, it is easy to extend what has been done to a general elliptic problem. This is also part of our ongoing work.
The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.
Bernardo Cockburn's research was supported in part by the Advanced Computational Center for Entry Systems Simulation (ACCESS) through NASA grant 80NSSC21K1117.
The authors declare no conflicts of interest.
[1] |
D. N. Arnold, F. Brezzi, Mixed and nonconforming finite element methods: implementation, postprocessing and error estimates, RAIRO Modél. Math. Anal. Numér., 19 (1985), 7–32. https://doi.org/10.1051/m2an/1985190100071 doi: 10.1051/m2an/1985190100071
![]() |
[2] |
Y. Chen, T. A. Davis, W. W. Hager, S. Rajamanickam, Algorithm 887: CHOLMOD, supernodal sparse Cholesky factorization and update/downdate, ACM Trans. Math. Software, 35 (2008), 1–14. https://doi.org/10.1145/1391989.1391995 doi: 10.1145/1391989.1391995
![]() |
[3] | B. Cockburn, Static condensation, hybridization, and the devising of the HDG methods, In: G. Barrenechea, F. Brezzi, A. Cangiani, E. Georgoulis, Building bridges: connections and challenges in modern approaches to numerical partial differential equations, Cham: Springer, 114 (2016), 129–177. https://doi.org/10.1007/978-3-319-41640-3_5 |
[4] | B. Cockburn, Discontinuous Galerkin methods for computational fluid dynamics, In: E. Stein, R. de Borst, T. J. R. Hughes, Encyclopedia of computational mechanics, 2 Eds., John Wiley & Sons, Ltd., 5 (2018), 141–203. https://doi.org/10.1002/9781119176817.ecm2053 |
[5] |
B. Cockburn, Hybridizable discontinuous Galerkin methods for second-order elliptic problems: overview, a new result and open problems, Japan J. Indust. Appl. Math., 40 (2023), 1637–1676. https://doi.org/10.1007/s13160-023-00603-9 doi: 10.1007/s13160-023-00603-9
![]() |
[6] |
B. Cockburn, G. Fu, Superconvergence by M-decompositions. Part Ⅱ: Construction of two-dimensional finite elements, ESAIM Math. Model. Numer. Anal., 51 (2017), 165–186. https://doi.org/10.1051/m2an/2016016 doi: 10.1051/m2an/2016016
![]() |
[7] |
B. Cockburn, G. Fu, Superconvergence by M-decompositions. Part Ⅲ: Construction of three-dimensional finite elements, ESAIM Math. Model. Numer. Anal., 51 (2017), 365–398. https://doi.org/10.1051/m2an/2016023 doi: 10.1051/m2an/2016023
![]() |
[8] |
B. Cockburn, G. Fu, A systematic construction of finite element commuting exact sequences, SIAM J. Numer. Anal., 55 (2017), 1650–1688. https://doi.org/10.1137/16M1073352 doi: 10.1137/16M1073352
![]() |
[9] |
B. Cockburn, G. Fu, F. J. Sayas, Superconvergence by M-decompositions. Part Ⅰ: General theory for HDG methods for diffusion, Math. Comp., 86 (2017), 1609–1641. https://doi.org/10.1090/mcom/3140 doi: 10.1090/mcom/3140
![]() |
[10] | B. Cockburn, G. Fu, K. Shi, An introduction to the theory of M-decompositions, In: D. Di Pietro, A. Ern, L. Formaggia, Numerical methods for PDEs, Cham: Springer, 15 (2018), 5–29. https://doi.org/10.1007/978-3-319-94676-4_2 |
[11] |
B. Cockburn, J. Gopalakrishnan, R. Lazarov, Unified hybridization of discontinuous Galerkin, mixed and continuous Galerkin methods for second order elliptic problems, SIAM J. Numer. Anal., 47 (2009), 1319–1365. https://doi.org/10.1137/070706616 doi: 10.1137/070706616
![]() |
[12] |
M. Dubiner, Spectral methods on triangles and other domains, J. Sci. Comput., 6 (1991), 345–390. https://doi.org/10.1007/BF01060030 doi: 10.1007/BF01060030
![]() |
[13] | P. A. Raviart, J. M. Thomas, A mixed finite element method for second order elliptic problems, In: I. Galligani, E. Magenes, Mathematical aspects of finite element method, Lecture Notes in Mathematics, Springer, 606 (1977), 292–315. https://doi.org/10.1007/BFb0064470 |
1. | Bernardo Cockburn, Zubin Lal, Turbo Post-processing for Discontinuous Galerkin Methods: One-Dimensional Linear Transport, 2025, 103, 0885-7474, 10.1007/s10915-025-02887-0 |
Implementation | Vs(K) | Notes | Va(K) |
Usual-HRT | ∅ | Usual | [Pk(K)]d⊕x˜Pk(K) |
Stab-1-HRT | V(1)s(K) | New | [Pk(K)]d |
Stab-2-HRT | V(2)s(K) | New | [Pk−1(K)]d |
k | One-time operations | Local problem solutions | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 8.54E-03 | 4.66E-03 | 6.14E-03 | 1.07E-01 | 8.29E-02 | 9.56E-02 |
2 | 3.04E-03 | 2.11E-03 | 2.19E-03 | 1.65E-01 | 1.17E-01 | 1.26E-01 |
3 | 3.46E-03 | 8.79E-04 | 8.62E-04 | 2.36E-01 | 1.78E-01 | 1.89E-01 |
4 | 1.20E-03 | 1.20E-03 | 1.25E-03 | 3.59E-01 | 2.76E-01 | 2.90E-01 |
5 | 1.77E-03 | 1.70E-03 | 1.83E-03 | 5.31E-01 | 4.23E-01 | 4.40E-01 |
6 | 2.43E-03 | 2.52E-03 | 2.45E-03 | 8.82E-01 | 7.23E-01 | 6.70E-01 |
7 | 3.37E-03 | 3.36E-03 | 3.39E-03 | 1.25E+00 | 1.05E+00 | 1.07E+00 |
8 | 4.93E-03 | 5.01E-03 | 4.92E-03 | 1.74E+00 | 1.45E+00 | 1.47E+00 |
9 | 6.85E-03 | 6.85E-03 | 7.16E-03 | 2.28E+00 | 1.99E+00 | 2.02E+00 |
10 | 9.15E-03 | 9.17E-03 | 9.00E-03 | 3.07E+00 | 2.62E+00 | 2.68E+00 |
11 | 1.21E-02 | 1.26E-02 | 1.25E-02 | 3.98E+00 | 3.43E+00 | 3.47E+00 |
12 | 1.70E-02 | 1.72E-02 | 1.71E-02 | 5.13E+00 | 4.41E+00 | 4.59E+00 |
13 | 2.33E-02 | 2.35E-02 | 2.37E-02 | 6.56E+00 | 5.83E+00 | 5.84E+00 |
14 | 3.01E-02 | 2.99E-02 | 3.02E-02 | 8.27E+00 | 7.26E+00 | 7.39E+00 |
15 | 4.01E-02 | 3.99E-02 | 4.04E-02 | 1.06E+01 | 9.26E+00 | 9.34E+00 |
16 | 5.18E-02 | 5.12E-02 | 5.46E-02 | 1.30E+01 | 1.14E+01 | 1.16E+01 |
17 | 7.16E-02 | 7.28E-02 | 7.09E-02 | 1.60E+01 | 1.40E+01 | 1.41E+01 |
18 | 9.03E-02 | 8.97E-02 | 9.03E-02 | 1.95E+01 | 1.71E+01 | 1.73E+01 |
19 | 1.25E-01 | 1.25E-01 | 1.26E-01 | 2.51E+01 | 2.07E+01 | 2.09E+01 |
20 | 1.68E-01 | 1.63E-01 | 1.66E-01 | 2.99E+01 | 2.48E+01 | 2.51E+01 |
k | Global problem solution | Total solution | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 3.02E-02 | 3.00E-02 | 3.12E-02 | 1.46E-01 | 1.18E-01 | 1.33E-01 |
2 | 2.76E-02 | 2.66E-02 | 3.06E-02 | 1.96E-01 | 1.46E-01 | 1.59E-01 |
3 | 2.70E-02 | 2.65E-02 | 3.04E-02 | 2.66E-01 | 2.06E-01 | 2.20E-01 |
4 | 3.03E-02 | 3.04E-02 | 3.41E-02 | 3.90E-01 | 3.08E-01 | 3.26E-01 |
5 | 3.44E-02 | 3.35E-02 | 3.77E-02 | 5.67E-01 | 4.58E-01 | 4.79E-01 |
6 | 3.96E-02 | 3.92E-02 | 4.19E-02 | 9.24E-01 | 7.65E-01 | 7.14E-01 |
7 | 4.66E-02 | 4.65E-02 | 5.08E-02 | 1.30E+00 | 1.10E+00 | 1.13E+00 |
8 | 5.24E-02 | 5.07E-02 | 5.54E-02 | 1.80E+00 | 1.51E+00 | 1.53E+00 |
9 | 5.81E-02 | 5.84E-02 | 6.35E-02 | 2.35E+00 | 2.06E+00 | 2.09E+00 |
10 | 6.54E-02 | 6.52E-02 | 6.99E-02 | 3.15E+00 | 2.69E+00 | 2.76E+00 |
11 | 7.22E-02 | 7.10E-02 | 7.73E-02 | 4.06E+00 | 3.51E+00 | 3.56E+00 |
12 | 8.00E-02 | 7.92E-02 | 8.51E-02 | 5.22E+00 | 4.51E+00 | 4.69E+00 |
13 | 9.06E-02 | 8.95E-02 | 9.55E-02 | 6.68E+00 | 5.94E+00 | 5.96E+00 |
14 | 1.00E-01 | 1.01E-01 | 1.05E-01 | 8.40E+00 | 7.39E+00 | 7.53E+00 |
15 | 1.12E-01 | 1.10E-01 | 1.16E-01 | 1.07E+01 | 9.41E+00 | 9.50E+00 |
16 | 1.25E-01 | 1.23E-01 | 1.29E-01 | 1.32E+01 | 1.16E+01 | 1.17E+01 |
17 | 1.39E-01 | 1.37E-01 | 1.42E-01 | 1.62E+01 | 1.42E+01 | 1.43E+01 |
18 | 1.52E-01 | 1.50E-01 | 1.55E-01 | 1.97E+01 | 1.73E+01 | 1.75E+01 |
19 | 1.62E-01 | 1.60E-01 | 1.69E-01 | 2.54E+01 | 2.09E+01 | 2.12E+01 |
20 | 1.81E-01 | 1.78E-01 | 1.85E-01 | 3.03E+01 | 2.51E+01 | 2.55E+01 |
k | Additional RT basis | Div. matrix of additional RT basis | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 2.50E-02 | 2.52E-02 | 2.59E-02 | 2.74E-02 | - | - |
2 | 5.57E-02 | 5.35E-02 | 5.35E-02 | 4.43E-02 | - | - |
3 | 1.05E-01 | 1.05E-01 | 1.04E-01 | 5.99E-02 | - | - |
4 | 1.88E-01 | 1.88E-01 | 1.88E-01 | 8.57E-02 | - | - |
5 | 3.16E-01 | 3.18E-01 | 3.17E-01 | 1.15E-01 | - | - |
6 | 5.49E-01 | 5.48E-01 | 5.23E-01 | 1.61E-01 | - | - |
7 | 8.37E-01 | 8.37E-01 | 8.36E-01 | 2.08E-01 | - | - |
8 | 1.23E+00 | 1.21E+00 | 1.21E+00 | 2.72E-01 | - | - |
9 | 1.68E+00 | 1.71E+00 | 1.70E+00 | 3.35E-01 | - | - |
10 | 2.30E+00 | 2.29E+00 | 2.30E+00 | 4.29E-01 | - | - |
11 | 3.05E+00 | 3.05E+00 | 3.05E+00 | 5.31E-01 | - | - |
12 | 3.98E+00 | 3.97E+00 | 4.03E+00 | 6.83E-01 | - | - |
13 | 5.12E+00 | 5.24E+00 | 5.16E+00 | 8.89E-01 | - | - |
14 | 6.52E+00 | 6.57E+00 | 6.62E+00 | 1.08E+00 | - | - |
15 | 8.42E+00 | 8.47E+00 | 8.46E+00 | 1.37E+00 | - | - |
16 | 1.04E+01 | 1.05E+01 | 1.05E+01 | 1.61E+00 | - | - |
17 | 1.28E+01 | 1.29E+01 | 1.29E+01 | 2.05E+00 | - | - |
18 | 1.58E+01 | 1.58E+01 | 1.58E+01 | 2.41E+00 | - | - |
19 | 1.93E+01 | 1.92E+01 | 1.92E+01 | 4.31E+00 | - | - |
20 | 2.32E+01 | 2.31E+01 | 2.32E+01 | 5.04E+00 | - | - |
k | Local matrix problem | ||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 3.47E-02 | 3.88E-02 | 4.98E-02 |
2 | 4.04E-02 | 4.20E-02 | 5.07E-02 |
3 | 4.27E-02 | 4.78E-02 | 5.86E-02 |
4 | 4.93E-02 | 5.42E-02 | 6.88E-02 |
5 | 5.69E-02 | 6.34E-02 | 8.10E-02 |
6 | 1.15E-01 | 1.21E-01 | 9.54E-02 |
7 | 1.37E-01 | 1.45E-01 | 1.68E-01 |
8 | 1.58E-01 | 1.58E-01 | 1.85E-01 |
9 | 1.65E-01 | 1.82E-01 | 2.21E-01 |
10 | 2.06E-01 | 2.03E-01 | 2.54E-01 |
11 | 2.36E-01 | 2.34E-01 | 2.82E-01 |
12 | 2.74E-01 | 2.69E-01 | 3.40E-01 |
13 | 3.27E-01 | 3.70E-01 | 4.62E-01 |
14 | 3.95E-01 | 4.26E-01 | 5.03E-01 |
15 | 4.55E-01 | 4.87E-01 | 5.74E-01 |
16 | 5.54E-01 | 5.44E-01 | 6.88E-01 |
17 | 6.07E-01 | 6.41E-01 | 7.81E-01 |
18 | 7.19E-01 | 7.51E-01 | 9.29E-01 |
19 | 8.61E-01 | 9.04E-01 | 1.12E+00 |
20 | 1.02E+00 | 1.05E+00 | 1.31E+00 |
k | Local problem solution | Total solution | ||
Stab-1-HRT | Stab-2-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 22.65 | 10.90 | 19.40 | 8.93 |
2 | 28.84 | 23.40 | 25.32 | 18.63 |
3 | 24.35 | 20.03 | 22.72 | 17.46 |
4 | 23.04 | 19.06 | 21.16 | 16.55 |
5 | 20.34 | 17.23 | 19.21 | 15.53 |
6 | 17.94 | 23.99 | 17.15 | 22.64 |
7 | 16.20 | 14.47 | 15.58 | 13.59 |
8 | 16.85 | 15.67 | 16.41 | 15.01 |
9 | 12.77 | 11.44 | 12.40 | 10.88 |
10 | 14.87 | 12.83 | 14.53 | 12.38 |
11 | 13.85 | 12.71 | 13.58 | 12.32 |
12 | 13.95 | 10.49 | 13.70 | 10.20 |
13 | 11.15 | 11.01 | 10.97 | 10.74 |
14 | 12.21 | 10.64 | 12.01 | 10.42 |
15 | 12.31 | 11.56 | 12.16 | 11.36 |
16 | 12.50 | 11.24 | 12.36 | 11.04 |
17 | 12.40 | 11.64 | 12.24 | 11.47 |
18 | 12.20 | 11.08 | 12.07 | 10.94 |
19 | 17.59 | 16.47 | 17.40 | 16.25 |
20 | 17.15 | 16.01 | 16.98 | 15.82 |
Implementation | Vs(K) | Notes | Va(K) |
Usual-HRT | ∅ | Usual | [Pk(K)]d⊕x˜Pk(K) |
Stab-1-HRT | V(1)s(K) | New | [Pk(K)]d |
Stab-2-HRT | V(2)s(K) | New | [Pk−1(K)]d |
k | One-time operations | Local problem solutions | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 8.54E-03 | 4.66E-03 | 6.14E-03 | 1.07E-01 | 8.29E-02 | 9.56E-02 |
2 | 3.04E-03 | 2.11E-03 | 2.19E-03 | 1.65E-01 | 1.17E-01 | 1.26E-01 |
3 | 3.46E-03 | 8.79E-04 | 8.62E-04 | 2.36E-01 | 1.78E-01 | 1.89E-01 |
4 | 1.20E-03 | 1.20E-03 | 1.25E-03 | 3.59E-01 | 2.76E-01 | 2.90E-01 |
5 | 1.77E-03 | 1.70E-03 | 1.83E-03 | 5.31E-01 | 4.23E-01 | 4.40E-01 |
6 | 2.43E-03 | 2.52E-03 | 2.45E-03 | 8.82E-01 | 7.23E-01 | 6.70E-01 |
7 | 3.37E-03 | 3.36E-03 | 3.39E-03 | 1.25E+00 | 1.05E+00 | 1.07E+00 |
8 | 4.93E-03 | 5.01E-03 | 4.92E-03 | 1.74E+00 | 1.45E+00 | 1.47E+00 |
9 | 6.85E-03 | 6.85E-03 | 7.16E-03 | 2.28E+00 | 1.99E+00 | 2.02E+00 |
10 | 9.15E-03 | 9.17E-03 | 9.00E-03 | 3.07E+00 | 2.62E+00 | 2.68E+00 |
11 | 1.21E-02 | 1.26E-02 | 1.25E-02 | 3.98E+00 | 3.43E+00 | 3.47E+00 |
12 | 1.70E-02 | 1.72E-02 | 1.71E-02 | 5.13E+00 | 4.41E+00 | 4.59E+00 |
13 | 2.33E-02 | 2.35E-02 | 2.37E-02 | 6.56E+00 | 5.83E+00 | 5.84E+00 |
14 | 3.01E-02 | 2.99E-02 | 3.02E-02 | 8.27E+00 | 7.26E+00 | 7.39E+00 |
15 | 4.01E-02 | 3.99E-02 | 4.04E-02 | 1.06E+01 | 9.26E+00 | 9.34E+00 |
16 | 5.18E-02 | 5.12E-02 | 5.46E-02 | 1.30E+01 | 1.14E+01 | 1.16E+01 |
17 | 7.16E-02 | 7.28E-02 | 7.09E-02 | 1.60E+01 | 1.40E+01 | 1.41E+01 |
18 | 9.03E-02 | 8.97E-02 | 9.03E-02 | 1.95E+01 | 1.71E+01 | 1.73E+01 |
19 | 1.25E-01 | 1.25E-01 | 1.26E-01 | 2.51E+01 | 2.07E+01 | 2.09E+01 |
20 | 1.68E-01 | 1.63E-01 | 1.66E-01 | 2.99E+01 | 2.48E+01 | 2.51E+01 |
k | Global problem solution | Total solution | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 3.02E-02 | 3.00E-02 | 3.12E-02 | 1.46E-01 | 1.18E-01 | 1.33E-01 |
2 | 2.76E-02 | 2.66E-02 | 3.06E-02 | 1.96E-01 | 1.46E-01 | 1.59E-01 |
3 | 2.70E-02 | 2.65E-02 | 3.04E-02 | 2.66E-01 | 2.06E-01 | 2.20E-01 |
4 | 3.03E-02 | 3.04E-02 | 3.41E-02 | 3.90E-01 | 3.08E-01 | 3.26E-01 |
5 | 3.44E-02 | 3.35E-02 | 3.77E-02 | 5.67E-01 | 4.58E-01 | 4.79E-01 |
6 | 3.96E-02 | 3.92E-02 | 4.19E-02 | 9.24E-01 | 7.65E-01 | 7.14E-01 |
7 | 4.66E-02 | 4.65E-02 | 5.08E-02 | 1.30E+00 | 1.10E+00 | 1.13E+00 |
8 | 5.24E-02 | 5.07E-02 | 5.54E-02 | 1.80E+00 | 1.51E+00 | 1.53E+00 |
9 | 5.81E-02 | 5.84E-02 | 6.35E-02 | 2.35E+00 | 2.06E+00 | 2.09E+00 |
10 | 6.54E-02 | 6.52E-02 | 6.99E-02 | 3.15E+00 | 2.69E+00 | 2.76E+00 |
11 | 7.22E-02 | 7.10E-02 | 7.73E-02 | 4.06E+00 | 3.51E+00 | 3.56E+00 |
12 | 8.00E-02 | 7.92E-02 | 8.51E-02 | 5.22E+00 | 4.51E+00 | 4.69E+00 |
13 | 9.06E-02 | 8.95E-02 | 9.55E-02 | 6.68E+00 | 5.94E+00 | 5.96E+00 |
14 | 1.00E-01 | 1.01E-01 | 1.05E-01 | 8.40E+00 | 7.39E+00 | 7.53E+00 |
15 | 1.12E-01 | 1.10E-01 | 1.16E-01 | 1.07E+01 | 9.41E+00 | 9.50E+00 |
16 | 1.25E-01 | 1.23E-01 | 1.29E-01 | 1.32E+01 | 1.16E+01 | 1.17E+01 |
17 | 1.39E-01 | 1.37E-01 | 1.42E-01 | 1.62E+01 | 1.42E+01 | 1.43E+01 |
18 | 1.52E-01 | 1.50E-01 | 1.55E-01 | 1.97E+01 | 1.73E+01 | 1.75E+01 |
19 | 1.62E-01 | 1.60E-01 | 1.69E-01 | 2.54E+01 | 2.09E+01 | 2.12E+01 |
20 | 1.81E-01 | 1.78E-01 | 1.85E-01 | 3.03E+01 | 2.51E+01 | 2.55E+01 |
k | Additional RT basis | Div. matrix of additional RT basis | ||||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 2.50E-02 | 2.52E-02 | 2.59E-02 | 2.74E-02 | - | - |
2 | 5.57E-02 | 5.35E-02 | 5.35E-02 | 4.43E-02 | - | - |
3 | 1.05E-01 | 1.05E-01 | 1.04E-01 | 5.99E-02 | - | - |
4 | 1.88E-01 | 1.88E-01 | 1.88E-01 | 8.57E-02 | - | - |
5 | 3.16E-01 | 3.18E-01 | 3.17E-01 | 1.15E-01 | - | - |
6 | 5.49E-01 | 5.48E-01 | 5.23E-01 | 1.61E-01 | - | - |
7 | 8.37E-01 | 8.37E-01 | 8.36E-01 | 2.08E-01 | - | - |
8 | 1.23E+00 | 1.21E+00 | 1.21E+00 | 2.72E-01 | - | - |
9 | 1.68E+00 | 1.71E+00 | 1.70E+00 | 3.35E-01 | - | - |
10 | 2.30E+00 | 2.29E+00 | 2.30E+00 | 4.29E-01 | - | - |
11 | 3.05E+00 | 3.05E+00 | 3.05E+00 | 5.31E-01 | - | - |
12 | 3.98E+00 | 3.97E+00 | 4.03E+00 | 6.83E-01 | - | - |
13 | 5.12E+00 | 5.24E+00 | 5.16E+00 | 8.89E-01 | - | - |
14 | 6.52E+00 | 6.57E+00 | 6.62E+00 | 1.08E+00 | - | - |
15 | 8.42E+00 | 8.47E+00 | 8.46E+00 | 1.37E+00 | - | - |
16 | 1.04E+01 | 1.05E+01 | 1.05E+01 | 1.61E+00 | - | - |
17 | 1.28E+01 | 1.29E+01 | 1.29E+01 | 2.05E+00 | - | - |
18 | 1.58E+01 | 1.58E+01 | 1.58E+01 | 2.41E+00 | - | - |
19 | 1.93E+01 | 1.92E+01 | 1.92E+01 | 4.31E+00 | - | - |
20 | 2.32E+01 | 2.31E+01 | 2.32E+01 | 5.04E+00 | - | - |
k | Local matrix problem | ||
Usual-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 3.47E-02 | 3.88E-02 | 4.98E-02 |
2 | 4.04E-02 | 4.20E-02 | 5.07E-02 |
3 | 4.27E-02 | 4.78E-02 | 5.86E-02 |
4 | 4.93E-02 | 5.42E-02 | 6.88E-02 |
5 | 5.69E-02 | 6.34E-02 | 8.10E-02 |
6 | 1.15E-01 | 1.21E-01 | 9.54E-02 |
7 | 1.37E-01 | 1.45E-01 | 1.68E-01 |
8 | 1.58E-01 | 1.58E-01 | 1.85E-01 |
9 | 1.65E-01 | 1.82E-01 | 2.21E-01 |
10 | 2.06E-01 | 2.03E-01 | 2.54E-01 |
11 | 2.36E-01 | 2.34E-01 | 2.82E-01 |
12 | 2.74E-01 | 2.69E-01 | 3.40E-01 |
13 | 3.27E-01 | 3.70E-01 | 4.62E-01 |
14 | 3.95E-01 | 4.26E-01 | 5.03E-01 |
15 | 4.55E-01 | 4.87E-01 | 5.74E-01 |
16 | 5.54E-01 | 5.44E-01 | 6.88E-01 |
17 | 6.07E-01 | 6.41E-01 | 7.81E-01 |
18 | 7.19E-01 | 7.51E-01 | 9.29E-01 |
19 | 8.61E-01 | 9.04E-01 | 1.12E+00 |
20 | 1.02E+00 | 1.05E+00 | 1.31E+00 |
k | Local problem solution | Total solution | ||
Stab-1-HRT | Stab-2-HRT | Stab-1-HRT | Stab-2-HRT | |
1 | 22.65 | 10.90 | 19.40 | 8.93 |
2 | 28.84 | 23.40 | 25.32 | 18.63 |
3 | 24.35 | 20.03 | 22.72 | 17.46 |
4 | 23.04 | 19.06 | 21.16 | 16.55 |
5 | 20.34 | 17.23 | 19.21 | 15.53 |
6 | 17.94 | 23.99 | 17.15 | 22.64 |
7 | 16.20 | 14.47 | 15.58 | 13.59 |
8 | 16.85 | 15.67 | 16.41 | 15.01 |
9 | 12.77 | 11.44 | 12.40 | 10.88 |
10 | 14.87 | 12.83 | 14.53 | 12.38 |
11 | 13.85 | 12.71 | 13.58 | 12.32 |
12 | 13.95 | 10.49 | 13.70 | 10.20 |
13 | 11.15 | 11.01 | 10.97 | 10.74 |
14 | 12.21 | 10.64 | 12.01 | 10.42 |
15 | 12.31 | 11.56 | 12.16 | 11.36 |
16 | 12.50 | 11.24 | 12.36 | 11.04 |
17 | 12.40 | 11.64 | 12.24 | 11.47 |
18 | 12.20 | 11.08 | 12.07 | 10.94 |
19 | 17.59 | 16.47 | 17.40 | 16.25 |
20 | 17.15 | 16.01 | 16.98 | 15.82 |