1 Introduction

Discretization of the vector Laplacian in spaces \(\varvec{H}_{0}(\mathrm{curl\,})\) and \(\varvec{H}_{0}({\text {div}})\) by mixed finite element methods is well-studied in [1, 3]. The discretized linear algebraic system is ill-conditioned and in the saddle point form which leads to the slow convergence of classical iterative methods as the size of the system becomes large. In [1], a block diagonal preconditioner has been developed and shown to be an effective preconditioner. The purpose of this paper is to present alternative and effective block diagonal and approximate block factorization preconditioners for solving these saddle point systems.

Due to the similarity of the problems arising from spaces \(\varvec{H}_{0}(\mathrm{curl\,})\) and \(\varvec{H}_{0}({\text {div}})\), we use the mixed formulation of the vector Laplacian in \(\varvec{H}_{0}(\mathrm{curl\,})\) as an example to illustrate our approach. Choosing appropriate finite element spaces \(S_{h} \subset H_{0}^{1}\) (a vertex element space) and \( \varvec{U}_{h} \subset \varvec{H}_{0}(\mathrm{curl\,})\) (an edge element space), the mixed formulation is: Find \(\sigma _h \in S_{h}, \varvec{u}_h\in \varvec{U}_{h}\) such that

$$\begin{aligned} \left\{ \begin{array}{ll} -(\sigma _h, \tau _h) + (\varvec{u}_h, \mathrm{grad\,}\tau _h) = 0 &{}\quad \text { for all } \tau _h \in S_{h},\\ (\mathrm{grad\,}\sigma _h, \varvec{v}_h) + (\mathrm{curl\,}\varvec{u}_h, \mathrm{curl\,}\varvec{v}_h) =( \varvec{f}, \varvec{v}_{h}) &{}\quad \text { for all }\varvec{v}_h\in \varvec{U}_{h}. \end{array} \right. \end{aligned}$$

The corresponding matrix formulation is

$$\begin{aligned} \begin{pmatrix} -M_v &{} B\\ B^{\intercal } &{} C^{\intercal }M_fC \end{pmatrix} \begin{pmatrix} \sigma _h\\ \varvec{u}_h \end{pmatrix} = \begin{pmatrix} 0\\ \varvec{f} \end{pmatrix}. \end{aligned}$$
(1)

Here \(M_v\) and \(M_f\) are mass matrices of the vertex element and the face element, respectively, \(B^{\intercal }\) corresponds to a scaled \(\mathrm{grad\,}\) operator, and C corresponds to the \(\mathrm{curl\,}\) operator.

Based on the stability of (1) in \(H_0^1\times \varvec{H}_0(\mathrm{curl\,})\) norm, in [1], a block diagonal preconditioner in the form

$$\begin{aligned} \begin{pmatrix} ( M_v + G^{\intercal } M_e G)^{-1} &{} 0 \\ 0 &{} ( M_e + C^{\intercal }M_fC)^{-1} \end{pmatrix}, \end{aligned}$$

with \(G = M_e^{-1}B^{\intercal }\) and \(M_e\) the mass matrix of the edge element, is proposed and the preconditioned Krylov space method is shown to converge with optimal complexity. To compute the inverse operators in the diagonal, multigrid methods based on additive or multiplicative overlapping Schwarz smoothers  [2], multigrid methods based on Hiptimair smoothers [18, 19], or HX auxiliary space preconditioner [21] can be used. To achieve a mesh independent condition number, a special smoother taking care of the large kernel of the \(\mathrm{curl\,}\) (or \({\text {div}}\)) differential operators is needed, which requires more information of the corresponding mesh.

In contrast, we shall apply multigrid methods with the standard point-wise Gauss–Seidel (G–S) smoother to the Schur complement of the (1, 1) block

$$\begin{aligned} A = B^{\intercal }M^{-1}_vB + C^{\intercal }M_fC \end{aligned}$$
(2)

which is a matrix representation of the following identity of the vector Laplacian

$$\begin{aligned} - {\varDelta } \varvec{u} = -\mathrm{grad\,}{\text {div}}\varvec{u} + \mathrm{curl\,}\mathrm{curl\,}\varvec{u}. \end{aligned}$$

In (2), the inverse of the mass matrix, i.e., \(M^{-1}_v\) is dense. To be practical, the exact Schur complement can be replaced by an approximation

$$\begin{aligned} \tilde{A} = B^{\intercal }\tilde{M}^{-1}_vB + C^{\intercal }M_fC, \end{aligned}$$
(3)

with \(\tilde{M}_v\) an easy-to-invert matrix, e.g., the diagonal or a mass lumping of \(M_v\).

We shall prove that a variable V-cycle multigrid method using the standard point-wise Gauss–Seidel smoother is a good preconditioner for the Schur complement A or its approximation \(\tilde{A}\). The major benefit of our approach is that the point-wise Gauss–Seidel smoother is more algebraic and can be easily implemented as a black-box smoother without the geometric information. The block smoothers proposed in [2] for the \(\varvec{H}(\mathrm{curl\,})\) and \(\varvec{H}({\text {div}})\) problems, however, require more geometric information and solving local problems in small patches.

Although the finite element spaces are nested and A is symmetric positive definite, due to the inverse of the mass matrix, the bilinear forms on the coarse grid are non-inherited from the fine one. To overcome this difficulty, we shall follow the multigrid framework developed by Bramble et al. [4]. In this framework, we need only to verify two conditions: (1) Regularity and approximation assumption; (2) Smoothing property. Since A is symmetric and positive definite, the smoothing property of the Gauss–Seidel smoother is well known, see e.g. [5]. To prove the approximation property, we make use of the \(L^2\)-error estimates of mixed finite element methods established in [2] and thus have to assume the full regularity of elliptic equations. Numerically our method works well for the cases when the full regularity does not hold. With the approximation and smoothing properties, we show that one V-cycle with variable smoothing steps is an effective preconditioner. As noticed in [4], W-cycle with fixed smoothing steps or two V-cycles with fixed or variable smoothing steps may not be a valid preconditioner as the corresponding operator may not be positive definite. In other words, the proposed multigrid method for the Schur complement may not be used as an iterative method but one variable V-cycle can be used as an effective preconditioner.

The multigrid preconditioner for \(\tilde{A}\) will be used to build preconditioners for the saddle point system (1). We propose a block diagonal preconditioner and an approximate block factorization preconditioner:

$$\begin{aligned} \begin{pmatrix} M_v^{-1} &{} 0 \\ 0 &{} \tilde{A}^{-1} \end{pmatrix}, \quad \text {and } \begin{pmatrix} I &{} \tilde{M}_v^{-1} B \\ 0 &{} I \end{pmatrix} \begin{pmatrix} -\tilde{M}_v &{} 0 \\ B^{\intercal } &{} \tilde{A} \end{pmatrix} ^{-1}. \end{aligned}$$
(4)

The action \(M_{v}^{-1}\) can be further approximated by \(\tilde{M}_v^{-1}\) and \(\tilde{A}^{-1}\) by one V-cycle multigrid. Following the framework of [23], we prove that the preconditioned system using these two preconditioners has a uniformly bounded conditional number by establishing a new stability result of the saddle point system (1) in the \(\Vert \cdot \Vert \times \Vert \cdot \Vert _A\) norm.

As an application we further consider a prototype of Maxwell equations with divergence-free constraint

$$\begin{aligned} \mathrm{curl\,}\mathrm{curl\,}\varvec{u} = \varvec{f}, \; {\text {div}}\varvec{u} = 0, \; \text { in } {\varOmega }. \end{aligned}$$

A regularized system obtained by the augmented Lagrangian method [16] has the form

$$\begin{aligned} \begin{pmatrix} \tilde{A} &{} B^{\intercal }\\ B &{} 0 \end{pmatrix}, \end{aligned}$$
(5)

where \(\tilde{A}\) is the vector Laplacian defined in (3). We can factorize the system (5) as

$$\begin{aligned} \begin{pmatrix} \tilde{A} &{} B^{\intercal } \\ B &{} 0 \end{pmatrix} \begin{pmatrix} I &{} G \\ 0 &{} -\tilde{M}_v^{-1}A_p \end{pmatrix} = \begin{pmatrix} \tilde{A} &{} 0 \\ B &{} A_p \end{pmatrix}, \end{aligned}$$
(6)

where \(A_p = BG\) is a scalar Laplacian operator. We invert \(\tilde{A}\) and \(A_p\) by preconditioned conjugate gradient method with one V-cycle multigrid. Namely we can solve the Maxwell’s equation by inverting two Laplace operators and no need to solve the saddle point system. Our method is new and different with the solver proposed in [13, 14].

Our results can be easily generalized to the mixed discretization of the Hodge Laplacian in discrete differential forms [1, 3]. We keep the concrete form in \(\varvec{H}(\mathrm{curl\,})\) and \(\varvec{H}({\text {div}})\) conforming finite element spaces for the easy access of these results.

The paper is organized as follows. In Sect. 2, we introduce the discretization of the mixed formulation of the vector Laplacian, and prove stability results. In Sect. 3, we consider the multigrid methods for the discrete vector Laplacian and verify the approximation and smoothing properties. In Sect. 4, we propose the uniform preconditioner for the vector Laplacian and apply to Maxwell equation in the saddle point form. At last, we support our theoretical results with numerical experiments.

2 Discretization

In this section, we first recall the function spaces and finite element spaces, and then present discrete formulations of the vector Laplacian problems. We shall define a new norm using the Schur complement and present corresponding Poincaré inequalities and inverse inequalities.

We assume that \({\varOmega }\) is a bounded and convex polyhedron in \(\mathbb {R}^3\), and it is triangulated into a mesh \({\mathcal {T}}_h\) with size h. We assume that the mesh \({\mathcal {T}}_h\) belongs to a shape regular and quasi-uniform family.

2.1 Function Spaces and Finite Element Spaces

Denote by \(L^2({\varOmega })\) the space of all square integrable scalar or vector functions on \({\varOmega }\), \((\cdot ,\cdot )\) for both the scalar and vector \(L^2\)-inner product and \(\Vert \cdot \Vert \) for both the scalar and vector \(L^2\) norm. Given a differential operator \({\mathcal {D}} = \mathrm{grad\,}, \mathrm{curl\,},\) or \({\text {div}}\), introduce the Sobolev space \(H({\mathcal {D}},{\varOmega }) = \{v\in L^2({\varOmega }), {\mathcal {D}} v\in L^2({\varOmega })\}\). For \({\mathcal {D}}=\mathrm{grad\,}, H(\mathrm{grad\,},{\varOmega })\) is the standard \(H^1({\varOmega })\). For simplicity, we will suppress the domain \({\varOmega }\) in the notation. Let \(\varvec{n}\) be the unit outwards normal vector of \(\partial {\varOmega }\). We further introduce the following Sobolev spaces on domain \({\varOmega }\) with homogenous traces:

$$\begin{aligned} H_0^1= & {} \{ u \in H^1: u = 0 \hbox { on } {\partial {\varOmega }}\},\\ \varvec{H}_0(\mathrm{curl\,})= & {} \{\varvec{u} \in \varvec{H}(\mathrm{curl\,}): \varvec{u}\times \varvec{n} = 0 \hbox { on } {\partial {\varOmega }}\},\\ \varvec{H}_0({\text {div}})= & {} \{\varvec{u} \in \varvec{H}({\text {div}}): \varvec{u}\cdot \varvec{n} =0 \hbox { on } {\partial {\varOmega }}\},\\ \text { and } \quad L_0^2= & {} \left\{ u \in L^2: \int _{{\varOmega }} u \,\mathrm{d}x= 0\right\} .{\large } \end{aligned}$$

Then, recall the following finite element spaces:

  • \(S_h\subset H^1_0\) is the Lagrange elements, i.e., continuous and piecewise polynomials,

  • \(\varvec{U}_h\subset \varvec{H}_0(\mathrm{curl\,})\) is the edge element space [26, 27],

  • \(\varvec{V}_h\subset \varvec{H}_0({\text {div}})\) is the face element space [6,7,8, 26, 27, 29],

  • \(W_h\subset L^2_0\) is the discontinuous and piecewise polynomial space.

To discretize the vector Laplacian problem posed in \(\varvec{H}_{0}({\text {div}})\) or \(\varvec{H}_{0}(\mathrm{curl\,})\), we start from the following de Rham complex

$$\begin{aligned} 0{\longrightarrow }H^1_0 {\mathop {\longrightarrow }\limits ^{\mathrm{grad\,}}} \varvec{H}_0(\mathrm{curl\,}) {\mathop {\longrightarrow }\limits ^{\mathrm{curl\,}}} \varvec{H}_0({\text {div}}) {\mathop {\longrightarrow }\limits ^{{\text {div}}}} L^2_0{\longrightarrow }0. \end{aligned}$$
(7)

Choose appropriate degrees and types of finite element spaces such that the discrete de Rham complex holds

$$\begin{aligned} 0{\longrightarrow }S_h {\mathop {\longrightarrow }\limits ^{\mathrm{grad\,}}} \varvec{U}_h {\mathop {\longrightarrow }\limits ^{\mathrm{curl\,}}} \varvec{V}_h {\mathop {\longrightarrow }\limits ^{{\text {div}}}} W_h{\longrightarrow }0. \end{aligned}$$
(8)

An important example is: \(S_{h}\) is the linear Lagrange element; \(\varvec{U}_{h}\) is the lowest order Nedelec edge element; \(\varvec{V}_{h}\) is the lowest order Raviart-Thomas element, and \(W_{h}\) is piecewise constant. By our assumption on \({\varOmega }\), both (7) and (8) are exact, i.e., \(\ker (\mathrm{curl\,}) = \mathrm{img\,}(\mathrm{grad\,})\) and \(\ker ({\text {div}}) = \mathrm{img\,}(\mathrm{curl\,})\).

We now define weak differential operators and introduce the following exact sequence in the reversed ordering:

$$\begin{aligned} 0{\longleftarrow }S_h {\mathop {\longleftarrow }\limits ^{{\text {div}}_{h}}} \varvec{U}_h {\mathop {\longleftarrow }\limits ^{\mathrm{curl\,}_{h}}} \varvec{V}_h {\mathop {\longleftarrow }\limits ^{\mathrm{grad\,}_{h}}} W_h{\longleftarrow }0. \end{aligned}$$
(9)

The weak divergence \({\text {div}}_{h}: \varvec{U}_{h} \rightarrow S_h\) is defined as the adjoint of \(-\mathrm{grad\,}\) operator in the \(L^2\)-inner product, i.e., \({\text {div}}_{h}\varvec{w}_h \in S_h\), s.t.,

$$\begin{aligned} ({\text {div}}_{h} \varvec{w}_h, v_h) : = - (\varvec{w}_h, \mathrm{grad\,}v_h)\quad \text { for all } v_h\in S_h. \end{aligned}$$
(10)

Weak operator \(\mathrm{curl\,}_{h}\) and weak operator \(\mathrm{grad\,}_{h}\) are defined similarly. For a given \(\varvec{w}_{h} \in \varvec{V}_{h}\), define \(\mathrm{curl\,}_{h}\varvec{w}_{h}\in \varvec{U}_{h}\) as

$$\begin{aligned} (\mathrm{curl\,}_{h}\varvec{w}_h,\varvec{v}_h) : = (\varvec{w}_h, \mathrm{curl\,}\varvec{v}_h)\quad \text { for all }\varvec{v}_h\in \varvec{U}_h. \end{aligned}$$
(11)

For a given \(w_{h} \in \varvec{W}_{h}\), define \(\mathrm{grad\,}_{h}w_{h}\in \varvec{V}_{h}\) as

$$\begin{aligned} (\mathrm{grad\,}_{h} w_h, \varvec{v}_h) : = - ( w_h, {\text {div}}\varvec{v}_h)\quad \text { for all } \varvec{v}_h\in \varvec{V}_h. \end{aligned}$$
(12)

The exactness of (9) can be easily verified by the definition of weak differential operators and the exactness of (8). Note that the inverse of mass matrices will be involved when computing the weak differential operators and thus they are global operators.

We introduce the null space of differential operators:

$$\begin{aligned} Z_h^c = \varvec{U}_h \cap \ker (\mathrm{curl\,}), \quad \text { and } \, Z_h^d = \varvec{V}_h \cap \ker ({\text {div}}), \end{aligned}$$

and the null space of weak differential operators

$$\begin{aligned} K_h^c = \varvec{U}_h \cap \ker ({\text {div}}_h), \quad \text { and } \, K_h^d = \varvec{V}_h \cap \ker (\mathrm{curl\,}_h). \end{aligned}$$

Similar notation \(Z^c, Z^d\) will be used for the null spaces in the continuous level when the subscript h is skipped. The spaces \(K^c\) and \(K^d\) are defined as

$$\begin{aligned} K^c = \varvec{H}_0(\mathrm{curl\,}) \cap (Z^c)^\bot , \quad \text { and } \, K^d = \varvec{H}_0({\text {div}}) \cap (Z^d)^\bot . \end{aligned}$$

The superscript \(^c\) or \(^d\) indicates the ambient space \(H(\mathrm{curl\,})\) or \(H({\text {div}})\), respectively.

According to the exact sequence (8), we have the discrete Hodge decompositions [1]:

$$\begin{aligned} \varvec{U}_{h}&= Z_h^c \oplus ^{\bot } K_h^c = \mathrm{grad\,}S_{h} \oplus ^{\bot } \mathrm{curl\,}_{h} \varvec{V}_{h},\\ \varvec{V}_{h}&= Z_h^d \oplus ^{\bot } K_h^d = \mathrm{curl\,}\varvec{U}_{h} \oplus ^{\bot } \mathrm{grad\,}_{h} W_h. \end{aligned}$$

The notation \(\oplus ^{\bot }\) stands for the \(L^2\) orthogonal decomposition. These discrete version of Hodge decompositions play an important role in the analysis.

We update the exact sequences as:

$$\begin{aligned} 0 \mathrel {\mathop {\rightleftarrows }} S_h \mathrel {\mathop {\rightleftarrows }^{\mathrm{grad\,}}_{{\text {div}}_h}} Z_h^c \oplus ^{\bot } K_h^c \mathrel {\mathop {\rightleftarrows }^{\mathrm{curl\,}}_{\mathrm{curl\,}_h} } Z_h^d \oplus ^{\bot } K_h^d \mathrel {\mathop {\rightleftarrows }^{{\text {div}}}_{\mathrm{grad\,}_h}} W_h \mathrel {\mathop {\rightleftarrows }} 0. \end{aligned}$$
(13)

The space in the end of the arrow is the range of the operator and the space in the beginning is the real domain and these two are isomorphism through the differential operators.

2.2 Discrete Formulations of the Vector Laplacian

On continuous level, the mixed formulation of the vector Laplacian in space \(\varvec{H}_{0}(\mathrm{curl\,})\) is: Find \(\sigma \in H_{0}^{1}, \varvec{u}\in \varvec{H}_{0}(\mathrm{curl\,})\) such that

$$\begin{aligned} \left\{ \begin{array}{ll} -(\sigma , \tau ) + (\varvec{u}, \mathrm{grad\,}\tau ) = 0 &{}\quad \text { for all } \tau \in H_{0}^{1},\\ (\mathrm{grad\,}\sigma , \varvec{v}) + (\mathrm{curl\,}\varvec{u}, \mathrm{curl\,}\varvec{v}) = (\varvec{f}, \varvec{v}) &{}\quad \text { for all } \varvec{v}\in \varvec{H}_{0}(\mathrm{curl\,}). \end{array} \right. \end{aligned}$$
(14)

The problem (14) on the discrete level is: Find \(\sigma _h \in S_{h},\varvec{u}_h\in \varvec{U}_{h}\) such that

$$\begin{aligned} \left\{ \begin{array}{ll} -(\sigma _h, \tau _h) + (\varvec{u}_h, \mathrm{grad\,}\tau _h) = 0 &{}\quad \text { for all } \tau _h \in S_{h},\\ (\mathrm{grad\,}\sigma _h, \varvec{v}_h) + (\mathrm{curl\,}\varvec{u}_h, \mathrm{curl\,}\varvec{v}_h) =(\varvec{f}, \varvec{v}_{h}) &{}\quad \text { for all } \varvec{v}_h\in \varvec{U}_{h}. \end{array} \right. \end{aligned}$$
(15)

Note that the first equation of  (15) can be interpreted as \(\sigma _h = -{\text {div}}_{h}\varvec{u}_h\) and in the second equation of  (15) the term \((\mathrm{grad\,}\sigma _h,\varvec{v}_h) = - (\sigma _h, {\text {div}}_{h}\varvec{v}_h)\). After eliminating \(\sigma _h\) from the first equation, we can write the discrete vector Laplacian for edge elements as

$$\begin{aligned} -{\varDelta }_h^{c} \varvec{u}_h : = \mathrm{curl\,}_{h} \mathrm{curl\,}\varvec{u}_h - \mathrm{grad\,}{\text {div}}_{h} \varvec{u}_h, \end{aligned}$$
(16)

which is a discretization of the identity for smooth \(\varvec{u}\)

$$\begin{aligned} - {\varDelta } \varvec{u} = \mathrm{curl\,}\mathrm{curl\,}\varvec{u} - \mathrm{grad\,}{\text {div}}\varvec{u}. \end{aligned}$$

Choosing appropriate bases for the finite element spaces, we can represent the spaces \(S_{h}\) and \(\varvec{V}_{h}\) by \(\mathbb R^{\dim S_{h}}\) and \(\mathbb R^{\dim \varvec{V}_{h}}\) respectively. In the following, we shall use the same notation for the vector representation of a function if no ambiguity arises. Then we have the corresponding operator and matrix formulations as: \(\mathcal L_{h}^{c} : S_{h}\times \varvec{U}_{h} \rightarrow S_{h}'\times \varvec{U}_{h}'\)

$$\begin{aligned} \mathcal L_{h}^{c} \begin{pmatrix} \sigma _h\\ \varvec{u}_h \end{pmatrix} := \begin{pmatrix} -M_v &{} B\\ B^{\intercal } &{} C^{\intercal }M_fC \end{pmatrix} \begin{pmatrix} \sigma _h\\ \varvec{u}_h \end{pmatrix} = \begin{pmatrix} 0\\ \varvec{f} \end{pmatrix}. \end{aligned}$$
(17)

Here \(M_v, M_e\) and \(M_f\) are mass matrices of the vertex element, edge element and the face element, respectively, \(B^{\intercal } = M_e G\) corresponds to a scaling of the \(\mathrm{grad\,}\) operator G, and C to the \(\mathrm{curl\,}\) operator. We follow the convention of Stokes equations to reserve B for the (negative) divergence operator. Note that to form the corresponding matrices of weak derivative operators, the inverse of mass matrices will be involved. The Schur complement

$$\begin{aligned} A^{c} = B^{\intercal }M^{-1}_vB + C^{\intercal }M_fC \end{aligned}$$
(18)

is the matrix representation of discrete vector Laplacian  (16). The system (17) can be reduced to the Schur complement equation

$$\begin{aligned} A^{c}\varvec{u}_{h} = \varvec{f}. \end{aligned}$$
(19)

Similarly, the mixed formulation of the vector Laplacian in space \(\varvec{H}_{0}({\text {div}})\) is: Find \(\varvec{\sigma }\in \varvec{H}_{0}(\mathrm{curl\,}),\varvec{u}\in \varvec{H}_{0}({\text {div}})\) such that

$$\begin{aligned} \left\{ \begin{array}{ll} -(\varvec{\sigma },\varvec{\tau }) + (\varvec{u}, \mathrm{curl\,}\varvec{\tau }) = 0 &{}\quad \text { for all }\varvec{\tau }\in \varvec{H}_{0}(\mathrm{curl\,}),\\ (\mathrm{curl\,}\varvec{\sigma },\varvec{v}) + ({\text {div}}\varvec{u}, {\text {div}}\varvec{v}) = (\varvec{f},\varvec{v}) &{}\quad \text { for all } \varvec{v}\in \varvec{H}_{0}({\text {div}}). \end{array} \right. \end{aligned}$$
(20)

The corresponding discrete mixed formulation is: Find \(\varvec{\sigma }_{h} \in \varvec{U}_{h},\varvec{u}_{h}\in \varvec{V}_{h}\) such that

$$\begin{aligned} \left\{ \begin{array}{ll} -(\varvec{\sigma }_{h},\varvec{\tau }_{h}) + (\varvec{u}_{h}, \mathrm{curl\,}\varvec{\tau }_{h}) = 0 &{}\quad \text { for all }\varvec{\tau }_{h} \in \varvec{U}_{h},\\ (\mathrm{curl\,}\varvec{\sigma }_{h}, \varvec{v}_{h}) + ({\text {div}}\varvec{u}_{h}, {\text {div}}\varvec{v}_{h}) = (\varvec{f}, \varvec{v}_{h}) &{}\quad \text { for all } \varvec{v}_{h}\in \varvec{V}_{h}. \end{array} \right. \end{aligned}$$
(21)

Eliminating \(\varvec{\sigma }_{h}\) from the first equation of (21), we have the discrete vector Laplacian for face elements as

$$\begin{aligned} -{\varDelta }_h^{d} \varvec{u}_h : = \mathrm{curl\,}\mathrm{curl\,}_{h} \varvec{u}_h - \mathrm{grad\,}_{h} {\text {div}}\varvec{u}_h, \end{aligned}$$
(22)

and the operator and matrix formulations are: \(\mathcal L_{h}^{d} : \varvec{U}_{h}\times \varvec{V}_{h} \rightarrow \varvec{U}_{h}'\times \varvec{V}_{h}'\)

$$\begin{aligned} \mathcal L_{h}^{d} \begin{pmatrix} \varvec{\sigma }_h\\ \varvec{u}_h \end{pmatrix} := \begin{pmatrix} -M_e &{} C^{\intercal }\\ C &{} B^{\intercal }M_tB \end{pmatrix} \begin{pmatrix} \varvec{\sigma }_h\\ \varvec{u}_h \end{pmatrix} = \begin{pmatrix} 0\\ \varvec{f} \end{pmatrix}, \end{aligned}$$
(23)

where \(M_t\) denotes the mass matrix of the discontinuous element. The Schur complement \(A^{d} = CM_{e}^{-1}C^{\intercal } + B^{\intercal }M_t B\) is the matrix representation of discrete vector Laplacian  (22). Similarly, the reduced equation of (23) is

$$\begin{aligned} A^{d}\varvec{u}_{h}=\varvec{f}. \end{aligned}$$
(24)

We shall consider multigrid methods for solving (19) and (24) and use them to construct efficient preconditioners for the corresponding saddle point systems (17) and (23), respectively.

2.3 Discrete Poincaré Inequality and Inverse Inequality

In this subsection, we define the norms associated with the discrete vector Laplacian, and prove discrete Poincaré and inverse inequalities.

Definition 1

For \( \varvec{u}_{h} \in \varvec{U}_{h}\), define \(\Vert \varvec{u}_{h}\Vert _{A^{c}_{h}}^{2} =a^{c}_{h}(\varvec{u}_{h},\varvec{u}_{h})\), where the bilinear form \(a^{c}_{h}(\cdot , \cdot )\) is defined as

$$\begin{aligned} a^{c}_{h}( \varvec{u}_{h},\varvec{v}_{h}) := (\mathrm{curl\,}\varvec{u}_{h}, \mathrm{curl\,}\varvec{v}_{h})+({\text {div}}_{h}\varvec{u}_{h}, {\text {div}}_{h}\varvec{v}_{h}). \end{aligned}$$

Similarly, for \(\varvec{u}_{h} \in \varvec{V}_{h}\), define \(\Vert \varvec{u}_{h}\Vert _{A^{d}_{h}}^{2} =a^{d}_{h}(\varvec{u}_{h}, \varvec{u}_{h})\), where the bilinear form \(a^{d}_{h}(\cdot , \cdot )\) is defined as

$$\begin{aligned} a^{d}_{h}(\varvec{u}_{h}, \varvec{v}_{h}) := (\mathrm{curl\,}_{h} \varvec{u}_{h}, \mathrm{curl\,}_{h}\varvec{v}_{h})+({\text {div}}\varvec{u}_{h}, {\text {div}}\varvec{v}_{h}). \end{aligned}$$

Lemma 1

(Discrete Poincaré  Inequality) We have the following discrete Poincaré inequalities:

$$\begin{aligned} \Vert \varvec{u}_h\Vert \lesssim \Vert \varvec{u}_h\Vert _{A^{c}_h} \quad \hbox {for all} \,\varvec{u}_h \in \varvec{U}_h;\end{aligned}$$
(25)
$$\begin{aligned} \Vert \varvec{u}_h\Vert \lesssim \Vert \varvec{u}_h\Vert _{A^{d}_h} \quad \hbox {for all} \,\varvec{u}_h \in \varvec{V}_h. \end{aligned}$$
(26)

Proof

We prove the first inequality (25) and refer to [10] for a proof of (26). From the discrete Hodge decomposition, we have: for any \(\varvec{u}_h \in \varvec{U}_h\), there exist \(\rho \in S_{h}\) and \(\varvec{\phi }\in Z_h^d\) such that

$$\begin{aligned} \varvec{u}_h = \mathrm{grad\,}\rho + \mathrm{curl\,}_{h} \varvec{\phi }. \end{aligned}$$
(27)

Applying \(-{\text {div}}_{h}\) to (27), we have \(-{\text {div}}_{h}\varvec{u}_h = -{\text {div}}_{h} \mathrm{grad\,}\rho \), thus

$$\begin{aligned} \Vert \mathrm{grad\,}\rho \Vert ^{2} = (-{\text {div}}_{h}\varvec{u}_h, \rho ) \le \Vert {\text {div}}_{h} \varvec{u}_h\Vert \Vert \rho \Vert \lesssim \Vert {\text {div}}_{h}\varvec{u}_h\Vert \Vert \mathrm{grad\,}\rho \Vert , \end{aligned}$$

which leads to

$$\begin{aligned} \Vert \mathrm{grad\,}\rho \Vert \lesssim \Vert {\text {div}}_{h}\varvec{u}_h\Vert . \end{aligned}$$
(28)

To control the other part, we first prove a discrete Poincaré inequality in the form

$$\begin{aligned} \Vert \varvec{\phi }\Vert \lesssim \Vert \mathrm{curl\,}_{h}\varvec{\phi }\Vert \quad \text { for all }\phi \in Z_h^d. \end{aligned}$$
(29)

By the exactness of the complex (13), there exists \( \varvec{v} \in K_h^c\) such that \(\varvec{\phi }= \mathrm{curl\,}\varvec{v}\). We recall another Poincaré  inequality [20, 25]

$$\begin{aligned} \Vert \varvec{v}\Vert \lesssim \Vert \mathrm{curl\,}\varvec{v}\Vert \quad \hbox {for all} ~\varvec{v}\in K_h^c = \varvec{U}_h\cap \text {ker}(\mathrm{curl\,})^{\bot }. \end{aligned}$$

Then we have

$$\begin{aligned} \Vert \varvec{\phi }\Vert ^{2} = (\varvec{\phi }, \mathrm{curl\,}\varvec{v}) = ( \mathrm{curl\,}_{h}\varvec{\phi },\varvec{v}) \le \Vert \mathrm{curl\,}_{h}\varvec{\phi }\Vert \Vert \varvec{v}\Vert \lesssim \Vert \mathrm{curl\,}_{h} \varvec{\phi }\Vert \Vert \mathrm{curl\,}\varvec{v}\Vert = \Vert \mathrm{curl\,}_{h} \varvec{\phi }\Vert \Vert \varvec{\phi }\Vert . \end{aligned}$$

Canceling one \(\Vert \varvec{\phi }\Vert \), we obtain the desired inequality (29).

Applying \(\mathrm{curl\,}\) to the Hodge decomposition (27) and using the inequality (29), we have \(\mathrm{curl\,}\varvec{u}_h = \mathrm{curl\,}\mathrm{curl\,}_{h} \varvec{\phi }\), thus

$$\begin{aligned} \Vert \mathrm{curl\,}_{h} \varvec{\phi }\Vert ^{2} = (\mathrm{curl\,}\varvec{u}_h, \varvec{\phi }) \le \Vert \mathrm{curl\,}\varvec{u}_h\Vert \Vert \varvec{\phi }\Vert \lesssim \Vert \mathrm{curl\,}\varvec{u}_h\Vert \Vert \mathrm{curl\,}_{h} \varvec{\phi }\Vert , \end{aligned}$$

which leads to the inequality

$$\begin{aligned} \Vert \mathrm{curl\,}_{h} \varvec{\phi }\Vert \lesssim \Vert \mathrm{curl\,}\varvec{u}_h\Vert . \end{aligned}$$
(30)

Combine inequalities (28) and (30), we have proved that

$$\begin{aligned} \Vert \varvec{u}_h\Vert \le \Vert \mathrm{grad\,}\rho \Vert + \Vert \mathrm{curl\,}_{h} \varvec{\phi }\Vert \lesssim \Vert {\text {div}}_{h}\varvec{u}_h\Vert + \Vert \mathrm{curl\,}\varvec{u}_h\Vert \lesssim \Vert \varvec{u}_h\Vert _{A^{c}_{h}}. \end{aligned}$$

The proof is thus complete. \(\square \)

A generate version of discrete Poincaré inequality for differential forms can be found in [11, Theorem 5].

Lemma 2

(Inverse Inequality)

$$\begin{aligned} \Vert \varvec{u}_h\Vert _{A^{c}_h}\lesssim h^{-1}\Vert \varvec{u}_h\Vert , \qquad \varvec{u}_h \in \varvec{U}_h,\\ \Vert \varvec{u}_h\Vert _{A^{d}_h} \lesssim h^{-1}\Vert \varvec{u}_h\Vert , \qquad \varvec{u}_h \in \varvec{V}_h. \end{aligned}$$

Proof

It suffices to prove that

$$\begin{aligned} \Vert {\text {div}}_{h} \varvec{u}_h\Vert \lesssim h^{-1}\Vert \varvec{u}_h\Vert \quad \hbox {for all} ~\varvec{u}_h \in \varvec{U}_h,\end{aligned}$$
(31)
$$\begin{aligned} \Vert \mathrm{curl\,}_{h}\varvec{u}_h\Vert \lesssim h^{-1}\Vert \varvec{u}_h\Vert \quad \hbox {for all} ~\varvec{u}_h \in \varvec{V}_h. \end{aligned}$$
(32)

Since for conforming cases, the inverse inequalities

$$\begin{aligned} \Vert \mathrm{grad\,}\sigma _h\Vert \lesssim h^{-1}\Vert \sigma _h\Vert \quad \hbox {for all} ~\sigma _h \in S_h,\\ \Vert \mathrm{curl\,}\varvec{u}_h\Vert \lesssim h^{-1}\Vert \varvec{u}_h\Vert \quad \hbox {for all} ~\varvec{u}_h \in \varvec{U}_h. \end{aligned}$$

are well known.

For any \(\varvec{u}_{h} \in \varvec{U}_{h}\), let \(\sigma _{h} = -{\text {div}}_{h} \varvec{u}_{h}\), then

$$\begin{aligned} \Vert {\text {div}}_{h}\varvec{u}_{h}\Vert ^{2} = -({\text {div}}_{h}\varvec{u}_{h},\sigma _{h}) = (\varvec{u}_{h}, \mathrm{grad\,}\sigma _{h}) \lesssim h^{-1}\Vert \varvec{u}_{h}\Vert \Vert \sigma _{h}\Vert , \end{aligned}$$

which implies (31). The proof of (32) is analogous. \(\square \)

3 Multigrid Methods for Discrete Vector Laplacian

In this section, we describe a variable V-cycle multigrid algorithm to solve the Schur complement equations (19) and (24), and prove that it is a good preconditioner.

3.1 Problem Setting

Let us assume that nested tetrahedral partitions of \({\varOmega }\) are given as

$$\begin{aligned} {\mathcal {T}}_1 \subset \cdots \subset {\mathcal {T}}_J = {\mathcal {T}}_h, \end{aligned}$$

and the corresponding \(H_0^1\), \(\varvec{H}_0(\mathrm{curl\,})\) and \(\varvec{H}_0({\text {div}})\) finite element spaces are

$$\begin{aligned} S_1\subset \cdots \subset S_J = S_{h}, \quad \varvec{U}_1 \subset \cdots \subset \varvec{U}_J = \varvec{U}_{h}, \quad \text { and } \, \varvec{V}_1\subset \cdots \subset \varvec{V}_J = \varvec{V}_{h}. \end{aligned}$$

For a technical reason, we assume that the edge element space and the face element space contain the full linear polynomial which rules out only the lowest order case. When no ambiguity can arise, we replace subscripts h by the level index k for \(k=1,2,\ldots , J\).

The discretization (14) of the mixed formulation of the vector Laplacian in space \(\varvec{H}_{0}(\mathrm{curl\,})\) based on \({\mathcal {T}}_k\), for \(k=1,2,\ldots , J\), can be written as

$$\begin{aligned} \begin{pmatrix} -M_{v,k} &{} B_k \\ B_k^{\intercal } &{} C_k^{\intercal }M_{f,k}C_k \end{pmatrix} \begin{pmatrix} \sigma _k \\ \varvec{u}_k \end{pmatrix} = \begin{pmatrix} 0 \\ \varvec{f}_k \end{pmatrix}. \end{aligned}$$
(33)

Eliminating \(\sigma _k\) from (33), we get the reduced Schur complement equation

$$\begin{aligned} A_k^{c}\varvec{u}_k = (B_k^{\intercal }M_{v,k}^{-1}B_k + C_k^{\intercal } M_{f,k} C_k ) \varvec{u}_k = \varvec{f}_k. \end{aligned}$$
(34)

The discretization (20) of the mixed formulation of vector Laplacian in space \(\varvec{H}_{0}({\text {div}})\) on \({\mathcal {T}}_k\), for \(k=1,2,\ldots , J\), can be written as

$$\begin{aligned} \begin{pmatrix} -M_{e,k} &{} C_k^{\intercal } \\ C_k &{} B_k^{\intercal }M_{t,k}B_k \end{pmatrix} \begin{pmatrix}\varvec{\sigma }_k \\ \varvec{u}_k \end{pmatrix} = \begin{pmatrix} 0 \\ \varvec{f}_k \end{pmatrix}, \end{aligned}$$
(35)

and the reduced Schur complement equation is

$$\begin{aligned} A_k^{d}\varvec{u}_k = (B_k^{\intercal }M_{t,k}B_k + C_k M_{e,k}^{-1} C_k^{\intercal } )\varvec{u}_k = \varvec{f}_k. \end{aligned}$$
(36)

We are interested in preconditioning the Schur complement equations (34) and (36) in the finest level, i.e., \(k=J\).

Notice that, for \(k<J\), \(A_{k}^{c}\) and \(A_{k}^{d}\) are defined by the discretization of the vector Laplacian on the trianglulation \({\mathcal {T}}_{k}\), but not by the Galerkin projection of \(A_{J}^{c}\) or \(A_{J}^{d}\) since the inverse of a mass matrix is involved. In other words, \(A_{k}^{c}\) and \(A_{k}^{d}\) are non-inherited from \(A_{J}^{c}\) or \(A_{J}^{d}\) for \(k<J\).

When necessary, notation without the superscript c and d is used to unify the discussion. The notation \(\mathcal V_{k}\) is used to represent both \(\varvec{U}_{k}\) and \(\varvec{V}_{k}\) spaces.

3.2 A Variable V-cycle Multigrid Method

We introduce some operators first. Let \(R_{k}\) denote a smoothing operator on level k, which is assumed to be symmetric and convergent. Let \(I^{k}\) denote the prolongation operator from level \(k-1\) to level k, which is the natural inclusion since finite element spaces are nested. The transpose \(Q_{k-1} = (I^k)^{\intercal }\) represents the restriction from level k to level \(k-1\). The Galerkin projection \(P_{k-1}\), which is from level k to level \(k-1\), is defined as: for any given \(\varvec{u}_{k} \in \mathcal V_{k}, P_{k-1}\varvec{u}_k\in \mathcal V_{k-1}\) satisfies

$$\begin{aligned} a_{k-1}(P_{k-1} \varvec{u}_k, \varvec{v}_{k-1}) = a_k( \varvec{u}_k, I^k \varvec{v}_{k-1}) = a_{k}( \varvec{u}_k,\varvec{v}_{k-1})\quad \text {for all}~\varvec{v}_{k-1} \in \mathcal V_{k-1}. \end{aligned}$$

The variable V-cycle multigrid algorithm is as following.

Algorithm 1. Multigrid Algorithm: \(\varvec{u}_{k}^{MG} = MG_{k}(\varvec{f}_{k}; \varvec{u}_{k}^{0}, m_{k})\)

Set \(MG_{1} = A_1^{-1}\).

For \(k\ge 2\), assume that \(MG_{k-1}\) has been defined. Define \(MG_{k}(\varvec{f}_{k}; \varvec{u}_{k}^{0}, m_{k})\) as follows:

- Pre-smoothing: Define \(\varvec{u}_{k}^{l}\) for \(l=1, 2, \ldots , m_{k}\) by

\( \varvec{u}_k^l = \varvec{u}_k^{l-1} + R_k( \varvec{f}_k - A_k \varvec{u}_k^{l-1}).\)

- Coarse-grid correction: Define \(\varvec{u}_k^{m_{k}+1} = \varvec{u}_k^{m_{k}} + I^{k}\varvec{e}_{k-1}\), where

\( \varvec{e}_{k-1} = MG_{k-1}(Q_{k-1}(\varvec{f}_k - A_k \varvec{u}_k^{m_{k}}); 0, m_{k-1}).\)

- Post-smoothing: Define \(\varvec{u}_{k}^{l}\) for \(l=m_{k}+ 2, \ldots , 2m_{k}+1\) by

\( \varvec{u}_k^l = \varvec{u}_k^{l-1} + R_k(\varvec{f}_k - A_k \varvec{u}_k^{l-1}).\)

Define \(\varvec{u}_{k}^{MG} = \varvec{u}_{k}^{2m_{k}+1}\).

In this algorithm, \(m_{k}\) is a positive integer which may vary from level to level, and determines the number of smoothing iterations on the k-th level, see [4, 5].

3.3 Multigrid Analysis Framework

We employ the multigrid analysis framework developed in [4]. Denoted by \(\lambda _{k}\) the largest eigenvalue of \(A_{k}\). For the multigrid algorithm to be a good preconditioner to \(A_k\), we need to verify the following assumptions:

  1. (A.1)

    “Regularity and approximation assumption”: For some \(0<\alpha \le 1\),

    $$\begin{aligned} \left| a_k((I-P_{k-1})\varvec{u}_k, \varvec{u}_k)\right| \le C_A\left( \frac{\Vert A_k\varvec{u}_k\Vert ^2}{\lambda _k}\right) ^{\alpha }a_k( \varvec{u}_k, \varvec{u}_k)^{1-\alpha }\qquad \text {for all }\varvec{u}_k\in \mathcal V_k, \end{aligned}$$

    holds with constant \(C_{A}\) independent of k;

  2. (A.2)

    “Smoothing property”:

    $$\begin{aligned} \frac{\Vert \varvec{u}_k\Vert ^2}{\lambda _k}\le C_R (R_k \varvec{u}_k, \varvec{u}_k)\qquad \text {for all } \varvec{u}_k\in \mathcal V_k, \end{aligned}$$

    holds with constant \(C_{R}\) independent of k.

Following the standard arguments, we can show that the largest eigenvalue of \(A_k, \lambda _k\), satisfies \(\lambda _k \eqsim h_k^{-2}\) for \(k=1,2,\ldots , J\).

The symmetric Gauss–Seidel (SGS) or a properly weighted Jacobi iteration both satisfy the smoothing property (A.2), a proof of which can be found in [5].

3.4 Regularity Results

In this subsection, we are going to develop an \(H^2\) regularity result of Maxwell’s equation based on a regularity assumption on the intersection space \(\varvec{H}_0({\text {div}}; {\varOmega })\cap \varvec{H}(\mathrm{curl\,}; {\varOmega })\). We first present a classical \(H^1\)-regularity result. Recall that, we assume that \({\varOmega }\) is a bounded and convex polyhedron throughout of this paper.

Lemma 3

(Theorems 3.7 and 3.9 in [17]) The space \(\varvec{H}({\text {div}}; {\varOmega })\cap \varvec{H}_0(\mathrm{curl\,}; {\varOmega })\) and \(\varvec{H}_0({\text {div}}; {\varOmega })\cap \varvec{H}(\mathrm{curl\,}; {\varOmega })\) are continuously imbedded into \(\varvec{H}^1({\varOmega })\) and

$$\begin{aligned} \Vert \varvec{\phi }\Vert _1 \lesssim \Vert \mathrm{curl\,}\varvec{\phi }\Vert + \Vert {\text {div}}\varvec{\phi }\Vert \end{aligned}$$

for all functions \(\varvec{\phi }\in \varvec{H}({\text {div}}; {\varOmega })\cap \varvec{H}_0(\mathrm{curl\,}; {\varOmega })\) or \(\varvec{H}_0({\text {div}}; {\varOmega })\cap \varvec{H}(\mathrm{curl\,}; {\varOmega })\).

To prove the \(H^2\) regularity of Maxwell’s equation, we requires the following regularity assumption.

Assumption 1

Assume that \({\varOmega }\) in \(\mathbb R^3\) is a bounded and convex polyhedron domain. For any function \(\varvec{\xi }\in \varvec{M}_0 =\{\varvec{v} \in \varvec{H}_0({\text {div}}; {\varOmega })\cap \varvec{H}(\mathrm{curl\,}; {\varOmega });\ \mathrm{curl\,}\varvec{v}\in \varvec{H}^1({\varOmega }),\ {\text {div}}\varvec{v} = 0\}\), there holds \(\varvec{\xi }\in \varvec{H}^2({\varOmega })\) and

$$\begin{aligned} \Vert \varvec{\xi }\Vert _2 \lesssim \Vert \mathrm{curl\,}\varvec{\xi }\Vert _1. \end{aligned}$$
(37)

It should be pointed out that such result holds on \({\mathcal {C}}^{2,1}\) domains, see [16, Corollary 3.7], but we are not able to adapt to convex polyhedrons. We are in the position to present the following \(H^2\) regularity of Maxwell’s equation.

Lemma 4

For any \(\varvec{\psi }\in K^c\), define \(\varvec{\zeta }\in K^c\) to be the solution of

$$\begin{aligned} (\mathrm{curl\,}\varvec{\zeta },\mathrm{curl\,}\varvec{\theta }) = (\varvec{\psi },\varvec{\theta })\quad \text {for all }\varvec{\theta }\in K^c. \end{aligned}$$
(38)

Then \(\mathrm{curl\,}\varvec{\zeta }\in \varvec{H}^2({\varOmega })\) and

$$\begin{aligned} \Vert \mathrm{curl\,}\varvec{\zeta }\Vert _1&\lesssim \Vert \varvec{\psi }\Vert , \end{aligned}$$
(39)
$$\begin{aligned} \Vert \mathrm{curl\,}\varvec{\zeta }\Vert _2&\lesssim \Vert \mathrm{curl\,}\varvec{\psi }\Vert . \end{aligned}$$
(40)

Proof

The problem (38) is well-posed due to the following Poincaré inequality (see Corollary 4.4 in [20] or Corollary 3.51 in [25])

$$\begin{aligned} \Vert \varvec{\theta }\Vert \lesssim \Vert \mathrm{curl\,}\varvec{\theta }\Vert \qquad \text {for all }\varvec{\theta }\in K^c. \end{aligned}$$

Then \(\mathrm{curl\,}\varvec{\zeta }\in \varvec{H}_0({\text {div}}; {\varOmega })\) with \({\text {div}}\mathrm{curl\,}\varvec{\zeta }= 0\). Taking \(\varvec{\theta }\in (K^c)^\bot \), by the exactness of the sequence, \(\varvec{\theta }\in Z^c\) and \(\mathrm{curl\,}\varvec{\theta }= 0\). Thus (38) implies

$$\begin{aligned} (\mathrm{curl\,}\varvec{\zeta },\mathrm{curl\,}\varvec{\theta }) = (\varvec{\psi },\varvec{\theta })\qquad \text {for all }\varvec{\theta }\in \varvec{H}_0(\mathrm{curl\,}). \end{aligned}$$

And therefore,

$$\begin{aligned} \mathrm{curl\,}\mathrm{curl\,}\varvec{\zeta }= \varvec{\psi }\qquad \text {holds in } L^2. \end{aligned}$$

The desired \(H^1\) regularity (39) of \(\mathrm{curl\,}\varvec{\zeta }\) then follows from Lemma 3.

As \(\varvec{\psi }\in K^c\), we have

$$\begin{aligned} \mathrm{curl\,}\mathrm{curl\,}\mathrm{curl\,}\varvec{\zeta }= \mathrm{curl\,}\varvec{\psi }\; \text {in }L^2, \text { and }{\text {div}}\mathrm{curl\,}\mathrm{curl\,}\varvec{\zeta }= 0. \end{aligned}$$

Again applying Lemma 3 to \(\mathrm{curl\,}\mathrm{curl\,}\varvec{\zeta }\in \varvec{H}_0(\mathrm{curl\,}) \cap \varvec{H}({\text {div}})\), it holds

$$\begin{aligned} \Vert \mathrm{curl\,}\mathrm{curl\,}\varvec{\zeta }\Vert _1 \lesssim \Vert \mathrm{curl\,}\varvec{\psi }\Vert . \end{aligned}$$

The desired result (40) is then obtained by Assumption 1. \(\square \)

3.5 Error Estimate of Several Projection Operators

We define several projection operators to the null space \(K_h^{{\mathcal {D}}}\). Given \(u\in H({\mathcal {D}})\), define \(P_h^{{\mathcal {D}}} u \in K_h^{{\mathcal {D}}}\) such that

$$\begin{aligned} ({\mathcal {D}} P_h^{{\mathcal {D}}} u, {\mathcal {D}} v_h) = ({\mathcal {D}} u, {\mathcal {D}} v_h), \quad \text {for all }v_h \in K_h^{{\mathcal {D}}}. \end{aligned}$$
(41)

Equation (41) determines \(P_h^{{\mathcal {D}}} u\) uniquely since \(({\mathcal {D}} \cdot , {\mathcal {D}} \cdot )\) is an inner product on the subspace \(K_h^{{\mathcal {D}}}\) which can be proved using the Poincaré inequality (Lemma 1). For \({\mathcal {D}} = \mathrm{grad\,}\), we understand \(K_h^{\mathrm{grad\,}}\) as \(S_h\).

Lemma 5

(Theorem 2.4 in Monk [24]) Suppose that \(\varvec{u} \in \varvec{H}^{k+1}\) and let \(\varvec{u}_h = P_h^c \varvec{u}\) to \(\varvec{U}_h\) which contains polynomial of degree less than or equal to k. Then we have the error estimate

$$\begin{aligned} \Vert \mathrm{curl\,}(\varvec{u} - \varvec{u}_h)\Vert \lesssim h^r\Vert \mathrm{curl\,}\varvec{u}\Vert _{r},\qquad \text {for } 1 \le r \le k. \end{aligned}$$

We are also interested in the estimate of projections between two consecutive finite element spaces. Following the convention of multigrid community, for any \(2< k\le J\), let \({\mathcal {T}}_H = {\mathcal {T}}_{k-1}\) and \({\mathcal {T}}_h = {\mathcal {T}}_k\). Notice that the ratio \(H/h \le C\).

The following error estimates are obtained in [2].

Lemma 6

Given \(\varvec{u}_h\in K_h^c\), let \(\varvec{u}_H = P_H^c\varvec{u}_h\). Then

$$\begin{aligned} \Vert \varvec{u}_h - \varvec{u}_H\Vert&\lesssim H\Vert \mathrm{curl\,}\varvec{u}_h\Vert ,\\ \Vert \mathrm{curl\,}(\varvec{u}_h - \varvec{u}_H)\Vert&\lesssim H\Vert \mathrm{curl\,}_h\mathrm{curl\,}\varvec{u}_h\Vert . \end{aligned}$$

Lemma 7

Give \(\varvec{v}_h\in K_h^d\), let \(\varvec{v}_H = P_H^d\varvec{v}_h\). Then

$$\begin{aligned} \Vert \varvec{v}_h - \varvec{v}_H\Vert&\lesssim H\Vert {\text {div}}\varvec{v}_h\Vert ,\\ \Vert {\text {div}}(\varvec{v}_h - \varvec{v}_H)\Vert&\lesssim H\Vert \mathrm{grad\,}_h{\text {div}}\varvec{v}_h\Vert . \end{aligned}$$

We now introduce \(L^2\) projections to \(K^c\) and \(K^c_h\). Let \(Q_{K}^c: \varvec{L}^2 \rightarrow K^c\) be the \(L^2\)-projection to \(K^c\). Notice that for \(\varvec{u}\in \varvec{L}^2, \displaystyle Q_K^c \varvec{u} = \varvec{u} - \nabla p\) where \(p\in H_0^1\) is determined by the Poisson equation \(\displaystyle (\nabla p, \nabla q) = (\varvec{u}, \nabla q)\) for all \(q\in H_0^1\). Therefore \(\mathrm{curl\,}Q_K^c \varvec{u} = \mathrm{curl\,}\varvec{u}\). Similarly we define \(Q_h^c: \varvec{L}^2 \rightarrow K_h^c\) as \(Q_h^c \varvec{u} = \varvec{u} - \nabla p\) where \(p\in S_h\) is determined by the Poisson equation \((\nabla p, \nabla q) = (\varvec{u}, \nabla q)\) for all \(q\in S_h\). We have the following error estimate, c.f. [2, 31].

Lemma 8

For \(\varvec{u}_h \in K_h^c\), we have

$$\begin{aligned} \Vert Q_K^c \varvec{u}_h - \varvec{u}_h \Vert \lesssim h\Vert \mathrm{curl\,}\varvec{u}_h\Vert . \end{aligned}$$
(42)

For \(\varvec{u}_H \in K_H^c\), we have

$$\begin{aligned} \Vert Q_h^c \varvec{u}_H - \varvec{u}_H \Vert \lesssim H\Vert \mathrm{curl\,}\varvec{u}_H\Vert . \end{aligned}$$
(43)

In the estimate (42)–(43), we lift a function in a coarse space to a fine space while in Lemma 6, we estimate the projection from a fine space to a coarse space. The \(L^2\)-projection \(Q_h^c: K_H^c \rightarrow K_h^c\) can be thought of as a prolongation between non-nested spaces \(K_H^c\) and \(K_h^c\).

3.6 Approximation Property of Edge Element Spaces

Let \(\varvec{u}_h\in \varvec{U}_{h}\) be the solution of equation

$$\begin{aligned} a_h^{c}(\varvec{u}_h,\varvec{v}_h) = (\varvec{f}_h, \varvec{v}_h)\qquad \text {for all }\varvec{v}_h\in \varvec{U}_{h}, \end{aligned}$$
(44)

and \(\varvec{u}_H\in \varvec{U}_{H}\subset \varvec{U}_{h}\) be the solution of equation

$$\begin{aligned} a_H^{c}(\varvec{u}_H,\varvec{v}_H) = (\varvec{f}_h,\varvec{v}_H)\qquad \text {for all }\varvec{v}_H\in \varvec{U}_{H}. \end{aligned}$$
(45)

Recall the Hodge decomposition

$$\begin{aligned} \varvec{u}_h&= \mathrm{grad\,}\phi _h \oplus ^{\bot } \varvec{u}_{0,h}, \quad \text { with unique }\phi _h\in S_{h},\ \varvec{u}_{0,h}\in K_{h}^c,\end{aligned}$$
(46)
$$\begin{aligned} \varvec{f}_h&= \mathrm{grad\,}g_h \oplus ^{\bot } \mathrm{curl\,}_h \varvec{q}_h, \quad \text { with unique } g_h\in S_{h}, \ \varvec{q}_h\in Z_h^d. \end{aligned}$$
(47)

We use the Hodge decomposition to decompose \(\varvec{u}_H = \mathrm{grad\,}\phi _H \bigoplus ^\bot \tilde{\varvec{u}}_{0,H}\) first, and then define \(\varvec{u}_{0,H} = P_H^c \varvec{u}_{0,h}\) and \(\varvec{e}_H = \tilde{\varvec{u}}_{0,H} - \varvec{u}_{0,H}\) to get

$$\begin{aligned} \varvec{u}_H = \mathrm{grad\,}\phi _H \oplus ^{\bot } (\varvec{u}_{0,H} + \varvec{e}_H), \quad \text { with unique }\phi _H\in S_{H},\ \varvec{u}_{0,H}\text { and }\varvec{e}_H\in K_H^c. \end{aligned}$$
(48)

Then by Lemma 6, we immediately get the following estimate.

Lemma 9

Let \(\varvec{u}_{0,h} \) and \(\varvec{u}_{0,H}\) be defined as in equations (46) and (48). It holds

$$\begin{aligned} \Vert \varvec{u}_{0,h} - \varvec{u}_{0,H}\Vert \lesssim H\Vert \varvec{u}_h\Vert _{A_h^c}. \end{aligned}$$

Now we turn to the estimate of \(\varvec{e}_H\) being given in equation (48).

Lemma 10

Let \(\varvec{e}_H\in K_H^c\) be defined as in equation (48). It holds

$$\begin{aligned} \Vert \varvec{e}_H\Vert _{A_h^c} \lesssim H \Vert A_h^c \varvec{u}_h\Vert . \end{aligned}$$

Proof

By equations (44) and (45), we have

$$\begin{aligned} (\mathrm{curl\,}\varvec{u}_{0,h}, \mathrm{curl\,}\varvec{v}_{h})&= (\varvec{q}_h,\mathrm{curl\,}\varvec{v}_{h}), \quad \text {for all }\varvec{v}_{h}\in K_h^c,\\ (\mathrm{curl\,}(\varvec{u}_{0,H} + \varvec{e}_H),\mathrm{curl\,}\varvec{v}_H)&= (\mathrm{grad\,}g_h, \varvec{v}_H) + (\varvec{q}_h, \mathrm{curl\,}\varvec{v}_H), \quad \text {for all }\varvec{v}_{H}\in K_H^c, \end{aligned}$$

where \(g_h\) and \(\varvec{q}_h\) are defined in equation (47). Then

$$\begin{aligned} (\mathrm{curl\,}\varvec{e}_H,\mathrm{curl\,}\varvec{v}_H) = (\mathrm{grad\,}g_h,\varvec{v}_H)\qquad \text {for all }\varvec{v}_H \in K_H^c. \end{aligned}$$
(49)

Let \(\varvec{e}_h = Q_h^c\varvec{e}_H\), then \({\text {div}}_h\varvec{e}_h = 0\) and by Lemma 8, we have

$$\begin{aligned} \Vert \varvec{e}_h - \varvec{e}_H\Vert \lesssim H\Vert \mathrm{curl\,}\varvec{e}_H\Vert . \end{aligned}$$

Thus it holds

$$\begin{aligned} (\mathrm{curl\,}\varvec{e}_H,\mathrm{curl\,}\varvec{e}_H) = (\mathrm{grad\,}g_h,\varvec{e}_H) = (\mathrm{grad\,}g_h,\varvec{e}_H - \varvec{e}_h) \lesssim H \Vert \mathrm{grad\,}g_h\Vert \Vert \mathrm{curl\,}\varvec{e}_H\Vert , \end{aligned}$$

which implies

$$\begin{aligned} \Vert \mathrm{curl\,}\varvec{e}_H\Vert \lesssim H\Vert \mathrm{grad\,}g_h\Vert \le H\Vert \varvec{f}_h\Vert = H\Vert A_h^c\varvec{u}_h\Vert . \end{aligned}$$

Using the fact that \({\text {div}}_h\varvec{e}_h = 0\), the inverse inequality and the above inequality, we immediately get

$$\begin{aligned} \Vert {\text {div}}_h\varvec{e}_H\Vert = \Vert {\text {div}}_h(\varvec{e}_H - \varvec{e}_h)\Vert \lesssim h^{-1} \Vert \varvec{e}_h - \varvec{e}_H\Vert \lesssim \frac{H}{h} \Vert \mathrm{curl\,}\varvec{e}_H\Vert \lesssim H \Vert A_h^c\varvec{u}_h\Vert . \end{aligned}$$

The desired result then follows. \(\square \)

We now explore the relation between \(\phi _h, \phi _H\), and \(g_h\) defined in equations (46)–(47).

Lemma 11

Let \(\phi _h\in S_h\) and \(\phi _H\in S_H\) be defined as in equations (46) and (48). It holds

$$\begin{aligned} \Vert \mathrm{grad\,}\phi _h - \mathrm{grad\,}\phi _H\Vert \lesssim H \Vert \varvec{u}_h\Vert _{A_h^c}. \end{aligned}$$

Proof

For equation (44), test with \(\varvec{v}_{h} \in \mathrm{grad\,}S_{h}\) to get

$$\begin{aligned} ({\text {div}}_{h} \mathrm{grad\,}\phi _{h}, {\text {div}}_{h}\varvec{v}_{h}) = (\mathrm{grad\,}g_{h},\varvec{v}_{h}) = -(g_{h}, {\text {div}}_{h}\varvec{v}_{h}), \end{aligned}$$

which implies \(-{\text {div}}_{h} \mathrm{grad\,}\phi _{h}=-{\text {div}}_{h} \varvec{u}_{h} = g_{h}\), i.e.,

$$\begin{aligned} -{\varDelta } _{h} \phi _{h} = g_{h}. \end{aligned}$$
(50)

From equation (50), we can see that \(\phi _h\) is the Galerkin projection of \(\phi \) to \(S_h\), where \(\phi \in H_0^1({\varOmega })\) satisfies the Poisson equation:

$$\begin{aligned} -{\varDelta } \phi = g_h. \end{aligned}$$

Therefore by the standard error estimate of finite element methods, we have

$$\begin{aligned} \Vert \nabla \phi - \nabla \phi _h\Vert \lesssim H\Vert g_h\Vert . \end{aligned}$$

For equation (45), choose \(\varvec{v}_{H} = \mathrm{grad\,}\psi _H \in \mathrm{grad\,}S_{H}\), we have

$$\begin{aligned} ({\text {div}}_{H} \mathrm{grad\,}\phi _{H}, {\text {div}}_{H}\varvec{v}_{H}) = (\mathrm{grad\,}g_{h}, \mathrm{grad\,}\psi _H) = (\mathrm{grad\,}P_{H}^{g}g_{h}, \mathrm{grad\,}\psi _H), \end{aligned}$$

which implies \(-{\text {div}}_{H} \mathrm{grad\,}\phi _{H} = P_{H}^{g}g_{h}\), i.e.,

$$\begin{aligned} -{\varDelta } _{H} \phi _{H} = P_{H}^{g}g_{h}. \end{aligned}$$
(51)

From equation (51), we can see that \(\phi _H\) is the Galerkin projection of \(\tilde{\phi }\) to \(S_H\), where \(\tilde{\phi }\in H_0^1({\varOmega })\) satisfies the Poisson equation:

$$\begin{aligned} -{\varDelta } \tilde{\phi }= P_{H}^{g}g_h. \end{aligned}$$

The \(H^1\)-projection \(P_H^g\) is not stable in \(L^2\)-norm. Applied to functions in \(S_h\), however, we can recover the stability as follows

$$\begin{aligned} \Vert (I- P_H^g)g_h\Vert \lesssim H\Vert \mathrm{grad\,}(I- P_H^g)g_h\Vert \lesssim H\Vert \mathrm{grad\,}g_h\Vert \lesssim H/h \Vert g_h\Vert \lesssim \Vert g_h\Vert . \end{aligned}$$

In the last step, we have used the fact that the ratio of the mesh size between consecutive levels is bounded, i.e., \(H/h\le C\).

We then have

$$\begin{aligned} \Vert \mathrm{grad\,}(\tilde{\phi }- \phi _H)\Vert \lesssim H\Vert P_{H}^{g}g_h\Vert \le H\Vert g_h\Vert + H\Vert (I- P_H^g)g_h\Vert \lesssim H\Vert g_h\Vert . \end{aligned}$$

And by the triangle inequality and the stability of the projection operator \(P_H^{g}\)

$$\begin{aligned} \Vert \mathrm{grad\,}(\phi _h - \phi _{H})\Vert&\le \Vert \mathrm{grad\,}(\phi _h - \phi )\Vert +\Vert \mathrm{grad\,}(\phi _H - \tilde{\phi })\Vert + \Vert \mathrm{grad\,}(\phi -\tilde{\phi })\Vert \\&\lesssim H\Vert g_h\Vert +\Vert g_{h}-P_{H}^{g}g_{h}\Vert _{-1}. \end{aligned}$$

Using the error estimate of negative norms and the inverse inequality, we have

$$\begin{aligned} \Vert g_{h}-P_{H}^{g}g_{h}\Vert _{-1}&\lesssim H^{2}\Vert g_{h}\Vert _{1} \lesssim H\Vert g_{h}\Vert . \end{aligned}$$

Here we use \(H^{-1}\) norm estimate for \(S_{H}\) having degree greater than or equal to 2. Noticing that \(g_h = {\text {div}}_h \varvec{u}_h\), we thus get

$$\begin{aligned} \Vert \mathrm{grad\,}(\phi _{h}-\phi _{H})\Vert \lesssim H\Vert {\text {div}}_{h}\varvec{u}_{h}\Vert \lesssim H\Vert \varvec{u}_h\Vert _{A_h^c}. \end{aligned}$$
(52)

\(\square \)

As a summary of the above results, we have the following approximation result.

Theorem 2

Condition (A.1) holds with \(\alpha = \frac{1}{2}\), i.e. for any \(\varvec{u}_k\in \varvec{U}_k\), there hold

$$\begin{aligned} a_k^c((I-P_{k-1}) \varvec{u}_k,\varvec{u}_k) \lesssim \left( \frac{\Vert A_k^c\varvec{u}_k\Vert ^2}{\lambda _k}\right) ^{\frac{1}{2}} a_k^c( \varvec{u}_k,\varvec{u}_k)^{\frac{1}{2}}. \end{aligned}$$
(53)

Proof

We use h to denote level k and H for level \(k-1\). Let \(\varvec{u}_h\), \(\varvec{u}_H\), and \(\varvec{f}_h\) be defined in equations (44)–(45) which have Hodge decompositions (46), (47), and (48), respectively. The definitions of \(\varvec{u}_h\) and \(\varvec{u}_H\) (44)–(45) imply that

$$\begin{aligned} a_H^c(\varvec{u}_H,\varvec{v}_H) = (\varvec{f}_h,\varvec{v}_H) = a_h^c(\varvec{u}_h,\varvec{v}_H)\qquad \text {for all }\varvec{v}_H \in \varvec{V}_H, \end{aligned}$$

which means \(\varvec{u}_H = P_H\varvec{u}_h\) by the definition of the projection \(P_H\). Let \(\delta _1 =\varvec{u}_{0,h} - \varvec{u}_{0,H}\), \(\delta _2 = \mathrm{grad\,}\phi _h - \mathrm{grad\,}\phi _H\), by Lemmas 9, 10 and 11, it holds

$$\begin{aligned} a_h^c((I - P_H)\varvec{u}_h, \varvec{u}_h)&= a_h^c(\delta _1,\varvec{u}_h) + a_h^c(\delta _2,\varvec{u}_h) - a_h^c(\varvec{e}_H,\varvec{u}_h) \\&\le \Vert \delta _1\Vert \Vert A_h^c \varvec{u}_h\Vert + \Vert \delta _2\Vert \Vert A_h^c \varvec{u}_h\Vert + \Vert \varvec{e}_H\Vert _{A_h^c}\Vert \varvec{u}_h\Vert _{A_h^c} \\&\lesssim H\Vert \varvec{u}_h\Vert _{A_h^c} \Vert A_h^c\varvec{u}_h\Vert . \end{aligned}$$

\(\square \)

3.7 Approximation Property of Face Element Spaces

Let \(\varvec{u}_h\in \varvec{V}_{h}\) be the solution of equation

$$\begin{aligned} a_h^{d}(\varvec{u}_h,\varvec{v}_h) = (\varvec{f}_h,\varvec{v}_h)\qquad \text {for all } \varvec{v}_h\in \varvec{V}_{h}, \end{aligned}$$
(54)

and \(\varvec{u}_H\in \varvec{V}_{H}\subset \varvec{V}_{h}\) be the solution of equation

$$\begin{aligned} a_H^{d}(\varvec{u}_H,\varvec{v}_H) = (\varvec{f}_h,\varvec{v}_H)\qquad \text {for all } \varvec{v}_H\in \varvec{V}_{H}. \end{aligned}$$
(55)

We can easily see that \(\varvec{f}_h = A_h^d\varvec{u}_h\).

By the Hodge decomposition, we have

$$\begin{aligned} \varvec{u}_h&= \mathrm{curl\,}\varvec{\phi }_h \oplus \varvec{u}_{0,h}, \quad \text { with unique }\varvec{\phi }_h\in K_h^c,\ \varvec{u}_{0,h}\in K_h^d,\end{aligned}$$
(56)
$$\begin{aligned} \varvec{f}_h&= \mathrm{curl\,}\varvec{g}_h \oplus \mathrm{grad\,}_h q_h \quad \text { with unique } \varvec{g}_h\in K_h^c, \ q_h\in W_{h}, \end{aligned}$$
(57)

We use the Hodge decomposition to decompose \(\varvec{u}_H = \mathrm{curl\,}\varvec{\phi }_H \bigoplus ^\bot \tilde{\varvec{u}}_{0,H}\) first, and then define \(\varvec{u}_{0,H} = P_H^d \varvec{u}_{0,h}\) and \(\varvec{e}_H = \tilde{\varvec{u}}_{0,H} - \varvec{u}_{0,H}\) to get

$$\begin{aligned} \varvec{u}_H = \mathrm{curl\,}\varvec{\phi }_H \oplus (\varvec{u}_{0,H} + \varvec{e}_H) \quad \text { with unique } \varvec{\phi }_H\in K_H^c,\ \varvec{u}_{0,H},\varvec{e}_H\in K_H^d. \end{aligned}$$
(58)

By Lemma 7, we immediately have the following result.

Lemma 12

Let \(\varvec{u}_{0,h}\in \mathrm{grad\,}_h W_h\) and \(\varvec{u}_{0,H}\in \mathrm{grad\,}_H W_H\) be defined as in equations (56) and (58). It holds

$$\begin{aligned} \Vert \varvec{u}_{0,h} - \varvec{u}_{0,H}\Vert \lesssim H \Vert {\text {div}}\varvec{u}_{0,h}\Vert . \end{aligned}$$

The estimate of \(\varvec{e}_H\in K_H^d\) defined in equation (58) can be proved analogously to Lemma 10 and thus will be skipped.

Lemma 13

Assume that \(\varvec{e}_H \in \mathrm{grad\,}_H W_H\) be defined as in equation (58). Then it holds

$$\begin{aligned} \Vert \varvec{e}_H\Vert _{A_h^d} \lesssim H \Vert A_h^d \varvec{u}_h\Vert . \end{aligned}$$

The relation between \(\varvec{\phi }_h,\ \varvec{\phi }_H\) and \(\varvec{g}_h\) defined in equations (56)–(58) is more involved.

Lemma 14

Assume that \(\varvec{\psi }_h\in K_h^c\). Let \(\varvec{\zeta }_h\in K_h^c\) be the solution of equation

$$\begin{aligned} (\mathrm{curl\,}\varvec{\zeta }_h,\mathrm{curl\,}\varvec{\tau }_h) = (\varvec{\psi }_h,\varvec{\tau }_h)\qquad \text {for all }\varvec{\tau }_h \in K_h^c, \end{aligned}$$

and let \(\varvec{\zeta }\in K^c\) be the solution of equation

$$\begin{aligned} (\mathrm{curl\,}\varvec{\zeta },\mathrm{curl\,}\varvec{\tau }) = (Q_{ K}^c\varvec{\psi }_h,\varvec{\tau }) \qquad \text {for all }\varvec{\tau }\in K^c. \end{aligned}$$

Then, it holds

$$\begin{aligned} \Vert \mathrm{curl\,}(\varvec{\zeta }- \varvec{\zeta }_h)\Vert \lesssim h \Vert \varvec{\psi }_h\Vert . \end{aligned}$$

Proof

Let \(\tilde{\varvec{\zeta }} _h = P_h^c \varvec{\zeta }\). By Lemma 5, we have

$$\begin{aligned} \Vert \mathrm{curl\,}(\varvec{\zeta }- \tilde{\varvec{\zeta }}_h)\Vert \lesssim h\Vert \mathrm{curl\,}\varvec{\zeta }\Vert _1 \lesssim h\Vert Q_{ K}^c\varvec{\psi }_h\Vert \lesssim h\Vert \varvec{\psi }_h\Vert . \end{aligned}$$

Notice that \(\varvec{\zeta }_h\ne \tilde{\varvec{\zeta }}_h\). Indeed by the definition of \(\tilde{\varvec{\zeta }}_h\), we have

$$\begin{aligned} (\mathrm{curl\,}\tilde{\varvec{\zeta }}_h,\mathrm{curl\,}\varvec{\tau }_h) = (\mathrm{curl\,}\varvec{\zeta },\mathrm{curl\,}\varvec{\tau }_h)\qquad \text {for all } \varvec{\tau }_h \in K_h^c. \end{aligned}$$

The fact that \(Z_h^c \subset Z^c\) and \(\varvec{U}_h \subset \varvec{H}_0(\mathrm{curl\,})\) implies that \(K_h^c\) has some part in \(Z^c\) and some part in \(K^c\), therefore, it holds

$$\begin{aligned} (\mathrm{curl\,}\varvec{\zeta },\mathrm{curl\,}\varvec{\tau }_h) = (Q_K^c\varvec{\psi }_h,\varvec{\tau }_h)\qquad \text {for all } \varvec{\tau }_h \in K_h^c, \end{aligned}$$

together with the definition of \(\varvec{\zeta }_h\), we have

$$\begin{aligned} (\mathrm{curl\,}(\varvec{\zeta }_h - \tilde{\varvec{\zeta }}_h),\mathrm{curl\,}\varvec{\tau }_h) = (\varvec{\psi }_h - Q_{ K}^c\varvec{\psi }_h,\varvec{\tau }_h)\qquad \text {for all }\varvec{\tau }_h \in K_h^c. \end{aligned}$$

Thus, with \(\delta _h = \varvec{\zeta }_h - \tilde{\varvec{\zeta }}_h\), we have

$$\begin{aligned} \Vert \mathrm{curl\,}(\varvec{\zeta }_h - \tilde{\varvec{\zeta }}_h)\Vert ^2&= (\mathrm{curl\,}(\varvec{\zeta }_h - \tilde{\varvec{\zeta }}_h), \mathrm{curl\,}\delta _h) = (\varvec{\psi }_h - Q_{ K}^c\varvec{\psi }_h,\delta _h)\\&= (\varvec{\psi }_h - Q_{ K}^c\varvec{\psi }_h, \delta _h - Q_{ K}^c\delta _h) \lesssim h\Vert \varvec{\psi }_h\Vert \Vert \mathrm{curl\,}\delta _h\Vert . \end{aligned}$$

The desired result follows by canceling one \(\Vert \mathrm{curl\,}\delta _h\Vert \) and the triangle inequality. \(\square \)

We are in the position to estimate \(\varvec{\phi }_h\) and \(\varvec{\phi }_H\).

Lemma 15

Let \(\varvec{\phi }_h\in \varvec{U}_h\) and \(\varvec{\phi }_H\in \varvec{U}_H\) be defined as in equations (56) and (58). It holds

$$\begin{aligned} \Vert \mathrm{curl\,}\varvec{\phi }_h - \mathrm{curl\,}\varvec{\phi }_H\Vert \lesssim H \Vert \varvec{u}_h\Vert _{A_h^d}. \end{aligned}$$

Proof

Choose the test function \(\varvec{v}_h = \mathrm{curl\,}\varvec{w}_h\) with \(\varvec{w}_h \in \varvec{U}_h\) in equation (54) to simplify the left hand side of (54) as

$$\begin{aligned} (\mathrm{curl\,}_h\varvec{u}_h,\mathrm{curl\,}_h\mathrm{curl\,}\varvec{w}_h) = (\mathrm{curl\,}_h\mathrm{curl\,}\phi _h,\mathrm{curl\,}_h\mathrm{curl\,}\varvec{w}_h) = (\mathrm{curl\,}\phi _h,\mathrm{curl\,}\mathrm{curl\,}_h\mathrm{curl\,}\varvec{w}_h), \end{aligned}$$

and the right hand side becomes

$$\begin{aligned}(\varvec{f}_h,\mathrm{curl\,}\varvec{w}_h) = (\mathrm{curl\,}\varvec{g}_h,\mathrm{curl\,}w_h) = (\varvec{g}_h,\mathrm{curl\,}_h\mathrm{curl\,}\varvec{w}_h) \end{aligned}$$

Denoted by \(\varvec{\tau }_h = \mathrm{curl\,}_h\mathrm{curl\,}\varvec{w}_h\in K_h^c\). We get

$$\begin{aligned} (\mathrm{curl\,}\varvec{\phi }_h,\mathrm{curl\,}\varvec{\tau }_h) = (\varvec{g}_h,\varvec{\tau }_h) \qquad \text {for all }\varvec{\tau }_h\in K_h^c. \end{aligned}$$

Let \(\varvec{\phi }\in K^c\) satisfy the Maxwell equation:

$$\begin{aligned} (\mathrm{curl\,}\varvec{\phi }, \mathrm{curl\,}\varvec{\tau })= (Q_{ K}^c\varvec{g}_h, \varvec{\tau }) \quad \text {for all }\varvec{\tau }\in K^c. \end{aligned}$$

By Lemma 14, we have

$$\begin{aligned} \Vert \mathrm{curl\,}(\varvec{\phi }- \varvec{\phi }_h) \Vert \lesssim h\Vert \varvec{g}_h\Vert . \end{aligned}$$

When moving to the coarse space, the left hand side of equation (55) can be still simplified to \((\mathrm{curl\,}\varvec{\phi }_H,\mathrm{curl\,}\tau _H)\). But the right hand side becomes

$$\begin{aligned} (\varvec{f}_h,\mathrm{curl\,}\varvec{w}_H) = (\mathrm{curl\,}\varvec{g}_h,\mathrm{curl\,}w_H) \ne (\varvec{g}_h, \mathrm{curl\,}_H\mathrm{curl\,}w_H). \end{aligned}$$

Project \(\varvec{g}_h\) to the coarse space and arrives at the equation

$$\begin{aligned} (\mathrm{curl\,}\varvec{\phi }_H,\mathrm{curl\,}\varvec{\theta }_H) = (P_H^c\varvec{g}_h,\varvec{\theta }_H) \qquad \text {for all }\varvec{\theta }_H\in K_H^c. \end{aligned}$$

Let \(\tilde{\varvec{\phi }}\in K^c\) satisfy the Maxwell equation:

$$\begin{aligned} (\mathrm{curl\,}\tilde{\varvec{\phi }}, \mathrm{curl\,}\varvec{\tau })= (Q_{ K}^cP_H^c\varvec{g}_h, \varvec{\tau }) \quad \text {for all }\varvec{\tau }\in K^c. \end{aligned}$$

By Lemma 14, it holds

$$\begin{aligned} \Vert \mathrm{curl\,}(\tilde{\varvec{\phi }} - \varvec{\phi }_H) \Vert \lesssim H\Vert Q_{ K}^cP_H^c\varvec{g}_h\Vert \le H\Vert P_H^c\varvec{g}_h\Vert \lesssim H\Vert \varvec{g}_h\Vert . \end{aligned}$$

By the triangle inequality, it remains to estimate \(\Vert \mathrm{curl\,}(\varvec{\phi }- \tilde{\varvec{\phi }})\Vert \). We first write out the error equation for \(\varvec{\phi }- \tilde{\varvec{\phi }}\)

$$\begin{aligned} (\mathrm{curl\,}(\varvec{\phi }- \tilde{\varvec{\phi }}),\mathrm{curl\,}\varvec{\psi }) = (Q_K^c(\varvec{g}_h - P_H^c\varvec{g}_h),\varvec{\psi }), \quad \text { for all } \varvec{\psi }\in K^c. \end{aligned}$$

We then apply the standard duality argument. Let \(\varvec{\zeta }\in K^c\) satisfies

$$\begin{aligned} (\mathrm{curl\,}\varvec{\zeta },\mathrm{curl\,}\varvec{\tau }) = (\varvec{\psi },\varvec{\tau }) \quad \text {for all }\varvec{\tau }\in K^c \end{aligned}$$

Then

$$\begin{aligned} (Q_K^c(\varvec{g}_h - P_H^c\varvec{g}_h),\varvec{\psi })&= (\mathrm{curl\,}\varvec{\zeta }, \mathrm{curl\,}Q_K^c(\varvec{g}_h - P_H^c\varvec{g}_h)) \\&= (\mathrm{curl\,}\varvec{\zeta }, \mathrm{curl\,}(\varvec{g}_h - P_H^c\varvec{g}_h))\\&= (\mathrm{curl\,}(\varvec{\zeta }- P_H^c\varvec{\zeta }), \mathrm{curl\,}(\varvec{g}_h - P_H^c\varvec{g}_h)) \\&\lesssim H^2\Vert \mathrm{curl\,}\varvec{\zeta }\Vert _2 \Vert \mathrm{curl\,}\varvec{g}_h\Vert \\&\lesssim H\Vert \mathrm{curl\,}\varvec{\psi }\Vert \Vert \varvec{g}_h\Vert , \end{aligned}$$

where in the last step we have used the \(H^2\)-regularity of Maxwell’s equation, c.f. Lemma 4. Then chose \(\varvec{\psi }= \varvec{\phi }- \tilde{\varvec{\phi }}\) and cancel one \(\Vert \mathrm{curl\,}(\varvec{\phi }- \tilde{\varvec{\phi }})\Vert \) to get

$$\begin{aligned} \Vert \mathrm{curl\,}(\varvec{\phi }- \tilde{\varvec{\phi }})\Vert \lesssim H\Vert \varvec{g}_h\Vert . \end{aligned}$$

The estimate of \(\Vert \mathrm{curl\,}\varvec{\phi }_h - \mathrm{curl\,}\varvec{\phi }_H\Vert \) follows from the triangle inequality. \(\square \)

As a summary of the above results, we have the following theorem.

Theorem 3

Condition (A.1) holds with \(\alpha = \frac{1}{2}\), i.e. for any \(\varvec{u}_k\in \varvec{V}_k\), there hold

$$\begin{aligned} a_k^d((I-P_{k-1}) \varvec{u}_k,\varvec{u}_k) \lesssim \left( \frac{\Vert A_k^d\varvec{u}_k\Vert ^2}{\lambda _k}\right) ^{\frac{1}{2}} a_k^d( \varvec{u}_k,\varvec{u}_k)^{\frac{1}{2}}. \end{aligned}$$
(59)

3.8 Results

According to the framework in [4], we conclude that the variable V-cycle multigrid algorithm is a good preconditioner for the Schur complement equations (19) and (24). We summarize the result in the following theorem.

Theorem 4

Let \(V_k\) denote the operator of one variable V-cycle of \(MG_k\) in Algorithm 1. Assume the smoothing steps \(m_k\) satisfy

$$\begin{aligned} \beta _0 m_k \le m_{k-1} \le \beta _1 m_k. \end{aligned}$$

Here we assume that \(\beta _0\) and \(\beta _1\) are constants which are greater than one and independent of k. Then the condition number of \(V_JA_J\) is \(\mathcal O(1)\).

Remark 1

As noticed in [4], W-cycle with fixed number smoothing steps or one V-cycles with fixed number smoothing steps may not be a valid preconditioner as the corresponding operator may not be positive definite. In other words, the proposed multigrid method for the Schur complement may not be a convergent iterative method but one variable V-cycle can be used as an effective preconditioner. \(\square \)

4 Uniform Preconditioners

In this section, we will show that the multigrid solver for the Schur complement equations can be used to build efficient preconditioners for the mixed formulations of vector Laplacian (17) and (23). We also apply the multigrid preconditioner of the vector Laplacian to the Maxwell equation discretized as a saddle point system. We prove that the preconditioned systems have condition numbers independent of mesh parameter h.

4.1 A Stability Result

Follow the framework in [23], to develop a good preconditioner, it suffices to prove the boundedness of operators \({\mathcal {L}}_{h}^{c}\) and \({\mathcal {L}}_{h}^{d}\) and their inverse in appropriate norms. In the sequel, to unify the notation, we use M for the mass matrix and A the vector Laplacian. When necessary, we use superscript \(^c\) or \(^d\) in A to distinguish the \(\varvec{H}(\mathrm{curl\,})\) and \(\varvec{H}({\text {div}})\) case and use subscript \(_v, _e, _f\) in M to indicate different mass matrices associated to vertex, edge, and face, respectively. The inverse of the mass matrix can be thought of as the matrix representation of the Riesz representation induced by the \(L^2\)-inner product and the inverse of A is the Riesz representation in the A-inner product. Riesz representation of \(L^2\times A\)-inner product will give an effective preconditioner. We clarify the norm notation using M and A as follows:

  • \(\Vert \cdot \Vert _{M}\):    \(\Vert \sigma _{h}\Vert _{M}^{2} = \langle M \sigma _{h}, \sigma _{h}\rangle \);

  • \(\Vert \cdot \Vert _{A}\):    \(\Vert u_{h}\Vert _{A}^{2} = \langle A u_{h}, u_{h}\rangle \);

  • \(\Vert \cdot \Vert _{M^{-1}}\): \(\Vert g_{h}\Vert _{M^{-1}}^{2} = \langle M^{-1}g_{h}, g_{h}\rangle \);

  • \(\Vert \cdot \Vert _{A^{-1}}\): \(\Vert f_{h}\Vert _{A^{-1}}^{2} = \langle A^{-1} f_{h}, f_{h}\rangle \).

Here, A and M are matrices, \(\sigma _h,\ u_h,\ g_h,\ f_h\) are vectors and \(\langle \cdot ,\cdot \rangle \) denote the \(l^2\) inner product.

In most places, we prove only \(\varvec{H}_0(\mathrm{curl\,})\) case as the proof of \(\varvec{H}_0({\text {div}})\) is simply a change of notation. Again the result and the proof can be unified using the language of discrete differential forms [1, 3]. We keep the concrete form for the easy access of these results.

The following lemma gives a bound of the Schur complement \(BA^{-1}B^{\intercal }\) similar to the corresponding result of the Stokes equation.

Lemma 16

We have the inequality

$$\begin{aligned} \langle B(A^{c})^{-1} B^{\intercal } \phi _{h}, \phi _{h}\rangle \le \langle M_{v}\phi _{h}, \phi _{h}\rangle \quad \text {for all } \phi _{h} \in S_{h}. \end{aligned}$$
(60)

Proof

Let \(\varvec{v}_{h} = (A^{c})^{-1} B^{\intercal } \phi _{h}\). Then

$$\begin{aligned} \langle B(A^{c})^{-1} B^{\intercal } \phi _{h}, \phi _{h} \rangle =\langle (A^{c})^{-1} B^{\intercal } \phi _{h}, B^{\intercal }\phi _{h}\rangle = \langle A^{c} \varvec{v}_{h}, \varvec{v}_{h}\rangle = \Vert \varvec{v}_{h}\Vert _{A}^{2}. \end{aligned}$$

Now we identify \(\varvec{v}_{h}\in \varvec{V}_{h}'\) by the Riesz map in the A-inner product, and have

$$\begin{aligned} \Vert \varvec{v}_{h}\Vert _{A}&= \sup _{\varvec{u}_{h}\in \varvec{V}_{h}}\dfrac{\langle \varvec{v}_{h},\varvec{u}_{h}\rangle _{A}}{\Vert \varvec{u}_{h}\Vert _{A}} = \sup _{\varvec{u}_{h}\in \varvec{V}_{h}}\dfrac{\langle B^{\intercal } \phi _{h},\varvec{u}_{h}\rangle }{\Vert \varvec{u}_{h}\Vert _{A}} = \sup _{\varvec{u}_{h}\in \varvec{V}_{h}}\dfrac{\langle \phi _{h},B\varvec{u}_{h}\rangle }{\Vert \varvec{u}_{h}\Vert _{A}} \\&\le \sup _{\varvec{u}_{h}\in \varvec{V}_{h}}\dfrac{\Vert \phi _{h}\Vert _M\Vert B\varvec{u}_{h}\Vert _{M^{-1}}}{\Vert \varvec{u}_{h}\Vert _{A}} \le \Vert \phi _{h}\Vert _M. \end{aligned}$$

In the last step, we have used identity (18) which implies \(\Vert B\varvec{u}_{h}\Vert _{M^{-1}}\le \Vert \varvec{u}_{h}\Vert _{A}\). The desired result (60) then follows easily. \(\square \)

We present a stability result of the mixed formulation of the vector Laplacian which is different with that established in [1].

Theorem 5

The operators \({\mathcal {L}}_{h}^{c}, {\mathcal {L}}_{h}^{d}\) and there inverse are both bounded operators:

$$\begin{aligned} \Vert {\mathcal {L}}_{h}^{c}\Vert _{\mathrm{L}( S_{h}\times \varvec{U}_{h}, S_{h}'\times \varvec{U}_{h}')}, \Vert {\mathcal {L}}_{h}^{d}\Vert _{\mathrm{L}( \varvec{U}_{h}\times \varvec{V}_{h}, \varvec{U}_{h}'\times \varvec{V}_{h}')}, \end{aligned}$$

are bounded and independent of h from \((\Vert \cdot \Vert _{M^{-1}}, \Vert \cdot \Vert _{A^{-1}}) \rightarrow (\Vert \cdot \Vert _{M}, \Vert \cdot \Vert _{A}),\) and

$$\begin{aligned} \Vert ({\mathcal {L}}_{h}^{c})^{-1}\Vert _{\mathrm{L}( S_{h}'\times \varvec{U}_{h}', S_{h}\times \varvec{U}_{h})}, \Vert ({\mathcal {L}}_{h}^{d})^{-1}\Vert _{\mathrm{L}( \varvec{U}_{h}'\times \varvec{V}_{h}', \varvec{U}_{h}\times \varvec{V}_{h})} \end{aligned}$$

are bounded and independent of h from \((\Vert \cdot \Vert _{M}, \Vert \cdot \Vert _{A}) \rightarrow (\Vert \cdot \Vert _{M^{-1}}, \Vert \cdot \Vert _{A^{-1}})\).

Proof

Let \((\sigma _{h}, \varvec{u}_{h}) \in S_{h}\times \varvec{U}_{h}\) and \((g_{h}, \varvec{f}_{h}) \in S_{h}'\times \varvec{U}_{h}'\) be given by the relation with

$$\begin{aligned} {\mathcal {L}}_{h}^{c} \begin{pmatrix} \sigma _h\\ \varvec{u}_h \end{pmatrix} = \begin{pmatrix} -M_v &{} B\\ B^{\intercal } &{} C^{\intercal }M_fC \end{pmatrix} \begin{pmatrix} \sigma _h\\ \varvec{u}_h \end{pmatrix} = \begin{pmatrix} g_{h}\\ \varvec{f}_{h} \end{pmatrix}. \end{aligned}$$
(61)

To prove \(\Vert {\mathcal {L}}_{h}^{c}\Vert _{\mathrm{L}( S_{h}\times \varvec{U}_{h}, S_{h}'\times \varvec{U}_{h}')} \lesssim 1\), it is sufficient to prove

$$\begin{aligned} \Vert g_{h}\Vert _{M^{-1}} + \Vert \varvec{f}_{h}\Vert _{A^{-1}} \lesssim \Vert \sigma _{h}\Vert _{M} + \Vert \varvec{u}_{h}\Vert _{A}. \end{aligned}$$
(62)

From (61), we have \(g_{h}= -M_{v}\sigma _{h} + B \varvec{u}_{h}\) and \(\varvec{f}_{h} = A^{c}\varvec{u}_{h} - B^{\intercal }M_{v}^{-1}g_{h}\). The norm of \(g_h\) is easy to bound as follows

$$\begin{aligned} \Vert g_{h}\Vert _{M^{-1}} \le \Vert M_v\sigma _{h}\Vert _{M^{-1}} + \Vert B\varvec{u}_{h}\Vert _{M^{-1}}\le \Vert \sigma _{h}\Vert _{M} + \Vert \varvec{u}_{h}\Vert _{A}. \end{aligned}$$

To bound the norm of \(\varvec{f}_h\), we first have

$$\begin{aligned} \Vert \varvec{f}_{h}\Vert _{A^{-1}} \le \Vert B^{\intercal } M_{v}^{-1} g_{h}\Vert _{A^{-1}} + \Vert A^{c} \varvec{u}_{h}\Vert _{A^{-1}} \le \Vert B^{\intercal } M_{v}^{-1} g_{h}\Vert _{A^{-1}} + \Vert \varvec{u}_{h}\Vert _{A}. \end{aligned}$$

Let \(\phi _{h} = M_{v}^{-1} g_{h}\), by Lemma 16, we have

$$\begin{aligned} \Vert B^{\intercal } M_{v}^{-1} g_{h}\Vert _{A^{-1}}^{2}=\Vert B^{\intercal } \phi _{h}\Vert _{A^{-1}}^{2} = \langle B (A^{c})^{-1} B^{\intercal } \phi _{h}, \phi _{h}\rangle \le \Vert \phi _{h}\Vert _M^2= \Vert g_{h}\Vert _{M^{-1}}^{2}. \end{aligned}$$

Thus we get

$$\begin{aligned} \Vert \varvec{f}_{h}\Vert _{A^{-1}} \le \Vert g_{h}\Vert _{M^{-1}}+ \Vert \varvec{u}_{h}\Vert _{A} \le \Vert \sigma _{h}\Vert _{M} + 2\Vert \varvec{u}_{h}\Vert _{A}. \end{aligned}$$

Then the desired inequality (62) follows from the bound of \(\Vert g_h\Vert _{M^{-1}}\) and \(\Vert \varvec{f}_h\Vert _{A^{-1}}\).

To prove \( \Vert ({\mathcal {L}}_{h}^{c})^{-1}\Vert _{\mathrm{L}( S_{h}'\times \varvec{U}_{h}', S_{h}\times \varvec{U}_{h})} \lesssim 1\), we need to prove

$$\begin{aligned} \Vert \sigma _{h}\Vert _{M} + \Vert \varvec{u}_{h}\Vert _{A}\lesssim \Vert g_{h}\Vert _{M^{-1}} + \Vert \varvec{f}_{h}\Vert _{A^{-1}}. \end{aligned}$$
(63)

From (61), we have \(\varvec{u}_{h} =( A^{c})^{-1}( f_{h} + B^{\intercal }M_{v}^{-1}g_{h})\). Then

$$\begin{aligned} \Vert \varvec{u}_{h}\Vert _{A}&= \Vert \varvec{f}_{h} + B^{\intercal }M_{v}^{-1}g_{h}\Vert _{A^{-1}}\\&\le \Vert \varvec{f}_{h}\Vert _{A^{-1}} + \Vert B^{\intercal }M_{v}^{-1}g_{h}\Vert _{A^{-1}} \le \Vert \varvec{f}_{h}\Vert _{A^{-1}} + \Vert g_{h}\Vert _{M^{-1}}. \end{aligned}$$

We also have \(\sigma _{h}= M_{v}^{-1}(B \varvec{u}_{h}-g_{h})\) and thus

$$\begin{aligned} \Vert \sigma _{h}\Vert _{M} = \Vert B\varvec{u}_{h}-g_{h}\Vert _{M^{-1}} \le \Vert B\varvec{u}_{h}\Vert _{M^{-1}} + \Vert g_{h}\Vert _{M^{-1}} \le \Vert \varvec{u}_{h}\Vert _{A} + \Vert g_{h}\Vert _{M^{-1}}. \end{aligned}$$

Combining with the bound for \(\Vert \varvec{u}_h\Vert _A\), we obtain the stability (63). \(\square \)

Remark 2

Note that here \(B^{\intercal }\) is the matrix form defined as \(\langle B^\intercal \tau _h,\varvec{v}_h\rangle _{M_e^{-1}} = (\mathrm{grad\,}\tau _h ,\varvec{v}_h )\), by the second equation of (15) we have

$$\begin{aligned} \Vert B^{\intercal }\sigma _h\Vert _{M_e^{-1}}^2&= \langle B^{\intercal }\sigma _h,B^{\intercal }\sigma _h \rangle _{M_e^{-1}} = \langle M_e^{-1}B^{\intercal }\sigma _h,M_e^{-1}B^{\intercal }\sigma _h\rangle _{M_e} \\&= (\mathrm{grad\,}\sigma _h,\mathrm{grad\,}\sigma _h) = (\varvec{f}_h,\mathrm{grad\,}\sigma _h) \\&= \langle \varvec{f}_h, M_e G \sigma _h\rangle _{M_e^{-1}} = \langle \varvec{f}_h, B^{\intercal }\sigma _h\rangle _{M_e^{-1}} \\&\le \Vert \varvec{f}_h\Vert _{M_e^{-1}}\Vert B^{\intercal }\sigma _h\Vert _{M_e^{-1}}. \end{aligned}$$

Therefore, we can obtain an additional stability

$$\begin{aligned} \Vert B^{\intercal }\sigma _h\Vert _{M_e^{-1}} \le \Vert \varvec{f}_h\Vert _{M_e^{-1}}. \end{aligned}$$

Namely we can control not only the \(L^2\)-norm but also the energy norm of \(\sigma _h\). \(\square \)

4.2 Block Diagonal Preconditioners

The inverse of the mass matrices \(M^{-1}_v\) and \(M_{e}^{-1}\) are in general dense. To be practical, the exact Schur complement can be replaced by an approximation

$$\begin{aligned} \tilde{A}^{c}&= B^{\intercal }\tilde{M}_{v}^{-1}B + C^{\intercal }M_fC, \end{aligned}$$
(64)
$$\begin{aligned} \tilde{A}^{d}&= C\tilde{M}_{e}^{-1}C^{\intercal } + B^{\intercal } M_tB, \end{aligned}$$
(65)

with \(\tilde{M}_v\) and \(\tilde{M}_{e}\) easy-to-invert matrices, e.g., diagonal or mass lumping of \(M_v\) and \(M_{e}\), respectively. In this way, we actually change the \(L^{2}\)-inner product into a discrete \(L^{2}\) inner product. We can define the adjoint operators with respect to the discrete \(L^{2}\)-inner product. For example, define \(\widetilde{{\text {div}}}_{h} \varvec{w}_h \in S_h\), s.t.,

$$\begin{aligned} \langle \widetilde{{\text {div}}}_{h} \varvec{w}_h, v_h\rangle _h : = - ( \varvec{w}_h, \mathrm{grad\,}v_h)\quad \text { for all } v_h\in S_h, \end{aligned}$$
(66)

where \(\langle \cdot ,\cdot \rangle _h\) is the discrete \(L^2\)-inner product defined by \(\tilde{M}_v\).

It is not hard to see that the modification of the \(L^{2}\)-inner product will not bring any essential difficulty to the proof of the previous results. We can easily reproduce all the results that we have proved in the previous sections. For example, by a simple change of notation in the proof of Lemma 16, we have:

$$\begin{aligned} \langle B(\tilde{A}^{c})^{-1} B^{\intercal } \phi _{h}, \phi _{h}\rangle \le \langle \tilde{M}_{v}\phi _{h}, \phi _{h}\rangle \quad \text {for all } \phi _{h} \in S_{h}. \end{aligned}$$
(67)

To simplify the presentation, for any two symmetric matrices \(H_1\) and \(H_2\), \(H_1\le H_2\) means \(H_2 - H_1\) is a semi-positive defined matrix and \(H_1 < H_2\) means \(H_2 - H_1\) is a positive defined matrix.

The following proposition can be easily proved, and a proof can be found in [10].

Proposition 1

Assume that there exist positive constants \(c_1\) and \(c_2\) which are independent of h such that

$$\begin{aligned} c_1 \tilde{M} \le M \le c_2 \tilde{M}. \end{aligned}$$
(68)

Then

$$\begin{aligned} \min \{c_2^{-1},1\}\tilde{A} \le A \le \max \{c_1^{-1},1\}\tilde{A} \end{aligned}$$

Finally we introduce our block diagonal preconditioner \({\mathcal {D}}^{-1}\) with:

$$\begin{aligned} {\mathcal {D}} = \begin{pmatrix} \tilde{M} &{} 0 \\ 0 &{} \tilde{A}_\mathrm{mg} \end{pmatrix}, \end{aligned}$$
(69)

where \(\tilde{A}_\mathrm{mg}\) is one variable V-cycle multigrid approximation for \(\tilde{A}\). By Theorem 4, there exist positive constants \(\kappa _1,\kappa _2\) independent of h, such that

$$\begin{aligned} \kappa _1 \tilde{A}_\mathrm{mg} \le \tilde{A} \le \kappa _2 \tilde{A}_\mathrm{mg}. \end{aligned}$$
(70)

We shall use this block diagonal preconditioner in the minimum residual method (MINRES). Theorem 5 and spectral equivalence (70) implies that \({\mathcal {D}}^{-1}\mathcal L\) has a uniform bounded condition number. Therefore, we have the following uniform convergence result.

Theorem 6

Under the assumption (68), MINRES method for the preconditioned system \({\mathcal {D}}^{-1} \mathcal L\) is uniformly convergent.

We will skip the prove of Theorem 6 here, for detailed convergence analysis of MINRES, we refer to [28, 30].

4.3 Approximate Block Factorization Preconditioner

In this subsection, we will construct approximate block factorization preconditioners for systems (17) and (23). Let

$$\begin{aligned} \mathcal U = \begin{pmatrix} I &{} -\tilde{M}^{-1}B \\ 0 &{} I \end{pmatrix},\qquad \mathcal S = \begin{pmatrix} -\tilde{M} &{} 0 \\ 0 &{} \tilde{A} \end{pmatrix}\qquad \text {and}\qquad \hat{C} = C^{\intercal }M_fC. \end{aligned}$$

We have the block decomposition

$$\begin{aligned} \widetilde{\mathcal L} = \begin{pmatrix} -\tilde{M} &{} B \\ B^{\intercal } &{} \hat{C} \end{pmatrix} = \mathcal U^{\intercal }\mathcal S \mathcal U = \begin{pmatrix} -\tilde{M} &{} 0 \\ B^{\intercal } &{} \tilde{A} \end{pmatrix} \begin{pmatrix} I &{} -\tilde{M}^{-1}B \\ 0 &{} I \end{pmatrix}. \end{aligned}$$
(71)

We then approximate \(\tilde{A}^{-1}\) by one variable V-cycle. Define

$$\begin{aligned} \hat{\mathcal S} = \begin{pmatrix} -\tilde{M} &{} 0 \\ 0 &{} \tilde{A}_\mathrm{mg} \end{pmatrix}, \quad {\mathcal {T}} = \mathcal U^{\intercal }\hat{\mathcal S}= \begin{pmatrix} -\tilde{M} &{} 0 \\ B^{\intercal } &{} \tilde{A}_\mathrm{mg} \end{pmatrix}, \end{aligned}$$

and the operator \(\mathcal G: S_h'\times \varvec{U}_h' \rightarrow S_h \times \varvec{U}_h\) as

$$\begin{aligned} \mathcal G = \mathcal U^{-1}({\mathcal {T}})^{-1}= \begin{pmatrix} I &{} \tilde{M}^{-1}B \\ 0 &{} I \end{pmatrix} \begin{pmatrix} -\tilde{M} &{} 0 \\ B^{\intercal } &{} \tilde{A}_\mathrm{mg} \end{pmatrix}^{-1}. \end{aligned}$$
(72)

From the definition and (70), it is trivial to verify that \(\mathcal G^{-1} \) is spectral equivalent to \( \widetilde{{\mathcal {L}}}\) and thus conclude that the preconditioned system is uniform bounded.

Theorem 7

The \(\mathcal G\) is a uniform preconditioner for \({\mathcal {L}}\), i.e., the corresponding operator norms

$$\begin{aligned} \Vert \mathcal G{\mathcal {L}}\Vert _{\mathrm{L}( S_{h}\times \varvec{U}_{h}, S_{h}\times \varvec{U}_{h})}, \Vert ({\mathcal {L}}\mathcal G)^{-1}\Vert _{\mathrm{L}( S_{h}\times \varvec{U}_{h} , S_{h}\times \varvec{U}_{h})}, \end{aligned}$$

are bounded and independent with parameter h.

As non SPD operators used in the preconditioners, we can apply the generalized minimal residual method (GMRES) to \(\mathcal G{\mathcal {L}}\). To prove the convergence of GMRES, we need to show that the field-of-value of \(\mathcal G\mathcal L\) is bounded, see [15, 30, 22, Algorithm 2.2] which will be explored in our future work [12].

4.4 Maxwell Equations with Divergence-Free Constraint

We consider a prototype of Maxwell equations with divergence-free constraint

$$\begin{aligned} \mathrm{curl\,}\mathrm{curl\,}\varvec{u} = \varvec{f}, \; {\text {div}}\varvec{u} = 0, \; \text { in } {\varOmega }, \qquad \varvec{u}\times \varvec{n} = 0 \text { on } \partial {\varOmega }. \end{aligned}$$

The solution \(\varvec{u}\) is approximated in the edge element space \(\varvec{U}_{h}\). The divergence-free constraint can then be understood in the weak sense, i.e., \({\text {div}}_h \varvec{u} = 0\). By introducing a Lagrangian multiplier \(p\in S_{h}\), the matrix form is

$$\begin{aligned} \begin{pmatrix} C^{\intercal }M_{f}C &{} B^{\intercal }\\ B &{} 0 \end{pmatrix} \begin{pmatrix} \varvec{u}\\ p \end{pmatrix} = \begin{pmatrix} \varvec{f}\\ g \end{pmatrix}. \end{aligned}$$
(73)

We apply the augmented Lagrangian method [16], by adding \(B^{\intercal }\tilde{M}_{v}^{-1}B\) to the first equation, to get an equivalent matrix equation

$$\begin{aligned} \begin{pmatrix} \tilde{A} &{} B^{\intercal }\\ B &{} 0 \end{pmatrix} \begin{pmatrix} \varvec{u}\\ p \end{pmatrix} = \begin{pmatrix} \varvec{f} + B^{\intercal }\tilde{M}_{v}^{-1} g\\ g \end{pmatrix}. \end{aligned}$$
(74)

Now the (1, 1) block \(\tilde{A}=C^{\intercal }M_{f}C + B^{\intercal }\tilde{M}_{v}^{-1}B\) in (74) is a discrete vector Laplacian and the whole system (74) is in Stokes type.

We can thus use the following diagonal preconditioner.

Theorem 8

The following block-diagonal matrix

$$\begin{aligned} \begin{pmatrix} \tilde{A}^{-1} &{}0 \\ 0&{} M_v^{-1} \end{pmatrix} \end{aligned}$$
(75)

is a uniform preconditioner for \(\begin{pmatrix} \tilde{A} &{} B^{\intercal }\\ B &{} 0 \end{pmatrix},\) and \( \begin{pmatrix} C^{\intercal }M_{f}C &{} B^{\intercal }\\ B &{} 0 \end{pmatrix}. \)

Proof

Following the proof of Theorem 5, it suffices to prove that the Schur complement \(S = B\tilde{A}^{-1}B^{\intercal }\) is spectrally equivalent to \(M_v\). The inequality \((Sp,p) \le (M_vp,p)\) for all \(p\in S_h\) has been proved in Lemma 16. To prove the inequality in the other way, it suffices to prove the inf-sup condition: there exists a constant \(\beta \) independent of h such that

$$\begin{aligned} \inf _{p_h\in S_h}\sup _{v_h\in U_h}\frac{\langle Bv_h, p_h\rangle }{\Vert v_h\Vert _{\tilde{A}}\Vert p_h\Vert } = \beta >0. \end{aligned}$$
(76)

Given \(p_h \in S_h\), we solve the Poisson equation \({\varDelta } \phi = p_h\) with homogenous Dirichlet boundary condition and let \(\varvec{v} = \mathrm{grad\,}\phi \). Then \(\varvec{v}\in \varvec{H}_0(\mathrm{curl\,})\) and \({\text {div}}\varvec{v} = p_h\) holds in \(L^2\). We define \(\varvec{v}_h = Q_h \varvec{v}\) where \(Q_h: \varvec{H}_0(\mathrm{curl\,}) \rightarrow \varvec{U}_h\) is the \(L^2\) projection. Then \(({\text {div}}_h \varvec{v}_h, q_h) = -(\varvec{v}_h, \mathrm{grad\,}q_h) = -(\varvec{v}, \mathrm{grad\,}q_h) = ({\text {div}}\varvec{v}, q_h) = (p_h, q_h)\), i.e., \({\text {div}}_h \varvec{v}_h = p_h\). To control the norm of \(\mathrm{curl\,}\varvec{v}_h\), we denote \(\varvec{v}_0\) as the piecewise constant projection of \(\varvec{v}\). Then

$$\begin{aligned} \Vert \mathrm{curl\,}\varvec{v}_h\Vert = \Vert \mathrm{curl\,}(\varvec{v}_h - \varvec{v}_0)\Vert \lesssim h^{-1}\Vert \varvec{v}_h - \varvec{v}_0\Vert \le \Vert \varvec{v}\Vert _1\lesssim \Vert p_h\Vert . \end{aligned}$$

In the last step, we have used the \(H^2\)-regularity result of Poisson equation.

In summary, given \(p_h \in S_h\), we have found a \(\varvec{v}_h \in U_h\) such that \(\langle B\varvec{v}_h, p_h\rangle = \Vert p_h\Vert ^2\) while \(\Vert \varvec{v}_h\Vert _A^2 = \Vert {\text {div}}_h \varvec{v}_h\Vert ^2 + \Vert \mathrm{curl\,}\varvec{v}_h\Vert ^2 \lesssim \Vert p_h\Vert ^2\). Therefore the inf-sup condition (76) has been proved which implies the inequality \(\langle Sp,p\rangle \ge \beta ^{2}\langle M_vp,p\rangle \). \(\square \)

Solving (73) or (74) is mathematically equivalent. When using Krylov subspace method, however, formulation (73) is more efficient since \(C^{\intercal }M_fC\) is sparser than \(\tilde{A}\). Next we present an even faster solver.

We can decouple the saddle point system (74) by considering the following block factorization

$$\begin{aligned} \begin{pmatrix} C^{\intercal }M_{f}C + B^{\intercal }\tilde{M}_{v}^{-1}B &{} B^{\intercal }\\ B &{} 0 \end{pmatrix} \begin{pmatrix} I &{} G\\ 0 &{} -\tilde{M}_v^{-1}A_p \end{pmatrix} = \begin{pmatrix} \tilde{A} &{} 0\\ B &{} A_p \end{pmatrix}. \end{aligned}$$
(77)

where

$$\begin{aligned} G = M_e^{-1}B^{\intercal }, \text { and } A_p = BG. \end{aligned}$$

The key observation is that G is the matrix representation of the gradient operator \(S_{h}\rightarrow U_{h}\) and thus \(CG = \mathrm{curl\,}\mathrm{grad\,}= 0\). Therefore we can easily solve (73) by inverting two Laplacian operators: one is a vector Laplacian of the edge element and another is a scalar Laplacian for the Lagrange element:

$$\begin{aligned} \begin{pmatrix} \tilde{A} &{} B^{\intercal }\\ B &{} 0 \end{pmatrix}^{-1} = \begin{pmatrix} I &{} G\\ 0 &{} -\tilde{M}_v^{-1}A_p \end{pmatrix} \begin{pmatrix} \tilde{A} &{} 0\\ B &{} A_p \end{pmatrix}^{-1}. \end{aligned}$$
(78)

5 Numerical Examples

In this section, we will show the efficiency and the robustness of the proposed diagonal and approximate block factorization preconditioners. We perform the numerical experiments using the iFEM package [9].

Example 1

(Two Dimensional Vector Laplacian using Edge Elements) We first consider the mixed system (17) arising from the lowest order discretization of the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space.

We consider three domains in two dimensions: the unit square \((0,1)^2\), the L-shape domain \((-1,1)^2\backslash \left\{ [0,1]\times [-1,0]\right\} \), and the crack domain \(\{|x|+|y|<1\}\backslash \{0\le x\le 1, y=0\}\); see Fig. 1. Note that the crack domain is non-Lipschitz.

We use the diagonal preconditioner \({\mathcal {D}}^{-1}\) in the MINRES method and the approximate block factorization preconditioner (72) in the GMRES (with the restart step 20) to solve (17). In these preconditioners, one and only one variable V-cycle is used for approximating \(\tilde{A}^{-1}\). In the variable V-cycle, we chose \(m_J = 2\) and \(m_{k} = \lceil 1.5^{J - k}m_J \rceil \) for \(k=J,\ldots , 1\), and a random initial value. We stop the Krylov space iteration when the relative residual is less than or equal to \(10^{-8}\). Iteration steps and CPU time are summarized in Tables 1, 2, and 3.

Fig. 1
figure 1

Meshes for Example 5.1. a A mesh for the unit square. b A mesh for a L-shape domain. c A mesh for a crack domain

Table 1 Iteration steps and CPU time of the diagonal (D) and the approximate block factorization (T) preconditioners for the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space: the square domain \((0,1)^2\)
Table 2 Iteration steps and CPU time of the diagonal (D) and the approximate block factorization (T) preconditioners for the lowest order discretization of the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space: the L-shape domain \((-1,1)^2\backslash \left\{ [0,1]\times [-1,0]\right\} \)
Table 3 Iteration steps and CPU time of the diagonal (D) and the approximate block factorization (T) preconditioners for the lowest order discretization of the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space: the crack domain \(\{|x|+|y|<1\}\backslash \{0\le x\le 1, y=0\}\)

Example 2

(Three Dimensional Vector Laplacian using Edge Elements) We then consider the three dimensional case. Still consider the lowest order discretization of the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space. We use almost the same setting except \(m_J = 3\) for which the performance is more robust.

We consider two domains. One is the unit cube \((0,1)^3\) for which the full regularity assumption holds and another is a L-shape domain \((-1,1)^3\backslash \left\{ (-1,0)\times (0,1)\times (0,1)\right\} \) which violates the full regularity assumption; see Fig. 2. Iteration steps and CPU time are summarized in Tables 4 and 5.

Fig. 2
figure 2

Meshes for Example 5.2. a A mesh for the unit cube. b A mesh for a L-shaped domain

Table 4 Iteration steps and CPU time of the diagonal (D) and approximate block factorization (T) preconditioners for the lowest order discretization of the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space in three dimensions: the unit cube domain
Table 5 Iteration steps and CPU time of the diagonal (D) and approximate block factorization (T) preconditioners for the lowest order discretization of the vector Laplace equation in \(\varvec{H}_0(\mathrm{curl\,})\) space in three dimensions: L-shape domain \((-1,1)^3\backslash \left\{ (-1,0)\times (0,1)\times (0,1)\right\} \)
Table 6 Iteration steps and CPU time of PCG-\(\tilde{A}\) and the diagonal preconditioner (D) for the lowest order discretization of Maxwell equations in the saddle point form in three dimensions: the cube domain \((-1,1)^3\)
Table 7 Iteration steps and CPU time of PCG-\(\tilde{A}\) and diagonal preconditioner (D) for the lowest order discretization of Maxwell equations in the saddle point form in three dimensions: L-shape domain \((-1,1)^3\backslash \left\{ (-1,0)\times (0,1)\times (0,1)\right\} \)

Based on these tables, we present some discussion on our preconditioners.

  1. 1.

    Both diagonal and approximate block factorization preconditioners perform very well. The one based on the approximate block factorization is more robust and efficient.

  2. 2.

    The diagonal preconditioner is more sensitive to the elliptic regularity result as the iteration steps are slowly increased, which is more evident in the three dimensional case; see the third column of Tables 4 and 5. For general domains, the \(\varvec{H}_0(\mathrm{curl\,})\cap \varvec{H}({\text {div}})\) is a strict subspace of \(\varvec{H}^1\) and thus the approximation property may fail. On the other hand, the numerical effectiveness even in the partial regularity cases is probably due to the fact that the full regularity of elliptic equations always holds in the interior of the domain. Additional smoothing for near boundary region might compensate the loss of full regularity.

  3. 3.

    Only the lowest order element is tested while our theory assumes the finite element space should contain the full linear polynomial to ensure the approximation property. This violation may also contribute to the slow increase of the iteration steps. We do not test the second type of edge element due to the complication of the prolongation operators. The lowest order edge element is the most popular edge element. For high order edge elements, we prefer to use the V-cycle for the lowest order element plus additional Gauss–Seidel smoothers in the finest level to construct preconditioners.

Example 3

(Three dimensional Maxwell’s equations with divergent-free constraint) We consider the lowest order discretization of Maxwell equations in the saddle point form (73). As we mentioned before, we can solve the regularized formulation (74) by inverting two Laplacians. We use one variable V-cycle with the same setting as in Example 2 to precondition the vector Laplacian operator \(\tilde{A}\) and use preconditioned conjugate gradient method to invert \(\tilde{A}\) (abbr. PCG-\(\tilde{A}\)). Inverting of \(A_p\) is standard, and the computation time is ignorable. We also test the block-diagonal preconditioner (75) for solving the original formulation (73) using same setting as in Example 2. We report the iteration steps and corresponding CPU times in Tables 6 and 7.

From these results, we conclude that both decoupled solver and block-diagonal preconditioner work pretty well. The iteration steps may increase but very slowly. In terms of CPU time, the decoupled solver is more than twice faster than the diagonal preconditioner.