1 Introduction

The design of stable and convergent schemes for the numerical approximation of certain classes of partial differential equations (PDEs) requires to reproduce, at the discrete level, the underlying geometric, topological, and algebraic structures. This leads to the notion of compatibility, which can be achieved either in a conforming or nonconforming setting. Relevant examples include PDEs that relate to the de Rham complex. For an open connected polyhedral domain \(\Omega \subset {\mathbb {R}}^3\), this complex reads

figure a

where \(i_\Omega \) denotes the operator that maps a real value to a constant function over \(\Omega \), \(\text {H}^{1}(\Omega )\) the space of scalar-valued functions over \(\Omega \) that are square integrable along with their gradient, \(\mathbf{H }(\mathbf{curl};\Omega )\) (resp. \(\mathbf{H }({{\,\mathrm{div}\,}};\Omega )\)) the space of vector-valued functions over \(\Omega \) that are square integrable along with their curl (resp. divergence). In order to serve as a basis for the numerical approximation of PDEs, discrete counterparts of this sequence of spaces and operators should enjoy the following key properties:


Complex and exactness properties For the sequence to form a complex, the image of each discrete vector calculus operator should be contained in the kernel of the next one. Moreover, the following exactness properties should be reproduced at the discrete level: \({{\,\mathrm{Im}\,}}i_\Omega = {{\,\mathrm{Ker}\,}}\mathbf{grad}\) (since \(\Omega \) is connected); \({{\,\mathrm{Im}\,}}\mathbf{grad}= {{\,\mathrm{Ker}\,}}\mathbf{curl}\) if the first Betti number of \(\Omega \) is zero; \({{\,\mathrm{Im}\,}}\mathbf{curl}={{\,\mathrm{Ker}\,}}{{\,\mathrm{div}\,}}\) if the second Betti number of \(\Omega \) is zero; \({{\,\mathrm{Im}\,}}{{\,\mathrm{div}\,}}= \text {L}^2(\Omega )\) (since we are in dimension three).


Uniform Poincaré inequalities Whenever a function from a space in the sequence lies in some orthogonal complement of the kernel of the vector calculus operator defined on this space, its (discrete) \(\text {L}^2\)-norm should be controlled by the (discrete) \(\text {L}^2\)-norm of the operator up to a multiplicative constant independent of the mesh size.


Primal and adjoint consistency The discrete vector calculus operators should satisfy appropriate commutation properties with the interpolators and their continuous counterparts. Additionally, these operators along with the corresponding (scalar or vector) potentials should approximate smooth fields with sufficient accuracy. Finally, whenever a formal integration by parts is used in the weak formulation of the problem at hand, the vector calculus operators should also enjoy suitable adjoint consistency properties. The notion of adjoint consistency accounts for the failure, in nonconforming settings, to verify global integration by parts formulas exactly.

In the context of finite element (FE) approximations, discrete counterparts of the de Rham complex are obtained replacing each space in the sequence with a finite-dimensional subspace. These subspaces are built upon a conforming mesh of the domain, whose elements are restricted to a small number of shapes and, in practice, are most often tetrahedra; see [2] for a complete and extremely general exposition including an exhaustive bibliography, and also [21] on the link between Raviart–Thomas–Nédélec differential forms and FE systems. The restriction to conforming meshes made of standard elements can be a major shortcoming in advanced applications, limiting, for example, the capacity for local refinement or mesh agglomeration; see, e.g., the preface of [28]. The extension of the FE approach to more general meshes featuring, e.g., polyhedral elements and non-matching interfaces, is not straightforward. Recent efforts in this direction have been made in [19, 39] (see also references therein), focusing mainly on the lowest-order case and with some limitations on the element shapes in three dimensions. The extension to specific element shapes has also been considered in [26, 37]. A recent generalization of FE methods is provided by the Isogeometric Analysis, which is designed to facilitate exchanges with Computer Assisted Design software. In this framework, spline spaces and projection operators that verify a de Rham diagram have been developed in [17]; see also [18].

General polytopal meshes can be handled by several lowest-order methods grounded, to a different extent, in the seminal work of Whitney on geometric integration [44]. These methods share the common feature that discrete de Rham complexes are obtained by replacing both the spaces and operators with discrete counterparts. Specifically, the spaces consist of vectors of real numbers attached to mesh entities of dimension equal to the index of the space in the sequence (vertices for \(\text {H}^{1}(\Omega )\), edges for \(\mathbf{H }(\mathbf{curl};\Omega )\), faces for \(\mathbf{H }({{\,\mathrm{div}\,}};\Omega )\), and elements for \(\text {L}^2(\Omega )\)). In mimetic finite differences, discrete vector calculus operators and \(\text {L}^2\)-products are obtained by mimicking the Stokes theorem; see [8] for a complete exposition. Their extension to polytopal meshes has first been carried out in [41, 42], then analyzed in [15, 16]; see also [36] for a link with the Mixed Hybrid finite volume methods of [34, 38] and [33, Section 2.5] along with [32, Section 3.5] and [1] for links with Hybrid High-Order methods. In the Discrete Geometric Approach, originally introduced in [22] and extended to polyhedral meshes in [23, 24], as well as in Compatible Discrete Operators [11, 12], the key notions are topological vector calculus operators (expressed in terms of incidence matrices) along with the Hodge operator. The role of the latter is to establish a link, through the introduction of physical parameters, between quantities defined on primal and dual mesh entities. All of the above schemes are limited to the lowest-order, and their analysis often relies on an interplay of functional and topological arguments that is not required in our approach.

Discretization methods that provide arbitrary-order approximations on general polyhedral meshes have only recently appeared in the literature. A first example is provided by the Virtual Element method, which can be described as a FE method where explicit expressions for the basis functions are not available at each point. A de Rham complex of virtual spaces on polyhedra has been recently proposed in [7]; important evolutions of this original virtual complex are contained in [4, 5], which also include applications to the Kikuchi formulation of magnetostatics, and in [9], which contains a detailed study of the interpolation and stability properties of the low-order VEM spaces. In order to derive an actual discretization scheme starting from the sequence of virtual spaces, a variational crime involving projections is required. A different approach is pursued in [29, 31], where a discrete de Rham (DDR) complex is presented, based on decompositions of full polynomial spaces into the range of vector calculus operators and their \(\text {L}^2\)-orthogonal complements. This complex involves discrete spaces and operators that appear, through discrete \(\text {L}^2\)-products, in the formulation of discretization methods. The analysis in [29, 31] focuses on a subset of properties (P1)(P2) involved in the stability analysis of numerical schemes: local exactness ([31, Theorems 4.1 and 5.1]), global complex property, discrete counterparts of \({{\,\mathrm{Im}\,}}\mathbf{grad}= {{\,\mathrm{Ker}\,}}\mathbf{curl}\) for domains that do not enclose voids and \({{\,\mathrm{Im}\,}}{{\,\mathrm{div}\,}}= \text {L}^2(\Omega )\) ([29, Theorem 3]), as well as Poincaré inequalities for the divergence and the curl ([29, Theorems 18 and 20, respectively]). This approach completely avoids, both in the construction and in the analysis, the use of (virtual or piecewise polynomial) functions with global regularity, and is closer in spirit to Mimetic Finite Differences and Mixed Hybrid Finite Volume methods.

Regarding consistency properties (P3) for polytopal methods, and starting from low-order methods, results for compatible discrete operator approximations of the Poisson problem based on nodal unknowns can be found in [12]; see in particular the proof of Theorem 3.3 therein, which contains an adjoint consistency result for a gradient reconstructed from vertex values. In the same framework, an adjoint consistency estimate for a discrete curl constructed from edge values can be found in [13, Lemma 2.3]. A rather complete set of consistency results for mimetic finite difference operators can be found in [8], where they appear as intermediate steps in the error analyses of Chapters 5–7. A notable exception is provided by the adjoint consistency of the curl operator, which is not needed in the error estimate of [8, Theorem 7.3] since the authors consider an approximation of the current density based on the knowledge of a vector potential.

Moving to consistency properties for arbitrary-order polytopal methods, error estimates that involve the adjoint consistency of a gradient and the consistency of the corresponding potential have been recently derived in [14] in the framework of the \(\text {H}^{1}\)-conforming virtual element method. The same method is considered in [27, Section 3.2], where a different analysis is proposed based on the third Strang lemma. The estimate of the consistency error in [27, Theorem 19] involves, in particular, the adjoint consistency of a discrete gradient reconstructed as the gradient of a scalar polynomial rather than a vector-valued polynomial. We note, in passing, that the concept of adjoint consistency for (discrete) gradients is directly related to the notion of limit-conformity in the gradient discretization method [35], a generic framework which encompasses several polytopal methods. Primal and dual consistency estimates for a discrete divergence and the corresponding vector potential similar (but not identical) to the ones considered here have been established in [32] in the framework of Mixed High-Order methods. Note that these methods (the \(\text {H}^{1}\)-conforming Virtual Element method and the Mixed High-Order method) do not lead to a discrete de Rham complex. In the framework of arbitrary-order compatible discretizations, on the other hand, primal consistency results for the curl appear as intermediate results in [4], where an error analysis for a Virtual Element approximation of magnetostatics is carried out assuming interpolation estimates for three-dimensional vector-valued virtual spaces; see Remark 4.4 therein. However, [4] does not establish any adjoint consistency property of the discrete curl (the formulation of magnetostatics considered in this reference does not require it).

Content of the paper We present a new DDR sequence based, contrary to [29, 31], on explicit complements of the ranges of vector calculus operators inspired by the ones used in [4]; these complements are easier to implement, and enable a complete proof of the full set of properties (P1)(P3). To the best of our knowledge, this is the first time that such a complete panel of results is available for an arbitrary-order polyhedral method compatible with the de Rham complex. The complements considered here are linked to the spaces appearing in the Koszul complex (see, e.g., [2, Chapter 7]) and enjoy two key properties on general polyhedral meshes: they are hierarchical (see Remark 1 below) and their traces on polyhedral faces or edges lie in appropriate polynomial spaces (cf. Proposition 8). These properties make it possible to prove discrete integration by parts formulas for the discrete potentials (see Remarks 8, 17, 18, and 19 below) which, in turn, are essential to the proof of the adjoint consistency properties.

The key ingredients to establish primal consistency are the polynomial consistency of discrete vector calculus operators along with the corresponding potentials, and their boundedness when applied to the interpolates of smooth functions. The proofs of adjoint consistency, on the other hand, rely on operator-specific techniques and are all grounded in the above-mentioned discrete integration by parts formulas for the corresponding potential reconstructions. Specifically, the key point for the adjoint consistency of the gradient are estimates for local \(\text {H}^{1}\)-like seminorms of the scalar potentials. The adjoint consistency of curl requires, on the other hand, the construction of liftings of the discrete face potentials that satisfy an orthogonality and a boundedness condition. These reconstructions are inspired by the minimal reconstruction operators of [8, Chapter 3], with a key novelty provided by a curl correction which ensures the well-posedness of the reconstruction inside mesh elements and relies on fine results from [3, 25].

In order to showcase the theoretical results derived here, we carry out a full convergence analysis for a DDR approximation of magnetostatics. This is, to the best of our knowledge, the first full theoretical result of this kind for arbitrary-order polytopal methods.

The key innovation of the DDR complex presented here, compared to the one in [29, 31], precisely lies in the fact that it enables all mathematical results required to prove error estimates for schemes built from this sequence. The only analytical results available in [29, 31] are Poincaré inequalities for the curl and the divergence and, as a matter of fact, it seems that the sequence in these references does not satisfy the critical discrete integration by parts formulas mentioned above, and is therefore not amenable to an adjoint consistency analysis.

The rest of the paper is organized as follows. In Sect. 2 we establish the general setting. Section 3 contains the definition of the DDR sequence along with key intermediate results for the discrete vector calculus operators (including the commutation property in (P3)) and the proof of (P1). In Sect. 4, we introduce tools for the design and analysis of schemes based on the DDR sequence: polynomial potential reconstructions and \(\text {L}^2\)-products on the discrete spaces. Discrete Poincaré inequalities corresponding to (P2) are covered in Sect. 5. Section 6 contains the statement and proofs of the primal and adjoint consistency results corresponding to (P3). The application of the theoretical tools to the error analysis of a DDR approximation of magnetostatics is considered in Sect. 7, where numerical evidence supporting the error estimates is also provided. The paper is completed by three appendices. “Appendix A” contains results on local polynomial spaces including those on the traces of the trimmed spaces constructed from the Koszul complements. “Appendix B” contains an in-depth and novel study of the div-curl problems defining the curl liftings on polytopal elements: well-posedness, orthogonality and boundedness properties. Finally, “Appendix C” details the conventions of notation adopted throughout the paper, and lists the main spaces and operators of the DDR complex.

2 Setting

2.1 Domain and Mesh

For any (measurable) set \(Y\subset {\mathbb {R}}^3\), we denote by \(h_Y{:}{=}\sup \{|\varvec{x}-\varvec{y}|\,:\,\varvec{x},\varvec{y}\in Y\}\) its diameter and by |Y| its Hausdorff measure. We consider meshes \({\mathcal {M}}_{h}{:}{=}{\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\cup {\mathcal {E}}_{h}\cup {\mathcal {V}}_h\), where: \({\mathcal {T}}_{h}\) is a finite collection of open disjoint polyhedral elements such that \({\overline{\Omega }} = \bigcup _{T\in {\mathcal {T}}_{h}}{\overline{T}}\) and \(h=\max _{T\in {\mathcal {T}}_{h}}h_T>0\); \({\mathcal {F}}_{h}\) is a finite collection of open planar faces; \({\mathcal {E}}_{h}\) is the set collecting the open polygonal edges (line segments) of the faces; \({\mathcal {V}}_h\) is the set collecting the edge endpoints. It is assumed, in what follows, that \(({\mathcal {T}}_{h},{\mathcal {F}}_{h})\) matches the conditions in [28, Definition 1.4], so that the faces form a partition of the mesh skeleton \(\bigcup _{T\in {\mathcal {T}}_{h}}\partial T\). We additionally assume that the polytopes in \({\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\) are simply connected and have connected Lipschitz-continuous boundaries. This notion of mesh is related to that of cellular (or CW) complex from algebraic topology; see, e.g., [43, Chapter 7].

The set collecting the mesh faces that lie on the boundary of a mesh element \(T\in {\mathcal {T}}_{h}\) is denoted by \({\mathcal {F}}_{T}\). For any mesh element or face \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\), we denote, respectively, by \({\mathcal {E}}_{Y}\) and \({\mathcal {V}}_{Y}\) the set of edges and vertices of Y.

Throughout the paper, unless otherwise specified, we write \(a\lesssim b\) in place of \(a\le Cb\) with C depending only on \(\Omega \), the mesh regularity parameter \(\rho \) of [28, Definition 1.9], and the considered polynomial degree. We note that this mesh regularity parameter \(\rho \in (0,1)\) is bounded away from 0 when a shape-regular matching simplicial submesh of \({\mathcal {T}}_{h}\) exists such that each \(T\in {\mathcal {T}}_{h}\) is partitioned into simplices of size uniformly comparable to T. We also use \(a\simeq b\) as a shorthand for “\(a\lesssim b\) and \(b\lesssim a\)”.

2.2 Orientation of Mesh Entities and Vector Calculus Operators on Faces

For any face \(F\in {\mathcal {F}}_{h}\), an orientation is set by prescribing a unit normal vector \(\varvec{n}_F\) and, for any mesh element \(T\in {\mathcal {T}}_{h}\) sharing F, we denote by \(\omega _{TF}\in \{-1,1\}\) the orientation of F relative to T, that is, \(\omega _{TF}=1\) if \(\varvec{n}_F\) points out of T, \(-1\) otherwise. With this choice, \(\omega _{TF}\varvec{n}_F\) is the unit vector normal to F that points out of T. For any edge \(E\in {\mathcal {E}}_{h}\), an orientation is set by prescribing the unit tangent vector \(\varvec{t}_E\). Denoting by \(F\in {\mathcal {F}}_{h}\) a face such that \(E\in {\mathcal {E}}_{F}\), its boundary \(\partial F\) is oriented counter-clockwise with respect to \(\varvec{n}_F\), and we denote by \(\omega _{FE}\in \{-1,1\}\) the (opposite of the) orientation of E relative to that \(\partial F\): \(\omega _{FE}=1\) if \(\varvec{t}_E\) points on E in the opposite orientation to \(\partial F\), \(\omega _{FE}=-1\) otherwise. We also denote by \(\varvec{n}_{FE}\) the unit vector normal to E lying in the plane of F such that \((\varvec{t}_E,\varvec{n}_{FE})\) forms a system of right-handed coordinates in the plane of F, so that the system of coordinates \((\varvec{t}_E,\varvec{n}_{FE},\varvec{n}_F)\) is right-handed in \({\mathbb {R}}^3\). It can be checked that \(\omega _{FE}\varvec{n}_{FE}\) is the normal to E, in the plane where F lies, pointing out of F.

For any mesh face \(F\in {\mathcal {F}}_{h}\), we denote by \(\mathbf{grad}_F\) and \({{\,\mathrm{div}\,}}_F\) the tangent gradient and divergence operators acting on smooth enough functions. Moreover, for any \(r:F\rightarrow {\mathbb {R}}\) and \(\varvec{z}:F\rightarrow {\mathbb {R}}^2\) smooth enough, we define the two-dimensional vector and scalar curl operators such that

$$\begin{aligned} \mathbf{rot}_F r{:}{=}\varrho _{-\nicefrac \pi 2}(\mathbf{grad}_F r)\quad \text{ and } \quad {{\,\mathrm{rot}\,}}_F\varvec{z}={{\,\mathrm{div}\,}}_F(\varrho _{-\nicefrac \pi 2}\varvec{z}), \end{aligned}$$

where \(\varrho _{-\nicefrac \pi 2}\) is the rotation of angle \(-\frac{\pi }{2}\) in the oriented tangent space to F.

2.3 Lebesgue and Sobolev Spaces

Let Y be a measurable subset of \({\mathbb {R}}^3\). We denote by \(\text {L}^2(Y)\) the Lebesgue space spanned by functions that are square-integrable over Y. When Y is a subset of an n-dimensional variety, we will use the boldface notation \({\mathbf{L }}^2(Y){:}{=}\text {L}^2(Y)^n\) for the space of vector-valued fields over Y with square-integrable components. Given an integer l and \(Y\in \{\Omega \}\cup {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\), \(\text {H}^{l}(Y)\) will denote the Sobolev space spanned by square-integrable functions whose partial derivatives of order up to l are also square-integrable. Denoting again by n the dimension of Y, we let \({\mathbf{H }}^{l}(Y){:}{=}\text {H}^{l}(Y)^n\) and \({\mathbf{C }}^{l}(Y){:}{=}\text {C}^{l}(Y)^n\). For all \(F\in {\mathcal {F}}_{h}\), we let \(\mathbf{H }({{\,\mathrm{rot}\,}};F){:}{=}\left\{ \varvec{v}\in {\mathbf{L }}^2(F)\,:\,{{\,\mathrm{rot}\,}}_F\varvec{v}\in \text {L}^2(F)\right\} \). Similarly, for all \(Y\in \{\Omega \}\cup {\mathcal {T}}_{h}\), \(\mathbf{H }(\mathbf{curl};Y){:}{=}\left\{ \varvec{v}\in {\mathbf{L }}^2(Y)\,:\,\mathbf{curl}\varvec{v}\in {\mathbf{L }}^2(Y)\right\} \) and \(\mathbf{H }({{\,\mathrm{div}\,}};Y){:}{=}\left\{ \varvec{w}\in {\mathbf{L }}^2(Y)\,:\,{{\,\mathrm{div}\,}}\varvec{w}\in \text {L}^2(Y)\right\} \).

2.4 Polynomial Spaces and Decompositions

For a given integer \(\ell \ge 0\), \({\mathbb {P}}_n^\ell \) denotes the space of n-variate polynomials of total degree \(\le \ell \), with the convention that \({\mathbb {P}}_0^\ell = {\mathbb {R}}\) for any \(\ell \) and that \({\mathbb {P}}_n^{-1} {:}{=}\{ 0 \}\) for any n. For any \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\cup {\mathcal {E}}_{h}\), we denote by \({\mathcal {P}}_{}^{\ell }(Y)\) the space spanned by the restriction to Y of the functions in \({\mathbb {P}}_3^\ell \). Denoting by \(1\le n\le 3\) the dimension of Y, \({\mathcal {P}}_{}^{\ell }(Y)\) is isomorphic to \({\mathbb {P}}_n^\ell \) (see [28, Proposition 1.23]). In what follows, with a little abuse of notation, both spaces are denoted by \({\mathcal {P}}_{}^{\ell }(Y)\). We additionally denote by \(\pi _{{\mathcal {P}},Y}^{\ell }\) the corresponding \(\text {L}^2\)-orthogonal projector and let \({\mathcal {P}}_{}^{0,\ell }(Y)\) denote the subspace of \({\mathcal {P}}_{}^{\ell }(Y)\) made of polynomials with zero average over Y. For the sake of brevity, we also introduce the boldface notations \(\varvec{\mathcal {P}}_{}^{\ell }(T){:}{=}{\mathcal {P}}_{}^{\ell }(T)^3\) for all \(T\in {\mathcal {T}}_{h}\) and \(\varvec{\mathcal {P}}_{}^{\ell }(F){:}{=}{\mathcal {P}}_{}^{\ell }(F)^2\) for all \(F\in {\mathcal {F}}_{h}\).

Let again an integer \(\ell \ge 1\) be given, and denote by \({\mathfrak {E}}\subset {\mathcal {E}}_{h}\) a collection of edges such that \(S_{{\mathfrak {E}}}{:}{=}\bigcup _{E\in {\mathfrak {E}}}{\overline{E}}\) forms a connected set. We denote by \({\mathcal {P}}_{\mathrm{c}}^{\ell }({\mathfrak {E}}){:}{=}\left\{ q_{{\mathfrak {E}}}\in \text {C}^{0}(S_{{\mathfrak {E}}})\,:\,(q_{{\mathfrak {E}}})_{|E}\in {\mathcal {P}}_{}^{\ell }(E) \text { for all }E\in {\mathfrak {E}}\right\} \) the space of functions over \(S_{\mathfrak {E}}\) whose restriction to each edge \(E\in {\mathfrak {E}}\) is a polynomial of total degree \(\le \ell \) and that are continuous at the edges endpoints; these endpoints are collected in the set \({\mathcal {V}}_{{\mathfrak {E}}}\subset {\mathcal {V}}_h\). Denoting by \(\varvec{x}_V\) the coordinates vector of a vertex \(V\in {\mathcal {V}}_h\), it can be easily checked that the following mapping is an isomorphism:


For all \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\), denote by \(\varvec{x}_Y\) a point inside Y such that Y contains a ball centered at \(\varvec{x}_Y\) of radius \(\rho h_Y\), where \(\rho \) is the mesh regularity parameter in [28, Definition 1.9]. For any mesh face \(F\in {\mathcal {F}}_{h}\) and any integer \(\ell \ge 0\), we define the following relevant subspaces of \(\varvec{\mathcal {P}}_{}^{\ell }(F)\):

$$\begin{aligned} \varvec{\mathcal {G}}^{\ell }(F)&{:}{=}\mathbf{grad}_F{\mathcal {P}}_{}^{\ell +1}(F),&\qquad \varvec{\mathcal {G}}^{\mathrm{c},\ell }(F)&{:}{=}(\varvec{x}-\varvec{x}_F)^\perp {\mathcal {P}}_{}^{\ell -1}(F), \end{aligned}$$
$$\begin{aligned} \varvec{\mathcal {R}}^{\ell }(F)&{:}{=}\mathbf{rot}_F{\mathcal {P}}_{}^{\ell +1}(F),&\qquad \varvec{\mathcal {R}}^{\mathrm{c},\ell }(F)&{:}{=}(\varvec{x}-\varvec{x}_F){\mathcal {P}}_{}^{\ell -1}(F), \end{aligned}$$

(where \(\varvec{y}^\perp \) is a shorthand for the rotated vector \(\varrho _{-\pi /2}\varvec{y}\)) so that

$$\begin{aligned} \varvec{\mathcal {P}}_{}^{\ell }(F) = \varvec{\mathcal {G}}^{\ell }(F) \oplus \varvec{\mathcal {G}}^{\mathrm{c},\ell }(F) = \varvec{\mathcal {R}}^{\ell }(F) \oplus \varvec{\mathcal {R}}^{\mathrm{c},\ell }(F). \end{aligned}$$

These decompositions of \(\varvec{\mathcal {P}}_{}^{\ell }(F)\) (as well as those of \(\varvec{\mathcal {P}}_{}^{\ell }(T)\) in (2.6) below) result from [2, Corollary 7.4]. Notice that the direct sums in the above expression are not \(\text {L}^2\)-orthogonal in general. The \(\text {L}^2\)-orthogonal projectors on the spaces (2.3) are, with obvious notation, \(\varvec{\pi }_{\varvec{\mathcal {G}},F}^{\ell }\), \(\varvec{\pi }_{\varvec{\mathcal {G}},F}^{\mathrm{c},\ell }\), \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\ell }\), and \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},\ell }\). Similarly, for any mesh element \(T\in {\mathcal {T}}_{h}\) and any integer \(\ell \ge 0\) we introduce the following subspaces of \(\varvec{\mathcal {P}}_{}^{\ell }(T)\):

$$\begin{aligned} \varvec{\mathcal {G}}^{\ell }(T)&{:}{=}\mathbf{grad}{\mathcal {P}}_{}^{\ell +1}(T),&\qquad \varvec{\mathcal {G}}^{\mathrm{c},\ell }(T)&{:}{=}(\varvec{x}-\varvec{x}_T)\times \varvec{\mathcal {P}}_{}^{\ell -1}(T), \end{aligned}$$
$$\begin{aligned} \varvec{\mathcal {R}}^{\ell }(T)&{:}{=}\mathbf{curl}\varvec{\mathcal {P}}_{}^{\ell +1}(T),&\qquad \varvec{\mathcal {R}}^{\mathrm{c},\ell }(T)&{:}{=}(\varvec{x}-\varvec{x}_T){\mathcal {P}}_{}^{\ell -1}(T), \end{aligned}$$

so that

$$\begin{aligned} \varvec{\mathcal {P}}_{}^{\ell }(T) = \varvec{\mathcal {G}}^{\ell }(T) \oplus \varvec{\mathcal {G}}^{\mathrm{c},\ell }(T) = \varvec{\mathcal {R}}^{\ell }(T) \oplus \varvec{\mathcal {R}}^{\mathrm{c},\ell }(T). \end{aligned}$$

Also in this case, the direct sums above are not \(\text {L}^2\)-orthogonal in general. The \(\text {L}^2\)-orthogonal projectors on the spaces (2.5) are \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\ell }\), \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},\ell }\), \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\ell }\), and \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},\ell }\).

Remark 1

(Hierarchical complements) Unlike the \(\text {L}^2\)-orthogonal complements considered in [31], the Koszul complements in (2.4) and (2.6) satisfy, for all \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\) and all \(\ell \ge 1\),

$$\begin{aligned} \varvec{\mathcal {G}}^{\mathrm{c},\ell -1}(Y)\subset \varvec{\mathcal {G}}^{\mathrm{c},\ell }(Y)\quad \text { and }\quad \varvec{\mathcal {R}}^{\mathrm{c},\ell -1}(Y)\subset \varvec{\mathcal {R}}^{\mathrm{c},\ell }(Y). \end{aligned}$$

Remark 2

(Vector calculus isomorphisms on local polynomial spaces) For any polygon F, polyhedron T, and polynomial degree \(\ell \ge 0\), a consequence of the polynomial exactness [2, Corollary 7.3] is that the following mappings are isomorphisms:

$$\begin{aligned} \mathbf{rot}_F&:{\mathcal {P}}_{}^{0,\ell }(F)\xrightarrow {\cong }\varvec{\mathcal {R}}^{\ell -1}(F) \end{aligned}$$
$$\begin{aligned} {{\,\mathrm{div}\,}}_F&:\varvec{\mathcal {R}}^{\mathrm{c},\ell }(F)\xrightarrow {\cong } {\mathcal {P}}_{}^{\ell -1}(F)\,,\qquad&{{\,\mathrm{div}\,}}&:\varvec{\mathcal {R}}^{\mathrm{c},\ell }(T)\xrightarrow {\cong }{\mathcal {P}}_{}^{\ell -1}(T), \end{aligned}$$
$$\begin{aligned}&\mathbf{curl}&:\varvec{\mathcal {G}}^{\mathrm{c},\ell }(T)\xrightarrow {\cong }\varvec{\mathcal {R}}^{\ell -1}(T). \end{aligned}$$

An estimate of the norms of the inverses of these differential isomorphisms is provided in Lemma 9 in “Appendix A”.

Remark 3

(Composition of \(\text {L}^2\)-orthogonal projectors) Let \(\varvec{\mathcal {X}}\in \{\varvec{\mathcal {G}},\varvec{\mathcal {R}}\}\), \(\ell \ge -1\), and \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\). Using the definition of the \(\text {L}^2\)-orthogonal projectors, and denoting by \(\varvec{\pi }_{\varvec{\mathcal {P}},Y}^{\ell }\) the \(\text {L}^2\)-orthogonal projector on \(\varvec{\mathcal {P}}_{}^{\ell }(Y)\), it holds

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell } = \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\circ \varvec{\pi }_{\varvec{\mathcal {P}},Y}^{\ell }\quad \text { and }\quad \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell } = \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\circ \varvec{\pi }_{\varvec{\mathcal {P}},Y}^{\ell }. \end{aligned}$$

In what follows, we will need the local Nédélec and Raviart–Thomas spaces: For \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\),

$$\begin{aligned} \varvec{{\mathcal {N}}}^{\ell }(Y){:}{=}\varvec{\mathcal {G}}^{\ell -1}(Y) \oplus \varvec{\mathcal {G}}^{\mathrm{c},\ell }(Y),\qquad \varvec{\mathcal {RT}}^{\ell }(Y){:}{=}\varvec{\mathcal {R}}^{\ell -1}(Y) \oplus \varvec{\mathcal {R}}^{\mathrm{c},\ell }(Y). \end{aligned}$$

These spaces sit between \(\varvec{\mathcal {P}}_{}^{\ell -1}(Y)\) and \(\varvec{\mathcal {P}}_{}^{\ell }(Y)\) and are therefore referred to as trimmed in the FE literature. Notice that we have selected the index in (2.12) so as to reflect the maximum polynomial degrees of functions in each space and, as a result, it is shifted by \(+1\) with respect to [29, 31].

2.5 Recovery Operator

As mentioned above, the direct sums in (2.4) and (2.6) are not \(\text {L}^2\)-orthogonal. The following lemma however shows that, for any of these decompositions, a given polynomial can be recovered from its orthogonal projections on each space in the sum.

Lemma 1

(Recovery operator) Let E be a Euclidean space, S be a subspace of E, and \(S^\mathrm{c}\) be a complement (not necessarily orthogonal) of S in E. Let \(\pi _S\) and \(\pi _S^\mathrm{c}\) be, respectively, the orthogonal projections on S and \(S^\mathrm{c}\). Then, the mappings \({\mathrm{Id}}-\pi _S\pi _S^\mathrm{c}:E\rightarrow E\) and \({\mathrm{Id}}-\pi _S^\mathrm{c}\pi _S:E\rightarrow E\) are isomorphisms.

We can therefore define the recovery operator \({\mathfrak {R}}_{S,S^\mathrm{c}}(\cdot ,\cdot ):S\times S^\mathrm{c}\rightarrow E\) such that

$$\begin{aligned} {\mathfrak {R}}_{S,S^\mathrm{c}}(\varvec{b},\varvec{c})&{:}{=}({\mathrm{Id}}-\pi _S\pi _S^\mathrm{c})^{-1}(\varvec{b}-\pi _S\varvec{c}) +({\mathrm{Id}}-\pi _S^\mathrm{c}\pi _S)^{-1}(\varvec{c}-\pi _S^\mathrm{c}\varvec{b}) \nonumber \\&\qquad \forall (\varvec{b},\varvec{c})\in S\times S^\mathrm{c}. \end{aligned}$$

This operator satisfies the following properties:

$$\begin{aligned} \pi _S \big ( {\mathfrak {R}}_{S,S^\mathrm{c}}(\varvec{b},\varvec{c})\big )= & {} \varvec{b}\quad \text{ and } \quad \pi _S^\mathrm{c}\big ( {\mathfrak {R}}_{S,S^\mathrm{c}}(\varvec{b},\varvec{c})\big ) = \varvec{c}\qquad \forall (\varvec{b},\varvec{c})\in S\times S^\mathrm{c},\nonumber \\ \end{aligned}$$
$$\begin{aligned} \varvec{a}= & {} {\mathfrak {R}}_{S,S^\mathrm{c}}(\pi _S\varvec{a},\pi _S^\mathrm{c}\varvec{a})\qquad \forall \varvec{a}\in E. \end{aligned}$$


Let us denote by \(\Vert {\cdot }\Vert _{}\) the norm in E. To prove that \({\mathrm{Id}}-\pi _S\pi _S^\mathrm{c}\) is invertible, we show that the mapping \(\pi _S\pi _S^\mathrm{c}\) has a norm \(<1\), which implies

$$\begin{aligned} ({\mathrm{Id}}-\pi _S\pi _S^\mathrm{c})^{-1}=\sum _{n\ge 0}(\pi _S\pi _S^\mathrm{c})^n. \end{aligned}$$

The space E being finite dimensional, it suffices to see that, for any \(\varvec{x}\in E\) with \(\Vert \varvec{x}\Vert _{}=1\), we have \(\Vert \pi _S(\pi _S^\mathrm{c}\varvec{x})\Vert _{}<1\). Since \(\pi _S\) is an orthogonal projector, by Pythagoras’ theorem we have \(\Vert \pi _S(\pi _S^\mathrm{c}\varvec{x})\Vert _{}\le \Vert \pi _S^\mathrm{c}\varvec{x}\Vert _{}\), with equality only if \(\pi _S^\mathrm{c}\varvec{x}\in S\), that is, only if \(\pi _S^\mathrm{c}\varvec{x}=\varvec{0}\) since \(\pi _S^\mathrm{c}\varvec{x}\in S^\mathrm{c}\). In this case, \(\Vert \pi _S(\pi _S^\mathrm{c}\varvec{x})\Vert _{}=0<1\). Otherwise, \(\Vert \pi _S(\pi _S^\mathrm{c}\varvec{x})\Vert _{}<\Vert \pi _S^\mathrm{c}\varvec{x}\Vert _{}\le \Vert \varvec{x}\Vert _{}=1\), where the second inequality is a consequence of the fact that \(\pi _S^\mathrm{c}\) is an orthogonal projection. This concludes the proof that \({\mathrm{Id}}-\pi _S\pi _S^\mathrm{c}\) is an isomorphism. The invertibility of \({\mathrm{Id}}-\pi _S^\mathrm{c}\pi _S\) is obtained similarly, exchanging the roles of S and \(S^\mathrm{c}\).

Let us prove the first relation in (2.14). The second follows using the same arguments. We expand \(({\mathrm{Id}}-\pi _S\pi _S^\mathrm{c})^{-1}\) in (2.13) using the series (2.16) (and similarly for \(({\mathrm{Id}}-\pi _S^\mathrm{c}\pi _S)^{-1}\)) to write

$$\begin{aligned} \begin{aligned} \pi _S\big ({\mathfrak {R}}_{S,S^\mathrm{c}}(\varvec{b},\varvec{c})\big )&=\pi _S\sum _{n\ge 0}(\pi _S\pi _S^\mathrm{c})^n(\varvec{b}-\pi _S\varvec{c}) +\pi _S\sum _{n\ge 0}(\pi _S^\mathrm{c}\pi _S)^n(\varvec{c}-\pi _S^\mathrm{c}\varvec{b}) \\&=\left[ \pi _S\sum _{n\ge 0}(\pi _S\pi _S^\mathrm{c})^n-\pi _S\sum _{n\ge 0}(\pi _S^\mathrm{c}\pi _S)^n\pi _S^\mathrm{c}\right] \varvec{b} \\&\quad +\left[ \pi _S\sum _{n\ge 0}(\pi _S^\mathrm{c}\pi _S)^n-\pi _S\sum _{n\ge 0}(\pi _S\pi _S^\mathrm{c})^n\pi _S\right] \varvec{c}. \end{aligned} \end{aligned}$$

We have \(\pi _S\sum _{n\ge 0}(\pi _S^\mathrm{c}\pi _S)^n\pi _S^\mathrm{c}=\pi _S\sum _{n\ge 1}(\pi _S\pi _S^\mathrm{c})^n\) (we have used \(\pi _S\pi _S=\pi _S\) to introduce the pre-factor \(\pi _S\)) and the operator acting on \(\varvec{b}\) above therefore reduces to \(\pi _S\), and returns \(\varvec{b}\) since \(\varvec{b}\in S\). As for the operator acting on \(\varvec{c}\), using again \(\pi _S\pi _S=\pi _S\) shows that it is equal to 0. This concludes the proof of the first relation in (2.14).

Fix now \(\varvec{a}\in E\) and set \(\varvec{z}{:}{=}\varvec{a}-{\mathfrak {R}}_{S,S^\mathrm{c}}(\pi _S\varvec{a},\pi _S^\mathrm{c}\varvec{a})\). Applying (2.14) to \(\varvec{b}=\pi _S\varvec{a}\) and \(\varvec{c}=\pi _S^\mathrm{c}\varvec{a}\) shows that \(\pi _S\varvec{z}=\pi _S^\mathrm{c}\varvec{z}=\varvec{0}\). Since \(E=S\oplus S^\mathrm{c}\), we can write \(\varvec{z}=\varvec{z}_S+\varvec{z}_S^c\) with \(\varvec{z}_S\in S\) and \(\varvec{z}_S^\mathrm{c}\in S^\mathrm{c}\), and the definition of the orthogonal projectors on S and \(S^\mathrm{c}\) therefore yields, with \((\cdot ,\cdot )_E\) the scalar product on E,

$$\begin{aligned} \Vert \varvec{z}\Vert _{}^2=(\varvec{z},\varvec{z})_E=(\varvec{z},\varvec{z}_S)_E+(\varvec{z},\varvec{z}_S^\mathrm{c})_E= (\pi _S\varvec{z},\varvec{z}_S)_E+(\pi _S^\mathrm{c}\varvec{z},\varvec{z}_S^\mathrm{c})_E=0. \end{aligned}$$

Hence, \(\varvec{z}=\varvec{0}\) and (2.15) is established. \(\square \)

The following lemma shows that the norm of the recovery operator for the decompositions (2.4) and (2.6) is equivalent to the sum of the norms of its arguments, uniformly in h. In other words, it states that the decompositions are not just algebraic but also topological (uniformly in h). Since the recovery operator will mostly be of interest to us for these pairs of spaces, to alleviate the notations from here on we will write

$$\begin{aligned} {\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\cdot ,\cdot ){:}{=}{\mathfrak {R}}_{\varvec{\mathcal {X}}^{\ell }(Y),\varvec{\mathcal {X}}^{\mathrm{c},\ell }(Y)}(\cdot ,\cdot )\quad \forall \varvec{\mathcal {X}}\in \{\varvec{\mathcal {R}},\varvec{\mathcal {G}}\}\,,\;\forall Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}. \end{aligned}$$

Lemma 2

(Estimate on the norm of the recovery operator) For all \(\ell \ge 0\), there exists \(\alpha <1\) depending only on the mesh regularity parameter in [28, Definition 1.9] such that, for all \(\varvec{\mathcal {X}}\in \{\varvec{\mathcal {R}},\varvec{\mathcal {G}}\}\) and all \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\),

$$\begin{aligned} \Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\Vert _{Y}\le \alpha \quad \text{ and } \quad \Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\Vert _{Y}\le \alpha , \end{aligned}$$

where \(\Vert {\cdot }\Vert _{Y}\) denotes the norm induced by \(\Vert {\cdot }\Vert _{{\mathbf{L }}^2(Y)}\) on the space of endomorphisms of \(\varvec{\mathcal {P}}_{}^{\ell }(Y)\). As a result,

$$\begin{aligned} \Vert {\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\varvec{v},\varvec{w})\Vert _{{\mathbf{L }}^2(Y)} \simeq \Vert \varvec{v}\Vert _{{\mathbf{L }}^2(Y)} + \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(Y)} \qquad \forall (\varvec{v},\varvec{w})\in \varvec{\mathcal {X}}^{\ell }(Y)\times \varvec{\mathcal {X}}^{\mathrm{c},\ell }(Y). \end{aligned}$$

Remark 4

(Recovery operator and \(\text {L}^2\)-orthogonal complements) When working with \(\text {L}^2\)-orthogonal complements to \(\varvec{\mathcal {G}}^{\ell }(Y)\) and \(\varvec{\mathcal {R}}^{\ell }(Y)\), instead of the Koszul complements in (2.3) and (2.5), the recovery operator is trivial since it consists in the sum of its two arguments (its topological property (2.19) is also obvious). As mentioned in the introduction, however, the Koszul complements enable proofs of commutation and consistency properties that do not seem straightforward with orthogonal complements; the trade-off lies in having to deal with a less trivial recovery operator (although it remains a purely theoretical tool, see Remark 11), whose topological properties are more complex to establish.


\({1.~\textit{Proof of}~(2.18).}\) We estimate \(\Vert \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\ell }\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},\ell }\Vert _{T}\) for an element \(T\in {\mathcal {T}}_{h}\), the other cases being identical. The linear mapping \({\mathbb {R}}^3\ni \varvec{x}\mapsto h_T^{-1}(\varvec{x}-\varvec{x}_T)\in {\mathbb {R}}^3\) maps T onto a polyhedron \({\widehat{T}}\) of diameter 1, transports the spaces \(\varvec{\mathcal {P}}_{}^{\ell }(T)\), \(\varvec{\mathcal {G}}^{\ell }(T)\) and \(\varvec{\mathcal {G}}^{\mathrm{c},\ell }(T)\) only their equivalent over \({\widehat{T}}\), and simply scales the \(\text {L}^2\)-norm of functions. As a consequence, \(\Vert \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\ell }\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},\ell }\Vert _{T}=\Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\Vert _{\widehat{T}}\), and we only have to estimate the latter quantity.

Assume that we establish the existence of \(\alpha <1\), depending only on the mesh regularity parameter, such that

$$\begin{aligned} \int _{{\widehat{T}}}\varvec{v}\cdot \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\varvec{v} \le \alpha ^2 \Vert \varvec{v}\Vert _{{\mathbf{L }}^2({\widehat{T}})}\Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\varvec{v}\Vert _{{\mathbf{L }}^2({\widehat{T}})} \quad \forall \varvec{v}\in \varvec{\mathcal {G}}^{\mathrm{c},\ell }({\widehat{T}})=\varvec{x}\times \varvec{\mathcal {P}}_{}^{\ell -1}({\widehat{T}}). \end{aligned}$$

Notice that, with the selected mapping, \(\varvec{x}_T\) is mapped onto \(\varvec{0}\in {\widehat{T}}\). Then, for all \(\varvec{w}\in \varvec{\mathcal {P}}_{}^{\ell }(T)\),

$$\begin{aligned} \int _{{\widehat{T}}}\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w})\cdot \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w}) ={}&\int _{{\widehat{T}}}\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w}\cdot \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w}) \nonumber \\ \le {}&\alpha ^2\Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w}\Vert _{{\mathbf{L }}^2({\widehat{T}})}\Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w}\Vert _{{\mathbf{L }}^2({\widehat{T}})} \nonumber \\ \le {}&\alpha ^2\Vert \varvec{w}\Vert _{{\mathbf{L }}^2({\widehat{T}})}^2, \end{aligned}$$

where the equality comes from the definition of \(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\), the first inequality is obtained applying (2.20) to \(\varvec{v}=\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\varvec{w}\), and the conclusion is obtained using the fact that \(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\) and \(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\) are both \({\mathbf{L }}^2({\widehat{T}})\)-orthogonal projectors and have thus norm 1. The bound (2.21) shows that \(\Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\ell }\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}}^{\mathrm{c},\ell }\Vert _{\widehat{T}}\le \alpha \) and concludes the proof.

We therefore only have to establish (2.20). Note that, in the rest of the proof, polynomials are indifferently considered over \({\mathbb {R}}^3\) or some of its open subsets. We also remark that, by choice of \(\varvec{x}_T\) in T and of the mapping \(T\mapsto {\widehat{T}}\), we have \(B(\rho )\subset {\widehat{T}}\subset B(1)\), where B(r) is the ball in \({\mathbb {R}}^d\) centered at \(\varvec{0}\) and of radius r. The proof of (2.20) is done by contradiction: if this relation does not hold, there exists a sequence \(({\widehat{T}}_n)_{n\in {\mathbb {N}}}\) of open sets between \(B(\rho )\) and B(1), a sequence \((\alpha _n)_{n\in {\mathbb {N}}}\) converging to 1, and a sequence \((\varvec{v}_n)_{n\in {\mathbb {N}}}\) in \(\varvec{x}\times {\mathcal {P}}_{}^{\ell -1}({\mathbb {R}}^3)\) such that

$$\begin{aligned} \int _{{\widehat{T}}_n}\varvec{v}_n\cdot \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n> \alpha _n^2 \Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}\Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}. \end{aligned}$$

Upon replacing \(\varvec{v}_n\) by \(\varvec{v}_n/\Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}\), we can assume that \(\Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}=1\). Since \(B(\rho )\subset {\widehat{T}}_n\), we infer that \(\Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2(B(\rho ))}\le \Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}=1\); hence, \((\varvec{v}_n)_{n\in {\mathbb {N}}}\) is bounded for the \({\mathbf{L }}^2(B(\rho ))\)-norm in the finite-dimensional space \(\varvec{x}\times {\mathcal {P}}_{}^{\ell -1}({\mathbb {R}}^3)\), and converges up to a subsequence to some \(\varvec{v}\in \varvec{x}\times {\mathcal {P}}_{}^{\ell -1}({\mathbb {R}}^3)\). Likewise, we can assume that \(\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n\rightarrow \varvec{w}\) in \(\varvec{\mathcal {G}}^{\ell }({\mathbb {R}}^3)\). The characteristic function \(\mathbf{1 }_{{\widehat{T}}_n}\) satisfies \(\mathbf{1 }_{B(\rho )}\le \mathbf{1 }_{{\widehat{T}}_n}\le \mathbf{1 }_{B(1)}\) and converges therefore, up to a subsequence, in \(L^\infty (B(1))\) weak-\(\star \) towards some function \(\theta \) satisfying \(\mathbf{1 }_{B(\rho )}\le \theta \le \mathbf{1 }_{B(1)}\). Noting that

$$\begin{aligned}&\int _{{\widehat{T}}_n}\varvec{v}_n\cdot \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n=\int _{B(1)}\mathbf{1 }_{{\widehat{T}}_n}\varvec{v}_n\cdot \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n\,, \end{aligned}$$
$$\begin{aligned}&\Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}^2=\int _{B(1)}\mathbf{1 }_{{\widehat{T}}_n}|\varvec{v}_n|^2, \quad \text{ and } \quad \Vert \varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}^2=\int _{B(1)}\mathbf{1 }_{{\widehat{T}}_n}|\varvec{\pi }_{\varvec{\mathcal {G}},{\widehat{T}}_n}^{\ell }\varvec{v}_n|^2, \end{aligned}$$

the aforementioned convergences enable us to take the limit \(n\rightarrow \infty \) of (2.22) and find

$$\begin{aligned} \int _{B(1)}\theta \varvec{v}\cdot \varvec{w}\ge \Vert \sqrt{\theta } \varvec{v}\Vert _{{\mathbf{L }}^2(B(1))}\Vert \sqrt{\theta } \varvec{w}\Vert _{{\mathbf{L }}^2(B(1))}. \end{aligned}$$

The Cauchy–Schwarz inequality, on the other hand, gives

$$\begin{aligned} \int _{B(1)}\theta \varvec{v}\cdot \varvec{w}= \int _{B(1)}\sqrt{\theta } \varvec{v}\cdot \sqrt{\theta }\varvec{w}\le \Vert \sqrt{\theta } \varvec{v}\Vert _{{\mathbf{L }}^2(B(1))}\Vert \sqrt{\theta } \varvec{w}\Vert _{{\mathbf{L }}^2(B(1))}, \end{aligned}$$

which, combined with (2.23), shows that,

$$\begin{aligned} \int _{B(1)}\theta \varvec{v}\cdot \varvec{w}=\Vert \sqrt{\theta } \varvec{v}\Vert _{{\mathbf{L }}^2(B(1))}\Vert \sqrt{\theta } \varvec{w}\Vert _{{\mathbf{L }}^2(B(1))}. \end{aligned}$$

Hence, \(\sqrt{\theta } \varvec{v}\) and \(\sqrt{\theta } \varvec{w}\) are co-linear. Restricted to \(B(\rho )\), over which \(\theta =1\), this proves that \(\varvec{v}\) and \(\varvec{w}\) are co-linear. Since \(\varvec{v}\in \varvec{\mathcal {G}}^{\mathrm{c},\ell }(B(\rho ))\) and \(\varvec{w}\in \varvec{\mathcal {G}}^{\ell }(B(\rho ))\), we infer that \(\varvec{v}=\varvec{w}=\varvec{0}\) on \(B(\rho )\), and thus on \({\mathbb {R}}^3\). This leads to \(0=\Vert \sqrt{\theta } \varvec{v}\Vert _{{\mathbf{L }}^2(B(1))}=\lim _{n\rightarrow \infty }\Vert \varvec{v}_n\Vert _{{\mathbf{L }}^2({\widehat{T}}_n)}=1\), which yields the sought contradiction.

\({2.~\textit{Proof of}~(2.19).}\) By (2.13), recalling the abridged notation (2.17), we have

$$\begin{aligned} \Vert {\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\varvec{v},\varvec{w})\Vert _{{\mathbf{L }}^2(Y)}\le & {} \Vert ({\mathrm{Id}}-\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell })^{-1}\Vert _{Y}\left( \Vert \varvec{v}\Vert _{{\mathbf{L }}^2(Y)} + \Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\varvec{w}\Vert _{{\mathbf{L }}^2(Y)}\right) \\&+ \Vert ({\mathrm{Id}}-\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell })^{-1}\Vert _{Y}\left( \Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\varvec{v}\Vert _{{\mathbf{L }}^2(Y)} + \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(Y)}\right) . \end{aligned}$$

The expansion (2.16) and the estimates (2.18) show that

$$\begin{aligned} {\Vert ({\mathrm{Id}}-\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell })^{-1}\Vert _{Y}}\le \sum _{n\ge 0}\Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\Vert _{Y}^n\le \sum _{n\ge 0}\alpha ^n=\frac{1}{1-\alpha } \end{aligned}$$

and, similarly, \({\Vert ({\mathrm{Id}}-\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell })^{-1}\Vert _{Y}}\le \frac{1}{1-\alpha }\). Since \(\Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\varvec{w}\Vert _{{\mathbf{L }}^2(Y)}\le \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(Y)}\) and \(\Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\varvec{v}\Vert _{{\mathbf{L }}^2(Y)}\le \Vert \varvec{v}\Vert _{{\mathbf{L }}^2(Y)}\) as both \(\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\) and \(\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\) are \(\text {L}^2\)-orthogonal projectors, we conclude that

$$\begin{aligned} \Vert {\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\varvec{v},\varvec{w})\Vert _{{\mathbf{L }}^2(Y)} \le \frac{2}{1-\alpha }\left( \Vert \varvec{v}\Vert _{{\mathbf{L }}^2(Y)} + \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(Y)}\right) . \end{aligned}$$

To prove the converse inequality, we use (2.14) along with the \(\text {L}^2\)-boundedness of \(\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }\) and \(\varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }\) to write

$$\begin{aligned} \begin{aligned} \Vert \varvec{v}\Vert _{{\mathbf{L }}^2(Y)} + \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(Y)}&= \Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\ell }{\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\varvec{v},\varvec{w})\Vert _{{\mathbf{L }}^2(Y)} + \Vert \varvec{\pi }_{\varvec{\mathcal {X}},Y}^{\mathrm{c},\ell }{\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\varvec{v},\varvec{w})\Vert _{{\mathbf{L }}^2(Y)} \\&\le 2\Vert {\mathfrak {R}}_{{\varvec{\mathcal {X}},Y}}^{\ell }(\varvec{v},\varvec{w})\Vert _{{\mathbf{L }}^2(Y)}. \end{aligned} \end{aligned}$$

This concludes the proof of the norm equivalence (2.19). \(\square \)

3 Discrete de Rham Complex

We define a discrete counterpart of the de Rham complex (1.1). Throughout the rest of this section, we fix an integer \(k\ge 0\) corresponding to the polynomial degree of the discrete sequence. The rules used in the notations are detailed in “Appendix C”, and the main DDR-related notations are summarized in Table 4.

3.1 Discrete Spaces

The DDR spaces are spanned by vectors of polynomials whose components, each attached to a mesh entity, are selected in order to:

  1. 1.

    Enable the reconstruction of consistent local discrete vector calculus operators and (scalar or vector) potentials in full polynomial spaces of total degree \(\le k\) (or \(\le k+1\) for the potentials associated with the gradient);

  2. 2.

    Give rise to exact local sequences on mesh elements and faces.

Specifically, the discrete counterparts of \(\text {H}^{1}(\Omega )\), \(\mathbf{H }(\mathbf{curl};\Omega )\), \(\mathbf{H }({{\,\mathrm{div}\,}};\Omega )\) and \(\text {L}^2(\Omega )\) are respectively defined as follows:

$$\begin{aligned} \begin{aligned} {\underline{X}}_{\mathbf{grad},h}^k{:}{=}\Big \{ {\underline{q}}_h&=\big ((q_T)_{T\in {\mathcal {T}}_{h}},(q_F)_{F\in {\mathcal {F}}_{h}},q_{{\mathcal {E}}_{h}}\big )\,:\,\\&q_T\in {\mathcal {P}}_{}^{k-1}(T)\text { for all }T\in {\mathcal {T}}_{h}, \\&q_F\in {\mathcal {P}}_{}^{k-1}(F)\text { for all }F\in {\mathcal {F}}_{h}, \\&\text {and }q_{{\mathcal {E}}_{h}}\in {\mathcal {P}}_{\mathrm{c}}^{k+1}({\mathcal {E}}_{h})\Big \}, \end{aligned} \end{aligned}$$
$$\begin{aligned} \begin{aligned} \underline{\varvec{X}}_{\mathbf{curl},h}^k{:}{=}\Big \{ \underline{\varvec{v}}_h&=\big ( (\varvec{v}_{\varvec{\mathcal {R}},T},\varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c})_{T\in {\mathcal {T}}_{h}},(\varvec{v}_{\varvec{\mathcal {R}},F},\varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c})_{F\in {\mathcal {F}}_{h}}, (v_E)_{E\in {\mathcal {E}}_{h}} \big )\,:\,\\&\qquad \varvec{v}_{\varvec{\mathcal {R}},T}\in \varvec{\mathcal {R}}^{k-1}(T)\text { and }\varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c}\in \varvec{\mathcal {R}}^{\mathrm{c},k}(T)\text { for all }T\in {\mathcal {T}}_{h}, \\&\qquad \varvec{v}_{\varvec{\mathcal {R}},F}\in \varvec{\mathcal {R}}^{k-1}(F)\text { and } \varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}\in \varvec{\mathcal {R}}^{\mathrm{c},k}(F)\text { for all }F\in {\mathcal {F}}_{h}, \\&\qquad \text {and }v_E\in {\mathcal {P}}_{}^{k}(E)\text { for all }E\in {\mathcal {E}}_{h}\Big \}, \end{aligned} \end{aligned}$$
$$\begin{aligned} \begin{aligned} \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k{:}{=}\Big \{ \underline{\varvec{w}}_h&=\big ((\varvec{w}_{\varvec{\mathcal {G}},T},\varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c})_{T\in {\mathcal {T}}_{h}}, (w_F)_{F\in {\mathcal {F}}_{h}}\big )\,:\,\\&\qquad \varvec{w}_{\varvec{\mathcal {G}},T}\in \varvec{\mathcal {G}}^{k-1}(T)\text { and } \varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}\in \varvec{\mathcal {G}}^{\mathrm{c},k}(T)\text { for all }T\in {\mathcal {T}}_{h}, \\&\qquad \text {and }w_F\in {\mathcal {P}}_{}^{k}(F)\text { for all }F\in {\mathcal {F}}_{h}\Big \}, \end{aligned} \end{aligned}$$


$$\begin{aligned} {\mathcal {P}}_{}^{k}({\mathcal {T}}_{h}){:}{=}\left\{ q_h\in \text {L}^2(\Omega )\,:\,(q_h)_{|T}\in {\mathcal {P}}_{}^{k}(T)\text { for all }T\in {\mathcal {T}}_{h}\right\} . \end{aligned}$$

Remark 5

(Component of \({\underline{X}}_{\mathbf{grad},h}^k\) on the mesh edge skeleton) By the isomorphism (2.2) with \({\mathfrak {E}}={\mathcal {E}}_{h}\), we can replace the space \({\mathcal {P}}_{\mathrm{c}}^{k+1}({\mathcal {E}}_{h})\) in the definition of \({\underline{X}}_{\mathbf{grad},h}^k\) by the Cartesian product space . This product space is easier to manipulate in practical implementations of the DDR complex.

Remark 6

(Components of \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) and \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\)) For each mesh element or face \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\), the pair of components \((\varvec{v}_{\varvec{\mathcal {R}},Y},\varvec{v}_{\varvec{\mathcal {R}},Y}^\mathrm{c})\) of a vector in \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) defines an element in \(\varvec{\mathcal {RT}}^{k}(Y)\). Similarly, for any \(T\in {\mathcal {T}}_{h}\), each pair of element components \((\varvec{w}_{\varvec{\mathcal {G}},T},\varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c})\) of a vector in \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) defines an element in \(\varvec{{\mathcal {N}}}^{k}(T)\). In the exposition, we prefer to distinguish these components as they play very different roles in the construction.

Table 1 Polynomial components attached to each mesh vertex \(V\in {\mathcal {V}}_h\), edge \(E\in {\mathcal {E}}_{h}\), face \(F\in {\mathcal {F}}_{h}\), and element \(T\in {\mathcal {T}}_{h}\) for each of the DDR spaces
Table 2 Number of degrees of freedom of the local DDR spaces for tetrahedral and hexahedral elements, and comparison with Raviart–Thomas–Nédélec (RTN) finite element spaces (in parentheses)

The polynomial components attached to mesh vertices, edges, faces, and elements for each of the DDR spaces are summarized in Table 1 (notice that we have accounted for Remark 5 for \({\underline{X}}_{\mathbf{grad},h}^k\)). An inspection of Table 1 reveals that its diagonal contains full polynomial spaces on the mesh entities of dimension corresponding to the index of the space in the sequence (with the convection that \({\mathcal {P}}_{}^{k}(V){:}{=}{\mathbb {R}}\) for any vertex \(V\in {\mathcal {V}}_h\)). The components collected in the upper triangular portion of the table are non-zero only for \(k\ge 1\), and encode additional information required for the reconstruction of high-order discrete vector calculus operators and potentials. In particular, the complements \(\varvec{\mathcal {R}}^{\mathrm{c},k}(F)\), \(\varvec{\mathcal {R}}^{\mathrm{c},k}(T)\), and \(\varvec{\mathcal {G}}^{\mathrm{c},k}(T)\) complete the information contained, respectively, in the face curl, element curl and tangential trace, and element divergence to construct the corresponding face or element vector potentials; see Sects. 3.3.2, 4.2, and 4.3.

In what follows, given \(\bullet \in \{\mathbf{grad},\mathbf{curl},{{\,\mathrm{div}\,}}\}\) and a mesh entity Y of dimension greater than or equal to the index of \({\underline{X}}_{\bullet ,h}^k\), we denote by \({\underline{X}}_{\bullet ,Y}^k\) the restriction of this space to Y, i.e., \({\underline{X}}_{\bullet ,Y}^k\) contains the polynomial components attached to Y and to all the mesh entities that lie on its boundary.

Remark 7

(Comparison with RaviartThomasNédélec finite elements) When T is a tetrahedron or a hexahedron, the local spaces in the DDR sequence can be compared to classical (Raviart–Thomas–Nédélec) FE spaces. The number of degrees of freedom in each case for polynomial degrees \(k\in \{0,1,2\}\) (the most commonly used) is reported in Table 2. For \(k\ge 1\), the DDR construction leads to slightly larger spaces on tetrahedra and to significantly smaller spaces on hexahedra. The number of degrees of freedom for the DDR spaces could be further reduced adapting the serendipity techniques of Virtual Elements [6]; this topic is left for a future work.

For codes aiming at general meshes, the implementation of the DDR spaces requires the local (element-by-element) computation of discrete vector operators and potentials, which is an additional cost with respect to traditional FE codes. It should be noticed, however, that: (1) these computations are an embarrassingly parallel task that scales with the number of mesh elements, and are therefore asymptotically less expensive than the resolution of the algebraic systems (see, e.g., Fig. 3); (2) this cost can be substantially reduced when dealing with meshes composed of a finite number of element shapes using standard reference element techniques; (3) it possible to combine the FE and DDR approaches on a given mesh (using the former on elements of standard shape and the latter on elements of more general shape, possibly resulting from local mesh refinement).

3.2 Interpolators

In the following, for all \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\), we set

$$\begin{aligned} q_E{:}{=}(q_{{\mathcal {E}}_{h}})_{|E}\in {\mathcal {P}}_{}^{k+1}(E). \end{aligned}$$

The interpolators on the DDR spaces are defined collecting component-wise \(\text {L}^2\)-projections. Specifically \({\underline{I}}_{\mathbf{grad},h}^k:\text {C}^{0}({\overline{\Omega }})\rightarrow {\underline{X}}_{\mathbf{grad},h}^k\) is such that, for all \(q\in \text {C}^{0}({\overline{\Omega }})\),

$$\begin{aligned} \begin{aligned}&{\underline{I}}_{\mathbf{grad},h}^k q {:}{=}\big ((\pi _{{\mathcal {P}},T}^{k-1} q_{|T})_{T\in {\mathcal {T}}_{h}},(\pi _{{\mathcal {P}},F}^{k-1} q_{|F})_{F\in {\mathcal {F}}_{h}},q_{{\mathcal {E}}_{h}}\big )\in {\underline{X}}_{\mathbf{grad},h}^k \\&\quad \text { where }\pi _{{\mathcal {P}},E}^{k-1} (q_{{\mathcal {E}}_{h}})_{|E}=\pi _{{\mathcal {P}},E}^{k-1} q_{|E} \text { for all }E\in {\mathcal {E}}_{h}\\&\qquad \text { and }q_{{\mathcal {E}}_{h}}(\varvec{x}_V)=q(\varvec{x}_V)\text { for all }V\in {\mathcal {V}}_h. \end{aligned} \end{aligned}$$

\(\underline{\varvec{I}}_{\mathbf{curl},h}^k:{\mathbf{C }}^{0}({\overline{\Omega }})\rightarrow \underline{\varvec{X}}_{\mathbf{curl},h}^k\) is defined setting, for all \(\varvec{v}\in {\mathbf{C }}^{0}({\overline{\Omega }})\),

$$\begin{aligned} \begin{aligned} \underline{\varvec{I}}_{\mathbf{curl},h}^k\varvec{v}{:}{=}\big ({}&(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\varvec{v}_{|T},\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\varvec{v}_{|T})_{T\in {\mathcal {T}}_{h}},\\&(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\varvec{v}_{{\mathrm{t}},F},\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\varvec{v}_{{\mathrm{t}},F})_{F\in {\mathcal {F}}_{h}},\\&(\pi _{{\mathcal {P}},E}^{k}(\varvec{v}_{|E}\cdot \varvec{t}_E)_{E\in {\mathcal {E}}_{h}} \big ), \end{aligned} \end{aligned}$$

where \(\varvec{v}_{{\mathrm{t}},F}{:}{=}\varvec{n}_F\times (\varvec{v}_{|F}\times \varvec{n}_F)\) denotes the tangent trace of \(\varvec{v}\) over F. Finally, \(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}:{\mathbf{H }}^{1}(\Omega )\rightarrow \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) is such that, for all \(\varvec{w}\in {\mathbf{H }}^{1}(\Omega )\),

$$\begin{aligned} \underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}\varvec{w}{:}{=}\big ( (\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\varvec{w}_{|T},\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\varvec{w}_{|T})_{T\in {\mathcal {T}}_{h}}, (\pi _{{\mathcal {P}},F}^{k}(\varvec{w}_{|F}\cdot \varvec{n}_F)_{F\in {\mathcal {F}}_{h}} \big ). \end{aligned}$$

The restriction of the above interpolators to a mesh entity Y of dimension larger than or equal to the index of the corresponding space in the sequence (see Table 1) is denoted replacing the subscript h by Y. Finally, we let \(\pi _{{\mathcal {P}},h}^{k}:\text {L}^2(\Omega )\rightarrow {\mathcal {P}}_{}^{k}({\mathcal {T}}_{h})\) denote the global \(\text {L}^2\)-orthogonal projector such that, for all \(q\in \text {L}^2(\Omega )\), \((\pi _{{\mathcal {P}},h}^{k}q)_{|T} = \pi _{{\mathcal {P}},T}^{k} q_{|T}\) for all \(T\in {\mathcal {T}}_{h}\).

3.3 Discrete Vector Calculus Operators

We define in this section the discrete vector calculus operators that appear in the DDR sequence, obtained collecting the \(\text {L}^2\)-orthogonal projections of local discrete operators mapping on full polynomial spaces. In what follows, the operators that only appear in the discrete sequence (3.37) through projections are denoted in sans serif font, while those appearing verbatim (without projection) in the sequence are in standard font.

3.3.1 Gradient

The discrete counterpart of the gradient operator in the DDR sequence maps on \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\), and therefore requires to define local gradients on mesh edges, faces, and elements.

For any \(E\in {\mathcal {E}}_{h}\), the edge gradient \(G_E^{k}:{\underline{X}}_{\mathbf{grad},E}^k\rightarrow {\mathcal {P}}_{}^{k}(E)\) is defined as: For all \(q_E\in {\underline{X}}_{\mathbf{grad},E}^k={\mathcal {P}}_{}^{k+1}(E)\),

$$\begin{aligned} G_E^{k}q_E {:}{=}q_E', \end{aligned}$$

where the derivative is taken along E according to the orientation of \(\varvec{t}_E\).

For any \(F\in {\mathcal {F}}_{h}\), the face gradient \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}:{\underline{X}}_{\mathbf{grad},F}^k\rightarrow \varvec{\mathcal {P}}_{}^{k}(F)\) is such that, for all \({\underline{q}}_F = (q_F, q_{{\mathcal {E}}_{F}})\in {\underline{X}}_{\mathbf{grad},F}^k\) and all \(\varvec{w}_F\in \varvec{\mathcal {P}}_{}^{k}(F)\),

$$\begin{aligned} \int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \varvec{w}_F&= -\int _F q_F{{\,\mathrm{div}\,}}_F\varvec{w}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q_{{\mathcal {E}}_{F}}(\varvec{w}_F\cdot \varvec{n}_{FE}) \nonumber \\&= \int _F \mathbf{grad}_F q_F\cdot \varvec{w}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E (q_{{\mathcal {E}}_{F}} - q_F) (\varvec{w}_F\cdot \varvec{n}_{FE}). \end{aligned}$$

The existence and uniqueness of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\) in \(\varvec{\mathcal {P}}_{}^{k}(F)\) follow from the Riesz representation theorem applied to this space equipped with the usual \(\text {L}^2\)-product. Similar considerations hold for the other discrete vector calculus operators defined below, and will not be repeated.

The scalar trace \(\gamma _F^{k+1}:{\underline{X}}_{\mathbf{grad},F}^k\rightarrow {\mathcal {P}}_{}^{k+1}(F)\) is such that, for all \({\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k\),

$$\begin{aligned} \int _F\gamma _F^{k+1}{\underline{q}}_F{{\,\mathrm{div}\,}}_F\varvec{v}_F= & {} -\int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \varvec{v}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q_{{\mathcal {E}}_{F}}(\varvec{v}_F\cdot \varvec{n}_{FE}) \nonumber \\&\qquad \forall \varvec{v}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k+2}(F). \end{aligned}$$

This relation defines \(\gamma _F^{k+1}{\underline{q}}_F\) uniquely in \({\mathcal {P}}_{}^{k+1}(F)\) owing to the isomorphism property (2.9) with \(\ell =k+2\).

Remark 8

(Validity of (3.10)) The relation (3.10) holds, in fact, for any \(\varvec{v}_F\in \varvec{\mathcal {R}}^{k}(F)\oplus \varvec{\mathcal {R}}^{\mathrm{c},k+2}(F)\). To check it, take \(\varvec{v}_F\in \varvec{\mathcal {R}}^{k}(F)\) and notice that the left-hand side vanishes owing to \({{\,\mathrm{div}\,}}_F\varvec{v}_F=0\), while the right-hand side vanishes owing to the definition (3.9) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\) and again \({{\,\mathrm{div}\,}}_F\varvec{v}_F=0\). This means, in particular, that (3.10) holds for any \(\varvec{v}_F\in \varvec{\mathcal {RT}}^{k+1}(F)\subset \varvec{\mathcal {R}}^{k}(F)\oplus \varvec{\mathcal {R}}^{\mathrm{c},k+2}(F)\) (see Remark 1).

For all \(T\in {\mathcal {T}}_{h}\), the element gradient \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}:{\underline{X}}_{\mathbf{grad},T}^k\rightarrow \varvec{\mathcal {P}}_{}^{k}(T)\) is defined such that, for all \({\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k\) and all \(\varvec{w}_T\in \varvec{\mathcal {P}}_{}^{k}(T)\),

$$\begin{aligned} \int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \varvec{w}_T&= -\int _T q_T{{\,\mathrm{div}\,}}\varvec{w}_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\gamma _F^{k+1}{\underline{q}}_F(\varvec{w}_T\cdot \varvec{n}_F) \nonumber \\&= \int _T \mathbf{grad}q_T\cdot \varvec{w}_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F(\gamma _F^{k+1}{\underline{q}}_F-q_T)(\varvec{w}_T\cdot \varvec{n}_F), \end{aligned}$$

where we have performed an integration by parts on the first term in the right-hand side to pass to the second line.

Lemma 3

(Consistency properties) The edge, face, and element gradients, and scalar trace satisfy the following consistency properties:

$$\begin{aligned}&\forall E\in {\mathcal {E}}_{h}&\qquad G_E^{k}\big ({\underline{I}}_{\mathbf{grad},E}^k q\big )&= \pi _{{\mathcal {P}},E}^{k} (q')&\qquad&\forall q\in \text {H}^{1}(E), \end{aligned}$$
$$\begin{aligned}&\forall F\in {\mathcal {F}}_{h}&\qquad {{{\mathbf {\mathsf{{G}}}}}}_F^{k}\big ({\underline{I}}_{\mathbf{grad},F}^k q\big )&= \mathbf{grad}_F q&\qquad&\forall q\in {\mathcal {P}}_{}^{k+1}(F), \end{aligned}$$
$$\begin{aligned}&\forall F\in {\mathcal {F}}_{h}&\qquad \gamma _F^{k+1}\big ({\underline{I}}_{\mathbf{grad},F}^k q\big )&= q&\qquad&\forall q\in {\mathcal {P}}_{}^{k+1}(F), \end{aligned}$$
$$\begin{aligned}&\forall F\in {\mathcal {F}}_{h}&\qquad \pi _{{\mathcal {P}},F}^{k-1}\big (\gamma _F^{k+1}{\underline{q}}_F\big )&= q_F&\qquad&\forall {\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k, \end{aligned}$$
$$\begin{aligned}&\forall T\in {\mathcal {T}}_{h}&\qquad {{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big )&= \mathbf{grad}q&\qquad&\forall q\in {\mathcal {P}}_{}^{k+1}(T). \end{aligned}$$


Let us prove (3.12). Take \(q\in \text {H}^{1}(E)\). For all \(r_E\in {\mathcal {P}}_{}^{k}(E)\), denoting by \(\varvec{x}_{V_1}\) and \(\varvec{x}_{V_2}\) the coordinates of the vertices \(V_1\) and \(V_2\) of E, oriented so that \(\varvec{t}_E\) points from \(V_1\) to \(V_2\), we have

$$\begin{aligned} \int _E ({\underline{I}}_{\mathbf{grad},E}^kq)'r_E&=({\underline{I}}_{\mathbf{grad},E}^kq\, r_E)(\varvec{x}_{V_2}) - ({\underline{I}}_{\mathbf{grad},E}^kq\, r_E)(\varvec{x}_{V_1}) - \int _E ({\underline{I}}_{\mathbf{grad},E}^kq) r_E' \\&=(q\, r_E)(\varvec{x}_{V_2})-(q\, r_E)(\varvec{x}_{V_1}) - \int _E q r_E' = \int _E q' r_E, \end{aligned}$$

where we have used an integration by parts in the first line, obtained the second equality applying the definition of \({\underline{I}}_{\mathbf{grad},E}^kq\in {\mathcal {P}}_{}^{k+1}(E)\) (which satisfies \(({\underline{I}}_{\mathbf{grad},E}^kq)(\varvec{x}_V)=q(\varvec{x}_V)\) for all \(V\in {\mathcal {V}}_{E}\) and \(\pi _{{\mathcal {P}},E}^{k-1}({\underline{I}}_{\mathbf{grad},E}^kq)=\pi _{{\mathcal {P}},E}^{k-1}q\)) together with \(r_E'\in {\mathcal {P}}_{}^{k-1}(E)\), and used another integration by parts to conclude. This proves that \(({\underline{I}}_{\mathbf{grad},E}^kq)'=\pi _{{\mathcal {P}},E}^{k}(q')\).

Relation (3.13) can be deduced as in [31, Proposition 4.1]. To prove (3.14), we write (3.10) for \({\underline{q}}_F = {\underline{I}}_{\mathbf{grad},F}^k q\) with \(q\in {\mathcal {P}}_{}^{k+1}(T)\), use (3.13), and notice that \(q_{{\mathcal {E}}_{F}} = q_{|\partial F}\) (since \(q_{|\partial F}\in {\mathcal {P}}_{c}^{k+1}({\mathcal {E}}_{F})\)) to get, for all \(\varvec{v}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k+2}(F)\),

$$\begin{aligned} \int _F\gamma _F^{k+1}({\underline{I}}_{\mathbf{grad},F}^k q){{\,\mathrm{div}\,}}_F\varvec{v}_F= & {} -\int _F\mathbf{grad}_F q\cdot \varvec{v}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q_{|\partial F}(\varvec{v}_F\cdot \varvec{n}_{FE}) \\= & {} \int _F q{{\,\mathrm{div}\,}}_F\varvec{v}_F. \end{aligned}$$

The isomorphism property (2.9) with \(\ell =k+2\) then concludes the proof that \(\gamma _F^{k+1}({\underline{I}}_{\mathbf{grad},F}^k q)=q\).

The equality (3.15) follows from (3.10) written for \(\varvec{v}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k}(F)\) (this choice is made possible by (2.7)) after replacing the full face gradient \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}\) by its definition (3.9), simplifying the boundary terms, and invoking again the isomorphism property (2.9), this time with \(\ell =k\).

Finally, (3.16) can be established from (3.14) following the ideas in [31, Lemma 5.1]. \(\square \)

The following proposition contains a stronger version of [31, Eq. (5.16)], with test function taken in the Nédélec space \(\varvec{{\mathcal {N}}}^{k+1}(T)\) instead of \(\varvec{\mathcal {P}}_{}^{k}(T)\).

Proposition 1

(Link between element and face gradients) For all \(T\in {\mathcal {T}}_{h}\) and all \(({\underline{q}}_T,\varvec{z}_T)\in {\underline{X}}_{\mathbf{grad},T}^k\times \varvec{{\mathcal {N}}}^{k+1}(T)\),

$$\begin{aligned} \int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \mathbf{curl}\varvec{z}_T = -\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot (\varvec{z}_T\times \varvec{n}_F). \end{aligned}$$


Writing (3.11) with \(\varvec{w}_T = \mathbf{curl}\varvec{z}_T\in \varvec{\mathcal {P}}_{}^{k}(T)\) and recalling the relation \({{\,\mathrm{div}\,}}\mathbf{curl}\varvec{z}_T=0\), we have

$$\begin{aligned} \begin{aligned} \int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \mathbf{curl}\varvec{z}_T&= \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\gamma _F^{k+1}{\underline{q}}_F(\mathbf{curl}\varvec{z}_T\cdot \varvec{n}_F) \\&= \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\gamma _F^{k+1}{\underline{q}}_F{{\,\mathrm{div}\,}}_F(\varvec{z}_T\times \varvec{n}_F), \end{aligned} \end{aligned}$$

the last equality being a consequence of [31, Eq. (3.7)]. To conclude, we invoke (3.10) with \(\varvec{v}_F=(\varvec{z}_T)_{|F}\times \varvec{n}_F\in \varvec{\mathcal {RT}}^{k+1}(F)\) (cf. (A.5) and Remark 8) and cancel the edge terms using [31, Eqs. (5.13) and (5.14)]. \(\square \)

The global discrete gradient \(\underline{\varvec{G}}_h^{k}:{\underline{X}}_{\mathbf{grad},h}^k\rightarrow \underline{\varvec{X}}_{\mathbf{curl},h}^k\) is obtained collecting the projections of each local gradient on the space attached to the corresponding mesh entity: For all \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\),

$$\begin{aligned} \begin{aligned} \underline{\varvec{G}}_h^{k}{\underline{q}}_h{:}{=}\Big (&\big ( \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big ),\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big ) \big )_{T\in {\mathcal {T}}_{h}}, \\&\big ( \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big ),\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big ) \big )_{F\in {\mathcal {F}}_{h}}, \\&( G_E^{k}q_E )_{E\in {\mathcal {E}}_{h}} \Big ). \end{aligned} \end{aligned}$$

Remark 9

(Practical implementation) In schemes based on the DDR sequence, the discrete gradient (3.18) only appears as an argument of the discrete \(\text {L}^2\)-product on \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) (see (4.15) below), that is, composed with the scalar trace and potential reconstruction on this space. Thus, leveraging (4.29) below, one never has to implement \(\underline{\varvec{G}}_h^{k}\), as only the full element gradients \(({{{\mathbf {\mathsf{{G}}}}}}_T^{k})_{T\in {\mathcal {T}}_{h}}\) are required. Similar considerations hold for the discrete curl defined by (3.31) below (see also [29, Remark 7] on this matter).

Notice that this strategy differs from the one often pursued in the context of Virtual Elements, which consists in directly taking the appropriate components of \(\underline{\varvec{G}}_h^{k}\) as degrees of freedom. This difference is linked to the fact that the present construction embeds what could be interpreted in Virtual Element terms as an enhancement, enabling us to reduce the degree of certain internal polynomial components.

3.3.2 Curl

We next consider the DDR counterpart of the curl operator, which maps on \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) and therefore has components at mesh faces and inside mesh elements. For all \(F\in {\mathcal {F}}_{h}\), the face curl \(C_F^k:\underline{\varvec{X}}_{\mathbf{curl},F}^k\rightarrow {\mathcal {P}}_{}^{k}(F)\) is such that, for all \(\underline{\varvec{v}}_F=\big (\varvec{v}_{\varvec{\mathcal {R}},F},\varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}, (v_E)_{E\in {\mathcal {E}}_{F}}\big )\in \underline{\varvec{X}}_{\mathbf{curl},F}^k\),

$$\begin{aligned} \int _FC_F^k\underline{\varvec{v}}_F~r_F = \int _F\varvec{v}_{\varvec{\mathcal {R}},F}\cdot \mathbf{rot}_F r_F - \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E v_Er_F\qquad \forall r_F\in {\mathcal {P}}_{}^{k}(F). \end{aligned}$$

Reasoning as in [31, Proposition 4.3], we get

$$\begin{aligned} C_F^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}\big ) = \pi _{{\mathcal {P}},F}^{k}\big ({{\,\mathrm{rot}\,}}_F\varvec{v}\big )\qquad \forall \varvec{v}\in {\mathbf{H }}^{1}(F). \end{aligned}$$

Proposition 2

(Local complex property) Let \(F\in {\mathcal {F}}_{h}\) and denote by \(\underline{\varvec{G}}_F^{k}:{\underline{X}}_{\mathbf{grad},F}^k\rightarrow \underline{\varvec{X}}_{\mathbf{curl},F}^k\) the restriction to F of the global gradient \(\underline{\varvec{G}}_h^{k}\) defined by (3.18). Then, it holds

$$\begin{aligned} {{\,\mathrm{Im}\,}}\underline{\varvec{G}}_F^{k}\subset {{\,\mathrm{Ker}\,}}C_F^k\qquad \forall F\in {\mathcal {F}}_{h}. \end{aligned}$$

Remark 10

(Two-dimensional complex) The relations (3.13) and (3.21) show that the following two-dimensional sequence forms a complex:

figure b

Having assumed F simply connected, adapting the arguments of [31, Theorem 4.1], one can additionally prove that this complex is exact, that is, \({{\,\mathrm{Ker}\,}}\underline{\varvec{G}}_F^{k}= {\underline{I}}_{\mathbf{grad},F}^k{\mathbb {R}}\), \({{\,\mathrm{Im}\,}}\underline{\varvec{G}}_F^{k}= {{\,\mathrm{Ker}\,}}C_F^k\), and \({{\,\mathrm{Im}\,}}C_F^k= {\mathcal {P}}_{}^{k}(F)\).

Proof (Proposition 2)

Let \({\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k\). Using the definition (3.19) of \(C_F^k\) and (3.18) of \(\underline{\varvec{G}}_h^{k}\) we have, for all \(r_F\in {\mathcal {P}}_{}^{k}(F)\),

$$\begin{aligned} \int _FC_F^k\big (\underline{\varvec{G}}_F^{k}{\underline{q}}_F\big ) r_F&= \int _F \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big )\cdot \mathbf{rot}_F r_F - \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E G_E^{k}{\underline{q}}_F r_F \\&= \int _F {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \mathbf{rot}_F r_F - \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E G_E^{k}{\underline{q}}_F r_F \\&= \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E\left[ q_{{\mathcal {E}}_{F}}(\mathbf{rot}_F r_F \cdot \varvec{n}_{FE})-q_E' r_F \right] =0, \end{aligned}$$

where the suppression of \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\) in the second line is possible since \(\mathbf{rot}_F r_F\in \varvec{\mathcal {R}}^{k-1}(F)\), the third line is obtained using the definitions (3.9) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}\) with \(\varvec{w}_F=\mathbf{rot}_F r_F\) (additionally noticing that \({{\,\mathrm{div}\,}}_F(\mathbf{rot}_F r_F)=0\)) and (3.8) of \(G_E^{k}\), while the conclusion is obtained reasoning as in [31, Point 2. of Proposition 4.4] (see in particular Eq. (4.19) therein).

The tangential trace \(\varvec{\gamma }_{{\mathrm{t}},F}^k:\underline{\varvec{X}}_{\mathbf{curl},F}^k\rightarrow \varvec{\mathcal {P}}_{}^{k}(F)\) is such that, for all \(\underline{\varvec{v}}_F\in \underline{\varvec{X}}_{\mathbf{curl},F}^k\), recalling the notation (2.17),

$$\begin{aligned} \varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F {:}{=}{\mathfrak {R}}_{{\varvec{\mathcal {\varvec{\mathcal {R}}}},\varvec{\mathcal {F}}}}^{k}(\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F,\varvec{v}_{\varvec{\mathcal {R}},F}^{\mathrm{c}}), \end{aligned}$$

where \(\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\in \varvec{\mathcal {R}}^{k}(F)\) is defined, using the isomorphism property (2.8) with \(\ell =k+1\), by

$$\begin{aligned} \int _F\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\cdot \mathbf{rot}_F r_F= & {} \int _FC_F^k\underline{\varvec{v}}_F~r_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E v_E r_F \nonumber \\&\qquad \forall r_F\in {\mathcal {P}}_{}^{0,k+1}(F). \end{aligned}$$

Remark 11

(Validity of (3.23)) Observing that both sides of (3.23) vanish when \(r_F\in {\mathcal {P}}_{}^{0}(F)\), it is inferred that this relation holds in fact for any \(r_F\in {\mathcal {P}}_{}^{k+1}(F)\). We also notice that, since \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\big (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big )=\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\) (by virtue of (3.22) and (2.14)), \(\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\) can be replaced by \(\varvec{\gamma }_{{\mathrm{t}},F}^k\) in the left-hand side of (3.23).

The actual computation of \(\varvec{\gamma }_{{\mathrm{t}},F}^k\) does not require the implementation of the recovery operator in the right-hand side of (3.22), but rather hinges on the solution of the following equation: For all \((r_F,\varvec{w}_F)\in {\mathcal {P}}_{}^{0,k+1}(F)\times \varvec{\mathcal {R}}^{\mathrm{c},k}(F)\),

$$\begin{aligned} \int _F\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\cdot (\mathbf{rot}_F r_F + \varvec{w}_F) = \int _FC_F^k\underline{\varvec{v}}_F~r_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E v_E r_F + \int _F\varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}\cdot \varvec{w}_F. \end{aligned}$$

Indeed, the test functions of the form \((r_F,\varvec{0})\) with \(r_F\) spanning \({\mathcal {P}}_{}^{0,k+1}(F)\) enforce that \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\big (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) = \varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\) satisfies (3.23), while the test functions of the form \((0,\varvec{w}_F)\) with \(\varvec{w}_F\) spanning \(\varvec{\mathcal {R}}^{\mathrm{c},k}(F)\) enforce that \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) = \varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}\). These two conditions combined yield (3.22). Similar considerations hold for the three-dimensional potential reconstructions defined in Sects. 4.2 and 4.3 below.

Proposition 3

(Properties of the tangential trace) It holds

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) = \varvec{v}_{\varvec{\mathcal {R}},F} \quad&\text{ and }\quad \varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) = \varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}&\qquad&\forall \underline{\varvec{v}}_F\in \underline{\varvec{X}}_{\mathbf{curl},F}^k, \end{aligned}$$
$$\begin{aligned} \varvec{\gamma }_{{\mathrm{t}},F}^k(\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v})&=\varvec{\pi }_{\varvec{\mathcal {P}},F}^{k}\varvec{v}&\qquad&\forall \varvec{v}\in \varvec{{\mathcal {N}}}^{k+1}(F), \end{aligned}$$
$$\begin{aligned} \varvec{\gamma }_{{\mathrm{t}},F}^k\big (\underline{\varvec{G}}_F^{k}{\underline{q}}_F\big )&= {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F&\qquad&\forall {\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k. \end{aligned}$$


\({1.\,\textit{Proof of}~\mathrm{(3.24)}.}\) Since \(\varvec{\mathcal {R}}^{k-1}(F)\subset \varvec{\mathcal {R}}^{k}(F)\), we have \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}=\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\) and thus, using (2.14) and Remark 11, we obtain

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) =\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big (\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) =\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big (\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\big ). \end{aligned}$$

Applying the definitions (3.23) of \(\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\) and (3.19) of \(C_F^k\) with a generic \(r_F\in {\mathcal {P}}_{}^{0,k}(F)\) leads to \(\int _F{\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\cdot \mathbf{rot}_F r_F} = \int _F{\varvec{v}_{\varvec{\mathcal {R}},F}\cdot \mathbf{rot}_F r_F}\), hence

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big (\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\underline{\varvec{v}}_F\big )=\varvec{v}_{\varvec{\mathcal {R}},F}. \end{aligned}$$

This proves the first relation in (3.24). The second relation is a straightforward consequence of (3.22) and (2.14).

\({2.~\textit{Proof of}~\mathrm{(3.25)}.}\) Let \(\varvec{v}\in \varvec{{\mathcal {N}}}^{k+1}(F)\). Writing (3.23) for \(\underline{\varvec{v}}_F = \underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}\), observing that \(C_F^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}\big ) = {{\,\mathrm{rot}\,}}_F\varvec{v}\in {\mathcal {P}}_{}^{k}(F)\) by (3.20) and that \(v_E = \varvec{v}_{|E}\cdot \varvec{t}_E\) for all \(E\in {\mathcal {E}}_{F}\) by (A.1) with \(\ell =k+1\), and integrating by parts the right-hand side, it is inferred that \(\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}\big ) = \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\varvec{v}\). Thus, by (3.22), \(\varvec{\gamma }_{{\mathrm{t}},F}^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}\big ) = {\mathfrak {R}}_{{\varvec{\mathcal {\varvec{\mathcal {R}}}},F}}^{k}(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\varvec{v},\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\varvec{v}) = \varvec{\pi }_{\varvec{\mathcal {P}},F}^{k}\varvec{v}\), where the conclusion results from (2.11) with \((\varvec{\mathcal {X}},Y,\ell ) = (\varvec{\mathcal {R}},F,k)\) followed by (2.15).

\({{3. \textit{Proof of}~\mathrm{(3.26)}.}}\) Let \({\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k\). For all \(r_F\in {\mathcal {P}}_{}^{k+1}(F)\), it holds

$$\begin{aligned} \begin{aligned} \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E G_E^{k}q_E~r_F&= \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q_{{\mathcal {E}}_{F}}(\mathbf{rot}_F r_F\cdot \varvec{n}_{FE}) \\&= \int _F {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F \cdot \mathbf{rot}_F r_F, \end{aligned} \end{aligned}$$

where the first equality follows recalling that \(G_E^{k}q_E = q_E'\) on E, integrating by parts on each edge, noting that \((r_F)_{|E}'=-\mathbf{rot}_F r_F\cdot \varvec{n}_{FE}\) (see [31, Eq. (4.20)]), and cancelling out the vertex values that appear twice with opposite sign, while the conclusion is obtained recalling the definition (3.9) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}\) and observing that \({{\,\mathrm{div}\,}}_F(\mathbf{rot}_F r_F) = 0\). Writing (3.23) for \(\underline{\varvec{v}}_F=\underline{\varvec{G}}_F^{k}{\underline{q}}_F\), we obtain

where we have used the inclusion (3.21) in the cancellation, while the conclusion follows from (3.27). This implies \(\varvec{\gamma }_{{\mathrm{t}},\varvec{\mathcal {R}},F}^k\big (\underline{\varvec{G}}_F^{k}{\underline{q}}_F\big )=\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big )\). By definition, the component of \(\underline{\varvec{G}}_F^{k}{\underline{q}}_F\) on \(\varvec{\mathcal {R}}^{\mathrm{c},k}(F)\) is \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big )\). Plugging the above results into (3.22) with \(\underline{\varvec{v}}_F=\underline{\varvec{G}}_F^{k}{\underline{q}}_F\) and using the recovery formula (2.15) with \((S,S^\mathrm{c}) = (\varvec{\mathcal {R}}^{k}(F),\varvec{\mathcal {R}}^{\mathrm{c},k}(F))\) and \(\varvec{a} = {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\) concludes the proof. \(\square \)

For all \(T\in {\mathcal {T}}_{h}\), the element curl \({{{\mathbf {\mathsf{{C}}}}}}_T^k:\underline{\varvec{X}}_{\mathbf{curl},T}^k\rightarrow \varvec{\mathcal {P}}_{}^{k}(T)\) is defined such that, for all \(\underline{\varvec{v}}_T=\big (\varvec{v}_{\varvec{\mathcal {R}},T}, \varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c}, (\varvec{v}_{\varvec{\mathcal {R}},F}, \varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c})_{F\in {\mathcal {F}}_{T}},(v_E)_{E\in {\mathcal {E}}_{T}}\big )\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\),

$$\begin{aligned} \int _T{{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \varvec{w}_T= & {} \int _T\varvec{v}_{\varvec{\mathcal {R}},T}\cdot \mathbf{curl}\varvec{w}_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\cdot (\varvec{w}_T\times \varvec{n}_F) \nonumber \\&\qquad \forall \varvec{w}_T\in \varvec{\mathcal {P}}_{}^{k}(T). \end{aligned}$$

The following polynomial consistency property is proved as in [31, Lemma 5.2] (recall the shift of exponent in the notation of the Nédélec space with respect to this reference):

$$\begin{aligned} \forall T\in {\mathcal {T}}_{h}\qquad {{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big ) = \mathbf{curl}\varvec{v} \qquad \forall \varvec{v}\in \varvec{{\mathcal {N}}}^{k+1}(T). \end{aligned}$$

Proposition 4

(Link between element and face curls) For all \((\underline{\varvec{v}}_T,r_T)\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\times {\mathcal {P}}_{}^{k+1}(T)\), it holds

$$\begin{aligned} \int _T {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \mathbf{grad}r_T = \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F C_F^k\underline{\varvec{v}}_F~r_T. \end{aligned}$$


For any \(r_T\in {\mathcal {P}}_{}^{k+1}(T)\), writing (3.28) for \(\varvec{w}_T=\mathbf{grad}r_T\in \varvec{\mathcal {P}}_{}^{k}(T)\) and using the fact that \(\mathbf{curl}(\mathbf{grad}r_T)=\varvec{0}\) and that \((\mathbf{grad}r_T)_{|F}\times \varvec{n}_F=\mathbf{rot} _F(r_{T|F})\) for all \(F\in {\mathcal {F}}_{T}\) (see [31, Eq. (3.6)]), we infer that

$$\begin{aligned} \int _T{{{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \mathbf{grad}r_T} = \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F{\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\cdot \mathbf{rot} _F(r_{T|F})}. \end{aligned}$$

Using Remark 11, we arrive at

$$\begin{aligned} \int _T {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \mathbf{grad}r_T =\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\bigg [ \int _F C_F^k\underline{\varvec{v}}_F r_T + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E v_E r_T \bigg ]. \end{aligned}$$

By [31, Eq. (5.13)], the edge terms in the above expression can be cancelled, thereby proving (3.30). \(\square \)

The global discrete curl \(\underline{\varvec{C}}_h^k:\underline{\varvec{X}}_{\mathbf{curl},h}^k\rightarrow \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) is such that, for all \(\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\),

$$\begin{aligned} \underline{\varvec{C}}_h^k\underline{\varvec{v}}_h{:}{=}\big ( \big ( \varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big ),\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big ) \big )_{T\in {\mathcal {T}}_{h}}, ( C_F^k\underline{\varvec{v}}_F )_{F\in {\mathcal {F}}_{h}} \big ). \end{aligned}$$

3.3.3 Divergence

For all \(T\in {\mathcal {T}}_{h}\), the element divergence \(D_T^k:\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\rightarrow {\mathcal {P}}_{}^{k}(T)\) is defined by: For all \(\underline{\varvec{w}}_T = \big (\varvec{w}_{\varvec{\mathcal {G}},T}, \varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}, (w_F)_{F\in {\mathcal {F}}_{T}}\big )\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\),

$$\begin{aligned} \int _TD_T^k\underline{\varvec{w}}_T~ q_T = -\!\int _T\varvec{w}_{\varvec{\mathcal {G}},T}\cdot \mathbf{grad}q_T + \sum _{F\in {\mathcal {F}}_{T}}\!\omega _{TF}\!\int _F w_F q_T \quad \forall q_T\in {\mathcal {P}}_{}^{k}(T).\quad \end{aligned}$$

The global discrete divergence \(D_h^k:\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\rightarrow {\mathcal {P}}_{}^{k}({\mathcal {T}}_{h})\) is obtained setting, for all \(\underline{\varvec{w}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\),

$$\begin{aligned} (D_h^k\underline{\varvec{w}}_h)_{|T}{:}{=}D_T^k\underline{\varvec{w}}_T \qquad \forall T\in {\mathcal {T}}_{h}, \end{aligned}$$

Proposition 5

(Local exactness property) It holds, for all \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} {{\,\mathrm{Im}\,}}\underline{\varvec{C}}_T^{k}= {{\,\mathrm{Ker}\,}}D_T^k, \end{aligned}$$

where \(\underline{\varvec{C}}_T^{k}\) denotes the restriction to T of the global curl \(\underline{\varvec{C}}_h^k\) defined by (3.31)


Let us start by proving that \(D_T^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big )=0\) for all \(\underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\), that is, \({{\,\mathrm{Im}\,}}\underline{\varvec{C}}_T^{k}\subset {{\,\mathrm{Ker}\,}}(D_T^k)\). By Proposition 4, for all \(q_T\in {\mathcal {P}}_{}^{k}(T)\),

$$\begin{aligned} \int _T\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T)\cdot \mathbf{grad}q_T = \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _FC_F^k\underline{\varvec{v}}_F~q_T, \end{aligned}$$

where we have used \(\mathbf{grad}q_T\in \varvec{\mathcal {G}}^{k-1}(T)\) to introduce the projector \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\). Hence, using the definition (3.32) of \(D_T^k\), we have, for all \(q_T\in {\mathcal {P}}_{}^{k}(T)\),

$$\begin{aligned} \int _TD_T^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big ) q_T = -\int _T\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big )\cdot \mathbf{grad}q_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _FC_F^k\underline{\varvec{v}}_T~q_T =0. \end{aligned}$$

Since \(q_T\) is arbitrary in \({\mathcal {P}}_{}^{k}(T)\), this shows that \(D_T^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big )=0\).

Let us now prove the inclusion \({{\,\mathrm{Ker}\,}}(D_T^k)\subset {{\,\mathrm{Im}\,}}\underline{\varvec{C}}_T^{k}\). We fix an element \(\underline{\varvec{w}}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\) such that \(D_T^k\underline{\varvec{w}}_T=0\) and prove the existence of \(\underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\) such that \(\underline{\varvec{w}}_T=\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\). Enforcing \(D_T^k\underline{\varvec{w}}_T=0\) in (3.32) with \(q_T=1\), we infer that \(\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _Fw_F=0\). Thus, [31, Lemma 5.3], which remains valid in the present context, provides \((\varvec{v}_{\varvec{\mathcal {R}},F},\varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c})_{F\in {\mathcal {F}}_{T}}\) and \((v_E)_{E\in {\mathcal {E}}_{T}}\) such that, for all \(F\in {\mathcal {F}}_{T}\), letting \(\underline{\varvec{v}}_F{:}{=}\big (\varvec{v}_{\varvec{\mathcal {R}},F},\varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c},(v_E)_{E\in {\mathcal {E}}_{F}}\big )\), it holds \(w_F=C_F^k\underline{\varvec{v}}_F\). Enforcing again \(D_T^k\underline{\varvec{w}}_T=0\) in (3.32), this time for a generic test function \(q_T\in {\mathcal {P}}_{}^{k}(T)\), and accounting for the previous result, we can write, for all \(\underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\) with boundary values as above,

$$\begin{aligned} \int _T\varvec{w}_{\varvec{\mathcal {G}},T}\cdot \mathbf{grad}q_T = \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _FC_F^k\underline{\varvec{v}}_F~q_T = \int _T\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T)\cdot \mathbf{grad}q_T, \end{aligned}$$

where the conclusion follows from the relation (3.35) linking volume and face curls. Since \(\mathbf{grad}q_T\) spans \(\varvec{\mathcal {G}}^{k-1}(T)\) as \(q_T\) spans \({\mathcal {P}}_{}^{k}(T)\), this proves that \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big ) = \varvec{w}_{\varvec{\mathcal {G}},T}\). Finally, we select \(\varvec{v}_{\varvec{\mathcal {R}},T}\in \varvec{\mathcal {R}}^{k-1}(T)\) in such a way as to have \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big ) = \varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}\), that is, recalling (3.28),

$$\begin{aligned} \int _T\varvec{v}_{\varvec{\mathcal {R}},T}\cdot \mathbf{curl}\varvec{z}_T= & {} \int _T\varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}\cdot \varvec{z}_T - \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\cdot (\varvec{z}_T\times \varvec{n}_F) \nonumber \\&\qquad \forall \varvec{z}_T\in \varvec{\mathcal {G}}^{\mathrm{c},k}(T). \end{aligned}$$

By the isomorphism (2.10), this condition defines \(\varvec{v}_{\varvec{\mathcal {R}},T}\) uniquely. \(\square \)

3.4 Discrete Sequence

Recalling the definitions (3.5), (3.18), (3.31), and (3.33) of the global discrete operators, the DDR sequence reads:

figure c

Remark 12

(Variations) In the spirit of [7, Section 9], one could consider alternatives of the DDR sequence (3.37) obtained varying certain couples of polynomial degrees in such a way as to preserve the exactness properties. Thus one could, e.g., replace \(\varvec{\mathcal {R}}^{k-1}(T)\) with \(\varvec{\mathcal {R}}^{k}(T)\) in the definition (3.2) of \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) and, correspondingly, \(\varvec{\mathcal {G}}^{\mathrm{c},k}(T)\) with \(\varvec{\mathcal {G}}^{\mathrm{c},k+1}(T)\) in the definition (3.3) of \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\). With these changes, the results of Proposition 5 (and, in particular, (3.36)) remain valid. Assessing the impact such and similar changes on the consistency is, however, more delicate. These developments are left for a future work.

3.5 Commutation Properties

Lemma 4

(Local commutation properties) It holds, for all \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} \underline{\varvec{G}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big )&= \underline{\varvec{I}}_{\mathbf{curl},T}^k\big (\mathbf{grad}q\big )&\qquad&\forall q\in \text {C}^{1}({\overline{T}}), \end{aligned}$$
$$\begin{aligned} \underline{\varvec{C}}_T^{k}\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )&= \underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\big (\mathbf{curl}\varvec{v}\big )&\qquad&\forall \varvec{v}\in {\mathbf{H }}^{2}(T), \end{aligned}$$
$$\begin{aligned} D_T^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big )&= \pi _{{\mathcal {P}},T}^{k}\big ({{\,\mathrm{div}\,}}\varvec{w}\big )&\qquad&\forall \varvec{w}\in {\mathbf{H }}^{1}(T). \end{aligned}$$

Remark 13

(Global commutation properties) Global commutation properties can be readily inferred from the local ones stated in Lemma 4 when interpolating functions that have sufficient global regularity.

Remark 14

(Role of commutation properties in the design of robust methods) The commutation properties of Lemma 4 play a key role in the design of discretization methods robust with respect to the variations of physical parameters. See, e.g., [30] concerning a DDR method for the Reissner–Mindlin plate bending problem robust with respect to plate thickness.

Proof (Lemma 4)

We start by noticing that all the interpolates defined in (3.38)–(3.40) are well-defined under the assumed regularities.

\({1.~\textit{Proof of}~\mathrm{(3.38)}.}\) By (3.12) it holds, for all \(E\in {\mathcal {E}}_{T}\),

$$\begin{aligned} G_E^{k}\big ({\underline{I}}_{\mathbf{grad},E}^k q_{|E}\big ) = \pi _{{\mathcal {P}},E}^{k}(q_{|E}')={\pi _{{\mathcal {P}},E}^{k}\big ((\mathbf{grad}q)_{|E}\cdot \varvec{t}_E\big )}. \end{aligned}$$

Let now \(F\in {\mathcal {F}}_{T}\). Writing the definition (3.9) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}\) with \({\underline{q}}_F = {\underline{I}}_{\mathbf{grad},F}^k q_{|F}\) and \(\varvec{w}_F\in \varvec{\mathcal {RT}}^{k}(F)\), and recalling (A.2) to replace \(q_{{\mathcal {E}}_{F}}\) with \(\pi _{{\mathcal {P}},E}^{k-1}(q_{{\mathcal {E}}_{F}})_{|E} = \pi _{{\mathcal {P}},E}^{k-1} q_{|E}\) (see (3.5)) in each edge integral, we infer

$$\begin{aligned} \begin{aligned} \int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}\big ({\underline{I}}_{\mathbf{grad},F}^k q_{|F}\big )\cdot \varvec{w}_F&= -\int _F\pi _{{\mathcal {P}},F}^{k-1} q_{|F}{{\,\mathrm{div}\,}}_F\varvec{w}_F \\&\quad + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E\pi _{{\mathcal {P}},E}^{k-1} q_{|E}(\varvec{w}_F\cdot \varvec{n}_{FE}) \\&= -\int _F q{{\,\mathrm{div}\,}}_F\varvec{w}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q(\varvec{w}_F\cdot \varvec{n}_{FE}) \\&= \int _F\mathbf{grad}_F q_{|F}\cdot \varvec{w}_F, \end{aligned} \end{aligned}$$

where we have removed the projectors using their definition in the second equality and we have integrated by parts to conclude. Recalling the definition (2.12) of \(\varvec{\mathcal {RT}}^{k}(F)\), we can first let \(\varvec{w}_F\) span \(\varvec{\mathcal {R}}^{k-1}(F)\) to infer

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big [{{{\mathbf {\mathsf{{G}}}}}}_F^{k}\big ({\underline{I}}_{\mathbf{grad},F}^k q_{|F}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big (\mathbf{grad}_F q_{|F}\big ), \end{aligned}$$

and then \(\varvec{\mathcal {R}}^{\mathrm{c},k}(F)\) to infer

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big [{{{\mathbf {\mathsf{{G}}}}}}_F^{k}\big ({\underline{I}}_{\mathbf{grad},F}^k q_{|F}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big (\mathbf{grad}_F q_{|F}\big ). \end{aligned}$$

The proof that \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\big [{{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\big (\mathbf{grad}q\big )\) and \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big [{{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big (\mathbf{grad}q\big )\) is similar: we write the definition (3.11) of \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\) for \({\underline{q}}_T = {\underline{I}}_{\mathbf{grad},T}^k q\) and \(\varvec{w}_T\in \varvec{\mathcal {RT}}^{k}(T)\), use property (A.4) along with (3.15) to replace the trace \(\gamma _F^{k+1}\big ({\underline{I}}_{\mathbf{grad},F}^k q_{|F}\big )\) with \(\pi _{{\mathcal {P}},F}^{k-1}\big [\gamma _F^{k+1}\big ({\underline{I}}_{\mathbf{grad},F}^k q_{|F}\big )\big ] = \pi _{{\mathcal {P}},F}^{k-1} q_{|F}\) in each face integral, remove the projectors using their definitions, and integrate by parts. This concludes the proof of (3.38).

\({{2.~\textit{Proof of}~\mathrm{(3.39)}.}}\) For all \(F\in {\mathcal {F}}_{T}\), by (3.20) it holds

$$\begin{aligned} C_F^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}_{|F}\big ) = \pi _{{\mathcal {P}},F}^{k}\big ((\mathbf{curl}\varvec{v})_{|F}\cdot \varvec{n}_F\big ), \end{aligned}$$

where we have used \({{\,\mathrm{rot}\,}}_F \varvec{v}_{{\mathrm{t}},F}=(\mathbf{curl}\varvec{v})_{|F}\cdot \varvec{n}_F\), see [31, Eq. (3.7)]. Writing the definition (3.28) for \(\varvec{w}_T\in \varvec{{\mathcal {N}}}^{k}(T)\), we have


where we have removed \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\) using its definition and, recalling (A.5), we have introduced the \(\text {L}^2\)-orthogonal projector \(\varvec{\pi }_{\varvec{\mathcal {RT}},F}^k\) on \(\varvec{\mathcal {RT}}^{k}(F)\) in the boundary integral. By (2.12) together with (2.15) written with the choices \((E,S,S^\mathrm{c}) = (\varvec{\mathcal {RT}}^{k}(F),\varvec{\mathcal {R}}^{k-1}(F),\varvec{\mathcal {R}}^{\mathrm{c},k}(F))\) and (3.24),

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {RT}},F}^k\big [\varvec{\gamma }_{{\mathrm{t}},F}^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}_{{\mathrm{t}},F}\big )\big ] = {\mathfrak {R}}_{\varvec{\mathcal {R}}^{k-1}(F),\varvec{\mathcal {R}}^{\mathrm{c},k}(F)}(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\varvec{v}_{{\mathrm{t}},F},\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\varvec{v}_{{\mathrm{t}},F}) = \varvec{\pi }_{\varvec{\mathcal {RT}},F}^k\varvec{v}_{{\mathrm{t}},F}. \end{aligned}$$

Plugging this relation into (3.41), we infer

where we have used again (A.5) to remove the projector in the boundary term and we have integrated by parts to conclude. Letting \(\varvec{w}_T\) span \(\varvec{\mathcal {G}}^{k-1}(T)\) (respectively \(\varvec{\mathcal {G}}^{\mathrm{c},k}(T)\)), this yields \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big [{{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big (\mathbf{curl}\varvec{v}\big )\) (respectively \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big [{{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big (\mathbf{curl}\varvec{v}\big )\)), thus concluding the proof of (3.39).

\({3.~\textit{Proof of}~\mathrm{(3.40)}.}\) The proof is done as in [31, Lemma 5.4], noticing that the cancellation of the component in the complement of \(\varvec{\mathcal {G}}^{k}(T)\), obtained therein by orthogonality of this complement, is not required here since this component is absent from the definition (3.32) of \(D_T^k\). \(\square \)

3.6 Complex and Exactness Properties

The properties collected in the following theorem show that the sequence (3.37) forms a (cochain) complex.

Theorem 1

(Complex property) It holds

$$\begin{aligned} {\underline{I}}_{\mathbf{grad},h}^k{\mathbb {R}}&= {{\,\mathrm{Ker}\,}}\underline{\varvec{G}}_h^{k}, \end{aligned}$$
$$\begin{aligned} {{\,\mathrm{Im}\,}}\underline{\varvec{G}}_h^{k}&\subset {{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k, \end{aligned}$$
$$\begin{aligned} {{\,\mathrm{Im}\,}}\underline{\varvec{C}}_h^k&\subset {{\,\mathrm{Ker}\,}}D_h^k, \end{aligned}$$
$$\begin{aligned} {{\,\mathrm{Im}\,}}D_h^k&={\mathcal {P}}_{}^{k}({\mathcal {T}}_{h}). \end{aligned}$$


\({{1.~\textit{Proof of}~\mathrm{(3.42)}.}}\) From the consistency properties (3.12), (3.13) and (3.16) of the full gradients and the definition (3.18) of \(\underline{\varvec{G}}_h^{k}\), it is readily inferred that \(\underline{\varvec{G}}_h^{k}\big ({\underline{I}}_{\mathbf{grad},h}^kC\big ) = \underline{\varvec{0}}\) for all \(C\in {\mathbb {R}}\), hence \({\underline{I}}_{\mathbf{grad},h}^k{\mathbb {R}}\subset {{\,\mathrm{Ker}\,}}\underline{\varvec{G}}_h^{k}\).

To prove converse inclusion \({{\,\mathrm{Ker}\,}}\underline{\varvec{G}}_h^{k}\subset {\underline{I}}_{\mathbf{grad},h}^k{\mathbb {R}}\), let \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\) be such that \(\underline{\varvec{G}}_h^{k}{\underline{q}}_h = \underline{\varvec{0}}\). By the definitions (3.18) of \(\underline{\varvec{G}}_h^{k}\) and (3.8) of \(G_E^{k}\), this means that \(q_E' = 0\) for all \(E\in {\mathcal {E}}_{h}\), that is, \((q_{{\mathcal {E}}_{h}})_{|E}\) is constant over E. Since \(\Omega \) has only one connected component, accounting for the single-valuedness of \(q_{{\mathcal {E}}_{h}}\) at vertices, we thus infer the existence of \(C\in {\mathbb {R}}\) such that \(q_{{\mathcal {E}}_{h}} = C\). Let now \(F\in {\mathcal {F}}_{h}\) and \(\varvec{w}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k}(F)\). We have \(\varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big )=\varvec{0}\), and thus

$$\begin{aligned} \begin{aligned} 0&= \int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \varvec{w}_F \\&= -\int _F q_F{{\,\mathrm{div}\,}}_F\varvec{w}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q_{{\mathcal {E}}_{F}}(\varvec{w}_F\cdot \varvec{n}_{FE}) \\&= \int _F (C - q_F){{\,\mathrm{div}\,}}_F\varvec{w}_F, \end{aligned} \end{aligned}$$

where the second equality comes from the definition (3.9) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\), and the conclusion is obtained accounting for the fact that \(q_{{\mathcal {E}}_{F}}=C\) and integrating by parts. Since \(\varvec{w}_F\) is generic in \(\varvec{\mathcal {R}}^{\mathrm{c},k}(F)\), recalling the isomorphism (2.9) this implies \(\pi _{{\mathcal {P}},F}^{k-1}(q_F - C)=0\), and thus \(q_F=\pi _{{\mathcal {P}},F}^{k-1}C\). As, for all \(F\in {\mathcal {F}}_{h}\), the previous results give \({\underline{q}}_F=(q_F, q_{{\mathcal {E}}_{F}})={\underline{I}}_{\mathbf{grad},F}^k C\), we also have \(\gamma _F^{k+1}{\underline{q}}_F=C\) by (3.14). Similarly, let \(T\in {\mathcal {T}}_{h}\) and \(\varvec{w}_T\in \varvec{\mathcal {R}}^{\mathrm{c},k}(T)\). Writing the definition (3.11) of \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\) for \(\varvec{w}_T\in \varvec{\mathcal {R}}^{\mathrm{c},k}(T)\), and accounting for \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big )=\varvec{0}\) and \(\gamma _F^{k+1}{\underline{q}}_F=C\), it is inferred

$$\begin{aligned} \begin{aligned} 0&= \int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \varvec{w}_T \\&= -\int _T q_T{{\,\mathrm{div}\,}}\varvec{w}_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F C (\varvec{w}_T\cdot \varvec{n}_F) \\&= \int _F (C - q_T){{\,\mathrm{div}\,}}\varvec{w}_T, \end{aligned} \end{aligned}$$

which implies, invoking the isomorphism (2.9), \(\pi _{{\mathcal {P}},T}^{k-1}(q_T - C) = 0\) since \(\varvec{w}_T\) is generic in \(\varvec{\mathcal {R}}^{\mathrm{c},k}(T)\). Hence \(q_T=\pi _{{\mathcal {P}},T}^{k-1}C\) for all \(T\in {\mathcal {T}}_{h}\), which concludes the proof that \({\underline{q}}_h={\underline{I}}_{\mathbf{grad},h}^kC\).

\({2.~\textit{Proof of}~\mathrm{(3.43)}.}\) The inclusion (3.43) follows from the local property:

$$\begin{aligned} {{\,\mathrm{Im}\,}}\underline{\varvec{G}}_T^{k}\subset {{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_T^{k}\qquad \forall T\in {\mathcal {T}}_{h}, \end{aligned}$$

i.e., \(\underline{\varvec{C}}_T^{k}\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )=\underline{\varvec{0}}\) for all \({\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k\). Let \(T\in {\mathcal {T}}_{h}\). The relation (3.21) implies \(C_F^k\big (\underline{\varvec{G}}_F^{k}{\underline{q}}_F\big )=0\) for all \(F\in {\mathcal {F}}_{T}\). The fact that \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big [{{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\big ]=\varvec{0}\) then follows from (3.35). We next notice that it holds, for all \(\varvec{w}_T\in \varvec{\mathcal {G}}^{\mathrm{c},k}(T)\),

where we have used the definition (3.28) of \({{{\mathbf {\mathsf{{C}}}}}}_T^k\) and the property (3.26) of the tangential trace reconstruction in the first equality, the fact that \(\mathbf{curl}\varvec{w}_T\in \varvec{\mathcal {R}}^{k-1}(T)\) to cancel the projector, and the link (3.17) between volume and face gradients to conclude. This shows that \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big [{{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\big ]=\varvec{0}\) and concludes the proof of (3.46).

\({3.~\textit{Proof of}~\mathrm{(3.44)}.}\) Immediate consequence of (3.34) after observing that \(\underline{\varvec{C}}_T^{k}\) and \(D_T^k\) are the restrictions of \(\underline{\varvec{C}}_h^k\) and \(D_h^k\) to T, respectively.

\({4.~\textit{Proof~of}~\mathrm{(3.45)}.}\) The inclusion \({{\,\mathrm{Im}\,}}D_h^k\subset {\mathcal {P}}_{}^{k}({\mathcal {T}}_{h})\) is an obvious consequence of the definition (3.33) of the global divergence. To prove the converse inclusion, let \(q_h\in {\mathcal {P}}_{}^{k}({\mathcal {T}}_{h})\). Since the continuous divergence operator \({{\,\mathrm{div}\,}}:{\mathbf{H }}^{1}(\Omega )\rightarrow \text {L}^2(\Omega )\) is onto (see, e.g., [28, Lemma 8.3]), there exists \(\varvec{v}\in {\mathbf{H }}^{1}(\Omega )\) such that \({{\,\mathrm{div}\,}}\varvec{v} = q_h\). Setting \(\underline{\varvec{v}}_h{:}{=}\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}\varvec{v}\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\), the commutation property (3.40) and the definition (3.33) of the global divergence yield \(D_h^k\underline{\varvec{v}}_h = \pi _{{\mathcal {P}},h}^{k}({{\,\mathrm{div}\,}}\varvec{v}) = \pi _{{\mathcal {P}},h}^{k} q_h = q_h\). This shows that \({\mathcal {P}}_{}^{k}({\mathcal {T}}_{h})\subset {{\,\mathrm{Im}\,}}D_h^k\), thereby concluding the proof of (3.45). \(\square \)

Remark 15

(Kernel of the full curl operator) Combining the inclusion (3.21) with the relation (3.30) linking element and face curls, it is inferred that, for all \({\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k\), \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k}\big [{{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\big ] = \varvec{0}\). On the other hand, (3.46) implies \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big [{{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\big ] = \varvec{0}\). Hence \({{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big ) = \varvec{0}\) by (2.15) with \(\varvec{a} = {{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\) and \((S,S^\mathrm{c}) = (\varvec{\mathcal {G}}^{k}(T),\varvec{\mathcal {G}}^{\mathrm{c},k}(T))\). This shows that \({{\,\mathrm{Im}\,}}\underline{\varvec{G}}_T^{k}\subset {{\,\mathrm{Ker}\,}}{{{\mathbf {\mathsf{{C}}}}}}_T^k\).

The exactness properties of the DDR sequence, depending on the topology of the domain, are collected in the following theorem.

Theorem 2

(Exactness) Denoting by \((b_0,b_1,b_2,b_3)\) the Betti numbers of \(\Omega \) (with \(b_0=1\) since \(\Omega \) is connected and \(b_3=0\) since \(\Omega \subset {\mathbb {R}}^3\)), we have

$$\begin{aligned} b_1=0 \implies {{\,\mathrm{Im}\,}}\underline{\varvec{G}}_h^{k}&= {{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k, \end{aligned}$$
$$\begin{aligned} b_2=0 \implies {{\,\mathrm{Im}\,}}\underline{\varvec{C}}_h^k&= {{\,\mathrm{Ker}\,}}D_h^k. \end{aligned}$$

Remark 16

(Meaning of vanishing Betti numbers) In broad terms, the condition \(b_1=0\) means that \(\Omega \) does not have any tunnel, while \(b_2=0\) means that \(\Omega \) does not enclose any void. A typical example of \(\Omega \) that has \(b_1\not =0\) is (the interior of) a torus, and an example of \(\Omega \) with \(b_2\not =0\) is a domain enclosed between two concentric spheres.


\({{1.~\textit{Proof of}~\mathrm{(3.47)}.}}\) Recalling (3.43), we only have to show the inclusion

$$\begin{aligned} {{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k\subset {{\,\mathrm{Im}\,}}\underline{\varvec{G}}_h^{k}, \end{aligned}$$

that is, for all \(\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\) such that \(\underline{\varvec{C}}_h^k\underline{\varvec{v}}_h = \underline{\varvec{0}}\), there exists \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\) such that \(\underline{\varvec{v}}_h = \underline{\varvec{G}}_h^{k}{\underline{q}}_h\). In what follows, we show how to construct such a \({\underline{q}}_h\).

We start by constructing a function \(q_{{\mathcal {E}}_{h}}\in {\mathcal {P}}_\mathrm{c}^{k+1}({\mathcal {E}}_{h})\) such that \(v_E = (q_{{\mathcal {E}}_{h}})'\) for all \(E\in {\mathcal {E}}_{h}\). Let \(V_0,V\in {\mathcal {V}}_h\) be two distinct mesh vertices of coordinates \(\varvec{x}_{V_0}\) and \(\varvec{x}_V\), respectively, and denote by \({\mathcal {E}}_{P}\subset {\mathcal {E}}_{h}\) a set of edges that form a connected path P from \(V_0\) to V (such a path always exists since \(\Omega \) is connected). By the fundamental theorem of calculus, there is a unique function \(q_{{\mathcal {E}}_{P}}\in {\mathcal {P}}_{\mathrm{c}}^{k+1}({\mathcal {E}}_{P})\) such that \(q_{{\mathcal {E}}_{P}}(\varvec{x}_{V_0})=0\) and \((q_{{\mathcal {E}}_{P}})_{|E}' = v_E\) for all \(E\in {\mathcal {E}}_{P}\), the derivative being taken in the direction of E (\(q_{{\mathcal {E}}_{P}}\) is obtained integrating, in the direction defined on each edge E by \(\varvec{t}_E\), the functions \((v_E)_{E\in {\mathcal {E}}_{P}}\)). We want to show that the value \(q_{{\mathcal {E}}_{P}}(\varvec{x}_{V})\) taken at V is independent of the choice of the path P. To this end, denote by \({\widetilde{P}}\) another path from \(V_0\) to V formed by the edges in \({\mathcal {E}}_{{\widetilde{P}}}\), and denote by \(-{\widetilde{P}}\) the same path but with reversed orientation. We assume, for the moment, that \({\mathcal {E}}_{P}\) and \({\mathcal {E}}_{{\widetilde{P}}}\) are disjoint. By similar considerations as before, there exists a unique \(q_{{\mathcal {E}}_{{\widetilde{P}}}}\in {\mathcal {P}}_{\mathrm{c}}^{k+1}({\mathcal {E}}_{{\widetilde{P}}})\) such that \(q_{{\mathcal {E}}_{{\widetilde{P}}}}(\varvec{x}_{V_0})=0\) and \((q_{{\mathcal {E}}_{{\widetilde{P}}}})_{|E}' = v_E\) for all \(E\in {\mathcal {E}}_{{\widetilde{P}}}\). Since \(b_1=0\) (i.e., there is no “tunnel” crossing \(\Omega \)), the path \(B{:}{=}P -P'\) formed by the edges in \({\mathcal {E}}_{B}{:}{=}{\mathcal {E}}_{P}\cup {\mathcal {E}}_{{\widetilde{P}}}\) is a 1-boundary, i.e., there is a set of faces \({\mathcal {F}}_{B}\subset {\mathcal {F}}_{h}\) giving rise to a connected surface \(S_B{:}{=}\bigcup _{F\in {\mathcal {F}}_{B}}{\overline{F}}\) such that \(B=\partial S_B\). We fix an orientation for \(S_B\) and, for all \(F\in {\mathcal {F}}_{B}\), we denote by \(\omega _{BF}\in \{-1,1\}\) the orientation of F relative to \(S_B\). For all \(E\in {\mathcal {E}}_{B}\), there is a unique face \(F\in {\mathcal {F}}_{B}\) such that \(E\in {\mathcal {E}}_{F}\), and we let \(\omega _{BE}{:}{=}\omega _{BF}\omega _{FE}\) denote the orientation of E relative to \(S_B\). Since \(C_F^k\underline{\varvec{v}}_F = 0\) for all \(F\in {\mathcal {F}}_{B}\), it holds

$$\begin{aligned} 0 = \sum _{F\in {\mathcal {F}}_{B}}\omega _{BF}\int _F C_F^k\underline{\varvec{v}}_F = - \sum _{F\in {\mathcal {F}}_{B}}\omega _{BF}\sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E v_E = - \sum _{E\in {\mathcal {E}}_{B}}\omega _{BE}\int _E v_E, \end{aligned}$$

where the second equality is obtained from (3.19) with \(r_F\) identically equal to 1, while the conclusion follows observing that all the edges that are interior to \(S_B\) appear exactly twice in the sum, with opposite signs. Thus, reasoning as in [31, Proposition 4.2], there exists \(q_{{\mathcal {E}}_{B}}\in {\mathcal {P}}_{\mathrm{c}}^{k+1}({\mathcal {E}}_{B})\) such that \((q_{{\mathcal {E}}_{B}})'=v_E\) for all \(E\in {\mathcal {E}}_{B}\), which we can be uniquely identified by additionally prescribing that \(q_{{\mathcal {E}}_{B}}(\varvec{x}_{V_0}) = 0\). Under this condition, by uniqueness we infer \((q_{{\mathcal {E}}_{B}})_{|E} = (q_{{\mathcal {E}}_{P}})_{|E}\) for all \(E\in {\mathcal {E}}_{P}\) and \((q_{{\mathcal {E}}_{B}})_{|E} = (q_{{\mathcal {E}}_{{\widetilde{P}}}})_{|E}\) for all \(E\in {\mathcal {E}}_{{\widetilde{P}}}\). Since \(q_{{\mathcal {E}}_{B}}\) is continuous at the vertices of B, this shows that \(q_{{\mathcal {E}}_{P}}(\varvec{x}_V) = q_{{\mathcal {E}}_{{\widetilde{P}}}}(\varvec{x}_V)\). This argument can be extended to paths P and \({\widetilde{P}}\) such that \({\mathcal {E}}_{P}\cap {\mathcal {E}}_{{\widetilde{P}}}\ne \emptyset \), the only difference being that one should reason, in this case, on each connected component of the manifold \(S_B\) (corresponding to a “loop” inside the path \(B = P - {\widetilde{P}}\)).

Repeating this reasoning for each vertex \(V\in {\mathcal {V}}_h\) and all possible paths connecting \(V_0\) and V, we conclude that there exists a unique \(q_{{\mathcal {E}}_{h}}\in {\mathcal {P}}_{\mathrm{c}}^{k+1}({\mathcal {E}}_{h})\) such that \(q_{{\mathcal {E}}_{h}}(\varvec{x}_{V_0})=0\) and, recalling the notation (3.4),

$$\begin{aligned} q_E' = G_E^{k}q_E = v_E\qquad \forall E\in {\mathcal {E}}_{h}. \end{aligned}$$

Let now \(F\in {\mathcal {F}}_{h}\). We look for a \(q_F\in {\mathcal {P}}_{}^{k-1}(F)\) such that \({\underline{q}}_F{:}{=}(q_F,q_{{\mathcal {E}}_{F}})\in {\underline{X}}_{\mathbf{grad},F}^k\) satisfies \(\underline{\varvec{v}}_F = \underline{\varvec{G}}_F^{k}{\underline{q}}_F\). Plugging \(C_F^k\underline{\varvec{v}}_F = 0\) into (3.19), we infer, for all \(r_F\in {\mathcal {P}}_{}^{k}(F)\),

$$\begin{aligned} \begin{aligned} \int _F\varvec{v}_{\varvec{\mathcal {R}},F}\cdot \mathbf{rot}_F r_F&= \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E v_E r_F \\&= \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E G_E^{k}q_E~r_F \\&= \int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \mathbf{rot}_F r_F, \end{aligned} \end{aligned}$$

where the second equality is a consequence of (3.50), while the conclusion follows from (3.27). This shows that \(\varvec{v}_{\varvec{\mathcal {R}},F} = \varvec{\pi }_{\varvec{\mathcal {R}},F}^{k-1}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F)\) for all \(q_F\in {\mathcal {P}}_{}^{k-1}(F)\). Let us now enforce \(\varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}= \varvec{\pi }_{\varvec{\mathcal {R}},F}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\big )\), that is, for all \(\varvec{w}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k}(F)\),

$$\begin{aligned} \begin{aligned} \int _F\varvec{v}_{\varvec{\mathcal {R}},F}\cdot \varvec{w}_F ={}&\int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \varvec{w}_F\\ ={}&-\int _F q_F {{\,\mathrm{div}\,}}_F\varvec{w}_F + \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E q_{{\mathcal {E}}_{F}} (\varvec{w}_F\cdot \varvec{n}_{FE}), \end{aligned} \end{aligned}$$

where we have used the definition (3.9) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}\) in the second equality. Recalling the isomorphism (2.9), the above condition defines the sought \(q_F\in {\mathcal {P}}_{}^{k-1}(F)\) uniquely.

Writing the definition (3.28) of \({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\) with \(\varvec{w}_T\in \varvec{\mathcal {G}}^{\mathrm{c},k}(T)\), using \(\underline{\varvec{v}}_h\in {{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k\) to see that \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big )=\varvec{0}\), invoking (3.26) to write \(\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F={{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\) and using the link (3.17) between element and face gradients with \(\varvec{z}_T=\varvec{w}_T\), we see that, for any \(T\in {\mathcal {T}}_{h}\), \(\varvec{v}_{\varvec{\mathcal {R}},T} = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big )\) with \({\underline{q}}_T{:}{=}\big (q_T, (q_F)_{F\in {\mathcal {F}}_{T}}, q_{{\mathcal {E}}_{T}}\big )\) for all \(q_T\in {\mathcal {P}}_{}^{k-1}(T)\). Proceeding then as for \(q_F\) above, we can select \(q_T\in {\mathcal {P}}_{}^{k-1}(T)\) to additionally have \(\varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c}= \varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big )\). This concludes the proof of (3.49).

\({2.~\textit{Proof of}~\mathrm{(3.48)}.}\) The proof can be obtained reasoning as in [29, Point 2b) of Theorem 3]. As a matter of fact, this argument is based on a local exactness property analogous to (3.34) together with a topological assembly of the mesh valid for domains that do not enclose voids (\(b_2 = 0\)), and it therefore does not depend on the specific choice of the complements in (2.5) and (2.3). \(\square \)

4 Potential Reconstructions and \(\text {L}^2\)-Products on Discrete Spaces

The definitions of the element gradient \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\) and curl \({{{\mathbf {\mathsf{{C}}}}}}_T^k\) required us to introduce discrete scalar and tangential traces on the mesh faces. In this section, for each \(T\in {\mathcal {T}}_{h}\) and \(\bullet \in \{\mathbf{grad},\mathbf{curl},{{\,\mathrm{div}\,}}\}\), we define discrete potential reconstructions inside T acting on the discrete space \({\underline{X}}_{\bullet ,T}^k\). These potentials have consistency properties, and enable the design of discrete \(\text {L}^2\)-inner products on DDR spaces that are also consistent.

4.1 Scalar Potential on \(\underline{X}_{\mathrm{grad},T}^{k}\)

The scalar potential reconstruction \(P_{\mathbf{grad},T}^{k+1}:{\underline{X}}_{\mathbf{grad},T}^k\rightarrow {\mathcal {P}}_{}^{k+1}(T)\) is such that, for all \({\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k\),

$$\begin{aligned} \int _TP_{\mathbf{grad},T}^{k+1}{\underline{q}}_T{{\,\mathrm{div}\,}}\varvec{v}_T= & {} -\int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \varvec{v}_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\gamma _F^{k+1}{\underline{q}}_F(\varvec{v}_T\cdot \varvec{n}_F) \nonumber \\&\qquad \forall \varvec{v}_T\in \varvec{\mathcal {R}}^{\mathrm{c},k+2}(T), \end{aligned}$$

with \(\gamma _F^{k+1}\) defined by (3.10). This relation defines \(P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\) uniquely since \({{\,\mathrm{div}\,}}:\varvec{\mathcal {R}}^{\mathrm{c},k+2}(T)\rightarrow {\mathcal {P}}_{}^{k+1}(T)\) is an isomorphism by (2.9) with \(\ell =k+2\).

Remark 17

(Validity of (4.1)) The definition (3.11) of \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\) and the identity \({{\,\mathrm{div}\,}}\mathbf{curl}=0\) show that both sides of (4.1) vanish when \(\varvec{v}_T\in \varvec{\mathcal {R}}^{k}(T)\). Hence, (4.1) actually holds for any \(\varvec{v}_T\in \varvec{\mathcal {R}}^{k}(T)\oplus \varvec{\mathcal {R}}^{\mathrm{c},k+2}(T)=\varvec{\mathcal {P}}_{}^{k}(T)+\varvec{\mathcal {R}}^{\mathrm{c},k+2}(T)\), the second equality following from \(\varvec{\mathcal {R}}^{\mathrm{c},k}(T)\subset \varvec{\mathcal {R}}^{\mathrm{c},k+2}(T)\) and the decomposition (2.6).

Using the polynomial consistency properties \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big ) = \mathbf{grad}q\) and \(\gamma _F^{k+1}\big ({\underline{I}}_{\mathbf{grad},F}^kq_{|F}\big ) = q_{|F}\), valid for all \(q\in {\mathcal {P}}_{}^{k+1}(T)\) (see (3.16) and (3.14), respectively), the following polynomial consistency of \(P_{\mathbf{grad},T}^{k+1}\) is obtained:

$$\begin{aligned} P_{\mathbf{grad},T}^{k+1}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big ) = q \qquad \forall q\in {\mathcal {P}}_{}^{k+1}(T). \end{aligned}$$

Moreover, applying (4.1) to \(\varvec{v}_T\in \varvec{\mathcal {R}}^{\mathrm{c},k}(T)\) (see Remark 1), using the definition (3.11) of \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\) with \(\varvec{w}_T=\varvec{v}_T\), and recalling that \({{\,\mathrm{div}\,}}:\varvec{\mathcal {R}}^{\mathrm{c},k}(T)\rightarrow {\mathcal {P}}_{}^{k-1}(T)\) is onto, we obtain

$$\begin{aligned} \pi _{{\mathcal {P}},T}^{k-1}\big (P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\big ) = q_T\qquad \forall {\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k. \end{aligned}$$

4.2 Vector Potential on \({\underline{{X}}_{\mathrm{curl},T}^k}\)

Recalling the definition (2.17) of \({\mathfrak {R}}_{{\varvec{\mathcal {\varvec{\mathcal {R}}}},T}}^{k}(\cdot ,\cdot )\), the vector potential reconstruction \(\varvec{P}_{\mathbf{curl},T}^k:\underline{\varvec{X}}_{\mathbf{curl},T}^k\rightarrow \varvec{\mathcal {P}}_{}^{k}(T)\) is such that, for all \(\underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\),

$$\begin{aligned} \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T {:}{=}{\mathfrak {R}}_{{\varvec{\mathcal {\varvec{\mathcal {R}}}},T}}^{k}(\varvec{P}_{\mathbf{curl},\varvec{\mathcal {R}},T}^k\underline{\varvec{v}}_T,\varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c}), \end{aligned}$$

where \(\varvec{P}_{\mathbf{curl},\varvec{\mathcal {R}},T}^k\underline{\varvec{v}}_T\in \varvec{\mathcal {R}}^{k}(T)\) is defined, using the fact that \(\mathbf{curl}:\varvec{\mathcal {G}}^{\mathrm{c},k+1}(T)\rightarrow \varvec{\mathcal {R}}^{k}(T)\) is an isomorphism (see (2.10)), by

$$\begin{aligned} \int _T\varvec{P}_{\mathbf{curl},\varvec{\mathcal {R}},T}^k\underline{\varvec{v}}_T\cdot \mathbf{curl}\varvec{w}_T= & {} \int _T{{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \varvec{w}_T - \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\cdot (\varvec{w}_T\times \varvec{n}_F) \nonumber \\&\qquad \forall \varvec{w}_T\in \varvec{\mathcal {G}}^{\mathrm{c},k+1}(T). \end{aligned}$$

Remark 18

(Discrete integration by parts formula for \(\varvec{P}_{\mathbf{curl},T}^k\)) Formula (4.5) can be extended to test functions in the Nédélec space \(\varvec{{\mathcal {N}}}^{k+1}(T)\) defined by (2.12). To check it, simply notice that both sides vanish whenever \(\varvec{w}_T\in \varvec{\mathcal {G}}^{k}(T)\) (use \(\mathbf{curl}\mathbf{grad}=0\) and the definition (3.28) of \({{{\mathbf {\mathsf{{C}}}}}}_T^k\)). Since \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{k}\big (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\big ) = \varvec{P}_{\mathbf{curl},\varvec{\mathcal {R}},T}^k\underline{\varvec{v}}_T\) (see (4.4) and (2.14)), we infer that

$$\begin{aligned} \int _T\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\cdot \mathbf{curl}\varvec{z}_T= & {} \int _T{{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \varvec{z}_T - \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\cdot (\varvec{z}_T\times \varvec{n}_F) \nonumber \\&\quad \quad \forall \varvec{z}_T\in \varvec{{\mathcal {N}}}^{k+1}(T). \end{aligned}$$

Apply (4.6) to \(\underline{\varvec{v}}_T=\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\) with \(\varvec{v}\in \varvec{\mathcal {P}}_{}^{k}(T)\), use the consistency properties \(\varvec{\gamma }_{{\mathrm{t}},F}^k\big (\underline{\varvec{I}}_{\mathbf{curl},F}^k\varvec{v}\big ) = \varvec{\pi }_{\varvec{\mathcal {P}},F}^{k}\varvec{v}_{{\mathrm{t}},F}=\varvec{v}_{{\mathrm{t}},F}\) and \({{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big ) = \mathbf{curl}\varvec{v}\) (see (3.25) and (3.29), respectively), and integrate by parts. Since \(\mathbf{curl}:\varvec{{\mathcal {N}}}^{k+1}(T)\rightarrow \varvec{\mathcal {R}}^{k}(T)\) is onto (due to the isomorphism property (2.10)), we obtain the relation \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{k}\big [\varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k}\varvec{v}\). The definition (4.4) and the property (2.14) of the recovery operator also yield \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big [\varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\varvec{v}\). As a consequence,

$$\begin{aligned} \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big ) = \varvec{v}\qquad \forall \varvec{v}\in \varvec{\mathcal {P}}_{}^{k}(T). \end{aligned}$$

Using similar arguments as in the proof of Proposition 3, we also have

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k-1}\big (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\big ) = \varvec{v}_{\varvec{\mathcal {R}},T}\text { and }\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\big ) = \varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c}\quad \forall \underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k. \end{aligned}$$

4.3 Vector Potential on \({\underline{X}_{\mathrm{div},T}^k}\)

Recalling the definition (2.17) of \({\mathfrak {R}}_{{\varvec{\mathcal {\varvec{\mathcal {G}}}},T}}^{k}(\cdot ,\cdot )\), the vector potential reconstruction \(\varvec{P}_{{{\,\mathrm{div}\,}},T}^k:\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\rightarrow \varvec{\mathcal {P}}_{}^{k}(T)\) is such that, for all \(\underline{\varvec{w}}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\),

$$\begin{aligned} \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T = {\mathfrak {R}}_{{\varvec{\mathcal {\varvec{\mathcal {G}}}},T}}^{k}(\varvec{P}_{{{\,\mathrm{div}\,}},\varvec{\mathcal {G}},T}^k\underline{\varvec{w}}_T,\varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}), \end{aligned}$$

where \(\varvec{P}_{{{\,\mathrm{div}\,}},\varvec{\mathcal {G}},T}^k\underline{\varvec{w}}_T\in \varvec{\mathcal {G}}^{k}(T)\) is defined by

$$\begin{aligned} \int _T\varvec{P}_{{{\,\mathrm{div}\,}},\varvec{\mathcal {G}},T}^k\underline{\varvec{w}}_T\cdot \mathbf{grad}r_T= & {} -\int _TD_T^k\underline{\varvec{w}}_T~r_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _Fw_F~r_T \nonumber \\&\qquad \forall r_T\in {\mathcal {P}}_{}^{0,k+1}(T). \end{aligned}$$

Remark 19

(Discrete integration by parts formula for \(\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\)) Observing that \(\varvec{P}_{{{\,\mathrm{div}\,}},\varvec{\mathcal {G}},T}^k =\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k}\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\) (use (2.14)) and that (4.10) holds for any \(r_T\in {\mathcal {P}}_{}^{k+1}(T)\) (as can be proved taking \(r_T\) constant in T and observing that both sides of this equation vanish due to the definition (3.32) of \(D_T^k\)), we infer

$$\begin{aligned} \int _T\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\cdot \mathbf{grad}r_T= & {} -\int _TD_T^k\underline{\varvec{w}}_T~r_T + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _Fw_F~r_T \nonumber \\&\qquad \forall r_T\in {\mathcal {P}}_{}^{k+1}(T). \end{aligned}$$

Writing this relation for \(\underline{\varvec{w}}_T = \underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\) with \(\varvec{w}\in \varvec{\mathcal {RT}}^{k+1}(T)\), observing that \(D_T^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big ) = \pi _{{\mathcal {P}},T}^{k}({{\,\mathrm{div}\,}}\varvec{w}) = {{\,\mathrm{div}\,}}\varvec{w}\) by (3.40) and \(\pi _{{\mathcal {P}},F}^{k}(\varvec{w}_{|F}\cdot \varvec{n}_F) = \varvec{w}_{|F}\cdot \varvec{n}_F\) for all \(F\in {\mathcal {F}}_{T}\) by (A.4), and integrating by parts the right-hand side of the resulting expression, we infer \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k}\big [\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {G}},T}^{k}\varvec{w}\); since \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big [\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\varvec{w}\) by definition of \(\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\), \(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\) and (2.14), we deduce that

$$\begin{aligned} \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big ) = \varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{w}\qquad \forall \varvec{w}\in \varvec{\mathcal {RT}}^{k+1}(T). \end{aligned}$$

Moreover, using similar arguments as in Proposition 3 we get

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\big (\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\big ) = \varvec{w}_{\varvec{\mathcal {G}},T} \text{ and } \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big (\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\big ) = \varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}\quad \forall \underline{\varvec{w}}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k.\qquad \end{aligned}$$

4.4 Discrete \({\text {L}^2}\)-Products

We now define discrete \(\text {L}^2\)-inner products on the DDR spaces. These products are all constructed in a similar way: by assembling local contributions composed of a consistent term based on the potential reconstruction and a stabilization term that provides a control over the polynomial components on the lower dimensional geometrical objects. Specifically, each \(\text {L}^2\)-product \((\cdot ,\cdot )_{\mathbf{grad},h}:{\underline{X}}_{\mathbf{grad},h}^k\times {\underline{X}}_{\mathbf{grad},h}^k\rightarrow {\mathbb {R}}\), \((\cdot ,\cdot )_{\mathbf{curl},h}:\underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{\mathbf{curl},h}^k\rightarrow {\mathbb {R}}\), and \((\cdot ,\cdot )_{{{\,\mathrm{div}\,}},h}:\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\rightarrow {\mathbb {R}}\) is the sum over \(T\in {\mathcal {T}}_{h}\) of its local counterpart defined by:

$$\begin{aligned} ({\underline{r}}_T,{\underline{q}}_T)_{\mathbf{grad},T}&{:}{=}\int _TP_{\mathbf{grad},T}^{k+1}{\underline{r}}_T~P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T + \text {s}_{\mathbf{grad},T}({\underline{r}}_T, {\underline{q}}_T) \nonumber \\&\qquad \forall ({\underline{r}}_T,{\underline{q}}_T)\in {\underline{X}}_{\mathbf{grad},T}^k\times {\underline{X}}_{\mathbf{grad},T}^k, \end{aligned}$$
$$\begin{aligned} (\underline{\varvec{w}}_T,\underline{\varvec{v}}_T)_{\mathbf{curl},T}&{:}{=}\int _T\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{w}}_T{\cdot }\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T + \text {s}_{\mathbf{curl},T}(\underline{\varvec{w}}_T, \underline{\varvec{v}}_T) \nonumber \\&\qquad \forall (\underline{\varvec{w}}_T,\underline{\varvec{v}}_T)\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\times \underline{\varvec{X}}_{\mathbf{curl},T}^k, \end{aligned}$$
$$\begin{aligned} (\underline{\varvec{w}}_T,\underline{\varvec{v}}_T)_{{{\,\mathrm{div}\,}},T}&{:}{=}\int _T\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T{\cdot }\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T + \text {s}_{{{\,\mathrm{div}\,}},T}(\underline{\varvec{w}}_T, \underline{\varvec{v}}_T) \nonumber \\&\qquad \forall (\underline{\varvec{w}}_T,\underline{\varvec{v}}_T)\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k, \end{aligned}$$

with symmetric, positive semidefinite stabilization bilinear forms \(\text {s}_{\bullet ,T}\), \(\bullet \in \{\mathbf{grad},\mathbf{curl}, {{\,\mathrm{div}\,}}\}\) defined as follows:

$$\begin{aligned} \text {s}_{\mathbf{grad},T}({\underline{r}}_T,{\underline{q}}_T) {:}{=}{}&\sum _{F\in {\mathcal {F}}_{T}}h_F\int _F\big (P_{\mathbf{grad},T}^{k+1}{\underline{r}}_T-\gamma _F^{k+1}{\underline{r}}_F\big ) \big (P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-\gamma _F^{k+1}{\underline{q}}_F\big ) \nonumber \\&+ \sum _{E\in {\mathcal {E}}_{T}}h_E^2\int _E \big (P_{\mathbf{grad},T}^{k+1}{\underline{r}}_T-r_E\big ) \big (P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-q_E\big ), \end{aligned}$$
$$\begin{aligned} \text {s}_{\mathbf{curl},T}{}(\underline{\varvec{w}}_T,\underline{\varvec{v}}_T){:}{=}{}&\sum _{F\in {\mathcal {F}}_{T}}h_F\int _F \big ( (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{w}}_T)_{{\mathrm{t}},F}-\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{w}}_F\big )\cdot \big ( (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T)_{{\mathrm{t}},F}-\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\big ) \nonumber \\&+ \sum _{E\in {\mathcal {E}}_{T}}h_E^2\int _E\big (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{w}}_T\cdot \varvec{t}_E-w_E\big )\big (\varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\cdot \varvec{t}_E-v_E\big ), \end{aligned}$$

where we recall that the index \({\mathrm{t}},F\) denotes the tangential trace on F, and

$$\begin{aligned} \text {s}_{{{\,\mathrm{div}\,}},T}(\underline{\varvec{w}}_T,\underline{\varvec{v}}_T) {:}{=}\sum _{F\in {\mathcal {F}}_{T}}h_F\int _F\big (\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\cdot \varvec{n}_F-w_F\big )\big (\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T\cdot \varvec{n}_F-v_F\big ).\qquad \end{aligned}$$

These local stabilization bilinear forms \(\text {s}_{\bullet ,T}\) are polynomially consistent, i.e., they vanish whenever one of their arguments is the interpolate of a polynomial of total degree \(\le k+1\) for \(\bullet =\mathbf{grad}\), or \(\le k\) for \(\bullet \in \{\mathbf{curl},{{\,\mathrm{div}\,}}\}\). The consistency properties on interpolates of smooth functions of the potential reconstructions and stabilization forms proved in Sect. 6 below make these discrete \(\text {L}^2\)-products natural candidates for use in the discretization of PDEs in weak formulation; see the application of DDR to the magnetostatic problem in Sect. 7.

For \(\bullet \in \{\mathbf{grad},\mathbf{curl},{{\,\mathrm{div}\,}}\}\), we denote by \(\Vert {\cdot }\Vert _{\bullet ,T}\) the norm on \({\underline{X}}_{\bullet ,T}^k\) induced by the corresponding local discrete \(\text {L}^2\)-product \((\cdot ,\cdot )_{\bullet ,T}\), and by \(\Vert {\cdot }\Vert _{\bullet ,h}\) the norm on \({\underline{X}}_{\bullet ,h}^k\) corresponding to the global discrete \(\text {L}^2\)-product \((\cdot ,\cdot )_{\bullet ,h}\).

4.5 Component \({\text {L}^2}\)-Norms, Bounds, and Equivalence Properties

The analysis of the stability and consistency properties of the DDR sequence is facilitated by the introduction of \(\text {L}^2\)-like norms naturally associated with the choices of polynomial components in the DDR spaces. Specifically we set, for all \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\),

$$\begin{aligned} \vert \vert \vert {\underline{q}}_h\vert \vert \vert _{\mathbf{grad},h}{:}{=}\bigg ( \sum _{T\in {\mathcal {T}}_{h}}\vert \vert \vert {\underline{q}}_T\vert \vert \vert _{\mathbf{grad},T}^2 \bigg )^{\frac{1}{2}} \text{ with } \end{aligned}$$
$$\begin{aligned} \begin{aligned}&\forall T\in {\mathcal {T}}_{h},\; \forall {\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k,\\&\qquad \vert \vert \vert {\underline{q}}_T\vert \vert \vert _{\mathbf{grad},T}{:}{=}\bigg ( \Vert q_T\Vert _{\text {L}^2(T)}^2 + \sum _{F\in {\mathcal {F}}_{T}} h_F\vert \vert \vert {\underline{q}}_F\vert \vert \vert _{\mathbf{grad},F}^2 \bigg )^{\frac{1}{2}} \\&\forall F\in {\mathcal {F}}_{h},\; \forall {\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k,\\&\qquad \vert \vert \vert {\underline{q}}_F\vert \vert \vert _{\mathbf{grad},F}{:}{=}\bigg ( \Vert q_F\Vert _{\text {L}^2(F)}^2 + \sum _{E\in {\mathcal {E}}_{F}} h_E\Vert q_E\Vert _{\text {L}^2(E)}^2 \bigg )^{\frac{1}{2}}. \end{aligned} \end{aligned}$$

Similarly, for all \(\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\),

$$\begin{aligned} \vert \vert \vert \underline{\varvec{v}}_h\vert \vert \vert _{\mathbf{curl},h}{:}{=}\bigg ( \sum _{T\in {\mathcal {T}}_{h}}\vert \vert \vert \underline{\varvec{v}}_T\vert \vert \vert _{\mathbf{curl},T}^2 \bigg )^{\frac{1}{2}} \text{ with } \end{aligned}$$
$$\begin{aligned} \begin{aligned}&\forall T\in {\mathcal {T}}_{h},\; \forall \underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k,\\&\qquad \vert \vert \vert \underline{\varvec{v}}_T\vert \vert \vert _{\mathbf{curl},T}{:}{=}\bigg ( \Vert \varvec{v}_{\varvec{\mathcal {R}},T}\Vert _{{\mathbf{L }}^2(T)}^2 + \Vert \varvec{v}_{\varvec{\mathcal {R}},T}^\mathrm{c}\Vert _{{\mathbf{L }}^2(T)}^2 + \sum _{F\in {\mathcal {F}}_{T}} h_F\vert \vert \vert \underline{\varvec{v}}_F\vert \vert \vert _{\mathbf{curl},F}^2 \bigg )^{\frac{1}{2}} \\&\forall F\in {\mathcal {F}}_{h},\; \forall \underline{\varvec{v}}_F\in \underline{\varvec{X}}_{\mathbf{curl},F}^k,\\&\qquad \vert \vert \vert \underline{\varvec{v}}_F\vert \vert \vert _{\mathbf{curl},F}{:}{=}\bigg ( \Vert \varvec{v}_{\varvec{\mathcal {R}},F}\Vert _{{\mathbf{L }}^2(F)}^2 + \Vert \varvec{v}_{\varvec{\mathcal {R}},F}^\mathrm{c}\Vert _{{\mathbf{L }}^2(F)}^2 + \sum _{E\in {\mathcal {E}}_{F}} h_E\Vert v_E\Vert _{\text {L}^2(E)}^2 \bigg )^{\frac{1}{2}}. \end{aligned} \end{aligned}$$

Finally, for all \(\underline{\varvec{w}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\),

$$\begin{aligned} \vert \vert \vert \underline{\varvec{w}}_h\vert \vert \vert _{{{\,\mathrm{div}\,}},h}{:}{=}\bigg ( \sum _{T\in {\mathcal {T}}_{h}}\vert \vert \vert \underline{\varvec{w}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}^2 \bigg )^{\frac{1}{2}} \text{ with } \end{aligned}$$
$$\begin{aligned} \begin{aligned}&\forall T\in {\mathcal {T}}_{h},\;\forall \underline{\varvec{w}}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k,\\&\qquad \vert \vert \vert \underline{\varvec{w}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}{:}{=}\bigg ( \Vert \varvec{w}_{\varvec{\mathcal {G}},T}\Vert _{{\mathbf{L }}^2(T)}^2 + \Vert \varvec{w}_{\varvec{\mathcal {G}},T}^\mathrm{c}\Vert _{{\mathbf{L }}^2(T)}^2 + \sum _{F\in {\mathcal {F}}_{T}} h_F \Vert w_F\Vert _{\text {L}^2(F)}^2 \bigg )^{\frac{1}{2}}. \end{aligned} \end{aligned}$$

Remark 20

(Alternative stabilizations) Each of the component norms \(\vert \vert \vert {\cdot }\vert \vert \vert _{\bullet ,T}\), for \(\bullet \in \{\mathbf{grad},\mathbf{curl},{{\,\mathrm{div}\,}}\}\), is a Euclidean norm on the corresponding local space \({\underline{X}}_{\bullet ,T}^k\). It is therefore associated to an inner product \([\cdot ,\cdot ]_{\bullet ,T}\), which can be used to design an alternative stabilization to \(\text {s}_{\bullet ,T}\) by setting \(\widetilde{\text {s}}_{\bullet ,T}(\underline{\varvec{v}}_T,\underline{\varvec{w}}_T){:}{=}[\underline{\varvec{v}}_T-\underline{\varvec{I}}_{\bullet ,T}\varvec{P}_{\bullet ,T}\underline{\varvec{v}}_T,\underline{\varvec{w}}_T-\underline{\varvec{I}}_{\bullet ,T}\varvec{P}_{\bullet ,T}\underline{\varvec{w}}_T]_{\bullet ,T}\), where \(\underline{\varvec{I}}_{\bullet ,T}\) and \(\varvec{P}_{\bullet ,T}\) are respectively the interpolator and potential reconstruction on \({\underline{X}}_{\bullet ,T}^k\). This alternative stabilization is the one chosen for \(\underline{\varvec{X}}_{\mathbf{curl},T}^k\) in [29]. We also note that \(\text {s}_{{{\,\mathrm{div}\,}},T}=\widetilde{\text {s}}_{{{\,\mathrm{div}\,}},T}\).

The next proposition follows from (2.19) and Lemma 9 in “Appendix A”, in a similar way as in the proof of [29, Proposition 13].

Proposition 6

(Boundedness of local potentials) It holds, for all \(T\in {\mathcal {T}}_{h}\) and all \(F\in {\mathcal {F}}_{T}\),

$$\begin{aligned}&\left\{ \begin{aligned} \Vert \gamma _F^{k+1}{\underline{q}}_F\Vert _{\text {L}^2(F)}&\lesssim \vert \vert \vert {\underline{q}}_F\vert \vert \vert _{\mathbf{grad},F} \\ \Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\Vert _{\text {L}^2(T)}&\lesssim \vert \vert \vert {\underline{q}}_T\vert \vert \vert _{\mathbf{grad},T} \end{aligned}\right.&\qquad&\forall {\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k, \end{aligned}$$
$$\begin{aligned}&\left\{ \begin{aligned} \Vert \varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F\Vert _{{\mathbf{L }}^2(F)}&\lesssim \vert \vert \vert \underline{\varvec{v}}_F\vert \vert \vert _{\mathbf{curl},F} \\ \Vert \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}&\lesssim \vert \vert \vert \underline{\varvec{v}}_T\vert \vert \vert _{\mathbf{curl},T} \end{aligned}\right.&\qquad&\forall \underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k, \end{aligned}$$
$$\begin{aligned}&\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\Vert _{{\mathbf{L }}^2(T)}\lesssim \vert \vert \vert \underline{\varvec{w}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}&\qquad&\forall \underline{\varvec{w}}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k. \end{aligned}$$

We next establish the equivalence of the norms corresponding to the discrete \(\text {L}^2\)-products and the component norms.

Lemma 5

(Equivalence of norms) Let \(\bullet \in \{\mathbf{grad},\mathbf{curl},{{\,\mathrm{div}\,}}\}\). We have, for any \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} \vert \vert \vert {\underline{z}}_T\vert \vert \vert _{\bullet ,T}\simeq \Vert {\underline{z}}_T\Vert _{\bullet ,T}\qquad \forall {\underline{z}}_T\in {\underline{X}}_{\bullet ,T}^k. \end{aligned}$$


We only prove the result for \(\bullet ={{\,\mathrm{div}\,}}\), the other cases being similar (see also [29, Proposition 14] for \(\bullet =\mathbf{curl}\) in the case of orthogonal complements, instead of the Koszul complements (2.3), (2.5)). Let \(T\in {\mathcal {T}}_{h}\) and \(\underline{\varvec{w}}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\). By definition (4.16) of the \(\text {L}^2\)-product on \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\), we have

$$\begin{aligned} \Vert \underline{\varvec{w}}_T\Vert _{{{\,\mathrm{div}\,}},T}^2={}&\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\Vert _{{\mathbf{L }}^2(T)}^2+\sum _{F\in {\mathcal {F}}_{T}}h_F\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\cdot \varvec{n}_F-w_F\Vert _{\text {L}^2(F)}^2\\ \lesssim {}&\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\Vert _{{\mathbf{L }}^2(T)}^2+\sum _{F\in {\mathcal {F}}_{T}}h_F\Vert w_F\Vert _{\text {L}^2(F)}^2\lesssim \vert \vert \vert \underline{\varvec{w}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}^2, \end{aligned}$$

where the first inequality follows from a triangle inequality together with the discrete trace inequality \(h_F\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\Vert _{{\mathbf{L }}^2(F)}^2\lesssim \Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\Vert _{{\mathbf{L }}^2(T)}^2\) (see [28, Lemma 1.32]), while the conclusion is a consequence of (4.24) together with the definition of \(\vert \vert \vert \underline{\varvec{w}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}\). This proves \(\gtrsim \) in (4.25).

To prove the converse inequality, we start from (4.13) to write

$$\begin{aligned} \vert \vert \vert \underline{\varvec{w}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}^2 ={}&\Vert \varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}(\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T)\Vert _{{\mathbf{L }}^2(T)}^2+ \Vert \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}(\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T)\Vert _{{\mathbf{L }}^2(T)}^2\\&+ \sum _{F\in {\mathcal {F}}_{T}} h_F \Vert w_F\Vert _{\text {L}^2(F)}^2\\ \lesssim {}&\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\Vert _{{\mathbf{L }}^2(T)}^2 + \sum _{F\in {\mathcal {F}}_{T}} h_F \Vert w_F-\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\cdot \varvec{n}_F\Vert _{\text {L}^2(F)}^2 \\&+\sum _{F\in {\mathcal {F}}_{T}} h_F \Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{w}}_T\cdot \varvec{n}_F\Vert _{\text {L}^2(F)}^2\\ \lesssim {}&\Vert \underline{\varvec{w}}_T\Vert _{{{\,\mathrm{div}\,}},T}^2, \end{aligned}$$

where the first inequality follows from the \(\mathrm {L}^2\)-boundedness of the orthogonal projectors \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k-1}\) and \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\) together with a triangle inequality, and the conclusion is obtained invoking the same discrete trace inequality as before together with the definition of \(\Vert \underline{\varvec{w}}_T\Vert _{{{\,\mathrm{div}\,}},T}\). This proves \(\lesssim \) in (4.25). \(\square \)

Lemma 6

(Boundedness of local interpolators) It holds, for all \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} \vert \vert \vert {\underline{I}}_{\mathbf{grad},T}^k q\vert \vert \vert _{\mathbf{grad},T}&\lesssim \Vert q\Vert _{\text {L}^2(T)}+h_T|q|_{\text {H}^{1}(T)}+h_T^2|q|_{\text {H}^{2}(T)}&\quad&\forall q\in \text {H}^{2}(T),\quad \end{aligned}$$
$$\begin{aligned} \vert \vert \vert \underline{\varvec{I}}_{\mathbf{curl},T}^k \varvec{v}\vert \vert \vert _{\mathbf{curl},T}&\lesssim \Vert \varvec{v}\Vert _{{\mathbf{L }}^2(T)}+h_T|\varvec{v}|_{{\mathbf{H }}^{1}(T)}+h_T^2|\varvec{v}|_{{\mathbf{H }}^{2}(T)}&\quad&\forall \varvec{v}\in {\mathbf{H }}^{2}(T),\quad \end{aligned}$$
$$\begin{aligned} \vert \vert \vert \underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\vert \vert \vert _{{{\,\mathrm{div}\,}},T}&\lesssim \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(T)}+h_T|\varvec{w}|_{{\mathbf{H }}^{1}(T)}&\quad&\forall \varvec{w}\in {\mathbf{H }}^{1}(T).\quad \end{aligned}$$

Remark 21

(Boundedness in other norms) The boundedness of \({\underline{I}}_{\mathbf{grad},T}^k\) and \(\underline{\varvec{I}}_{\mathbf{curl},T}^k\) could easily be stated using norms in larger spaces (typically, \(C^0({\overline{T}})\) for \({\underline{I}}_{\mathbf{grad},T}^k\), and the same spaces on which usual Nédélec interpolators are defined for \(\underline{\varvec{I}}_{\mathbf{curl},T}^k\)—see [10, Section 2.5.3]). However, the role of Lemma 6 is to enable primal consistency estimates (Theorem 6); since these estimates require higher regularity on the solutions, the bounds (4.26) and (4.27) stated in non-minimal norms are sufficient to our purpose.

Proof (Lemma 6)

The definition (3.5) of \({\underline{I}}_{\mathbf{grad},T}^k\) shows that \(\vert \vert \vert {\underline{I}}_{\mathbf{grad},T}^k q\vert \vert \vert _{\mathbf{grad},T}\lesssim |T|^{\nicefrac 12}\max _T|q|\). By [28, Eq. (5.110)], it holds

$$\begin{aligned} \max _T|q|\lesssim |T|^{-\frac{1}{2}}\sum _{r=0}^2 h_T^r|q|_{\text {H}^{r}(T)}, \end{aligned}$$

which concludes the proof of (4.26). The estimate (4.27) is obtained the same way. As for (4.28), by the continuous trace inequality of [28, Lemma 1.31], we have

$$\begin{aligned} \Vert \pi _{{\mathcal {P}},F}^{k}(\varvec{w}\cdot \varvec{n}_F)\Vert _{\text {L}^2(F)}\le \Vert \varvec{w}\Vert _{{\mathbf{L }}^2(F)}\lesssim h_F^{-\frac{1}{2}}\Vert \varvec{w}\Vert _{{\mathbf{L }}^2(T)}+h_F^{\frac{1}{2}}|\varvec{w}|_{{\mathbf{H }}^{1}(T)}. \end{aligned}$$

Using this bound in the definition (3.7) of \(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\) yields (4.28). \(\square \)

4.6 Links Between Discrete Vector Potentials and Vector Calculus Operators

In the next proposition, we show that the element gradient and curl can be recovered applying the suitable potential reconstruction to the corresponding discrete vector calculus operator, in a similar way as in (3.26) for the tangential face reconstruction and face gradients.

Proposition 7

(Link between discrete vector potentials and vector calculus operators) For all \(T\in {\mathcal {T}}_{h}\), it holds

$$\begin{aligned} \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )&= {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T&\qquad&\forall {\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k, \end{aligned}$$
$$\begin{aligned} \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big )&= {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T&\qquad&\forall \underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k. \end{aligned}$$


\({{1.~\textit{Proof of}~\mathrm{(4.29)}.}}\) By the second projection property in (4.8), we have \(\varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big [\varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big )\). To infer the conclusion, it then suffices to prove that

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k}\big [\varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {R}},T}^{k}\big ({{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\big ) \end{aligned}$$

and invoke (2.15). To prove (4.31), we take \(\varvec{z}_T\in \varvec{{\mathcal {N}}}^{k+1}(T)\) and apply (4.6) with \(\underline{\varvec{v}}_T=\underline{\varvec{G}}_T^{k}{\underline{q}}_T\). Using the inclusion \({{\,\mathrm{Im}\,}}\underline{\varvec{G}}_T^{k}\subset {{\,\mathrm{Ker}\,}}{{{\mathbf {\mathsf{{C}}}}}}_T^k\) (see Remark 15) and the relation \(\varvec{\gamma }_{{\mathrm{t}},F}^k\big (\underline{\varvec{G}}_F^{k}{\underline{q}}_F\big )={{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\) valid for all \(F\in {\mathcal {F}}_{T}\) (see Proposition 3), we obtain

$$\begin{aligned} \begin{aligned} \int _T\varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{G}}_T^{k}{\underline{q}}_T\big )\cdot \mathbf{curl}\varvec{z}_T ={}&-\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot (\varvec{z}_T\times \varvec{n}_F)\\ ={}&\int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \mathbf{curl}\varvec{z}_T, \end{aligned} \end{aligned}$$

where the conclusion follows from the link between element and face gradients established in Proposition 1. By the isomorphism (2.10) with \(\ell =k+1\) and since \(\varvec{\mathcal {G}}^{\mathrm{c},k+1}(T)\subset \varvec{{\mathcal {N}}}^{k+1}(T)\), this establishes (4.31) and concludes the proof of (4.29).

\({2.~\textit{Proof of}~\mathrm{(4.30)}.}\) The second projection property in (4.13) ensures that

$$\begin{aligned} \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big [\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {G}},T}^{\mathrm{c},k}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big ). \end{aligned}$$

As before, it therefore remains to analyze the projections on \(\varvec{\mathcal {G}}^{k}(T)\). Apply (4.11) to \(\underline{\varvec{w}}_T=\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\) and a generic \(r_T\in {\mathcal {P}}_{}^{k+1}(T)\), and use the inclusion \({{\,\mathrm{Im}\,}}\underline{\varvec{C}}_T^{k}\subset {{\,\mathrm{Ker}\,}}D_T^k\) (see Proposition 5) to get

$$\begin{aligned} \int _T\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big )\cdot \mathbf{grad}r_T = \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F C_F^k\underline{\varvec{v}}_F~r_T = \int _T {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \mathbf{grad}r_T, \end{aligned}$$

where the conclusion is obtained applying the link between element and face curls of Proposition 4. This yields \(\varvec{\pi }_{\varvec{\mathcal {G}},T}^{k}\big [\varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\big )\big ] = \varvec{\pi }_{\varvec{\mathcal {G}},T}^{k}\big ({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\big )\), proving (4.30). \(\square \)

Corollary 1

(Bounds on discrete gradients and curl) For all \(F\in {\mathcal {F}}_{h}\), it holds

$$\begin{aligned} \Vert {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\Vert _{{\mathbf{L }}^2(F)}^2+\sum _{E\in {\mathcal {E}}_{F}}h_E\Vert G^k_Eq_E\Vert _{\text {L}^2(E)}^2\lesssim \vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F} \quad \forall {\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k. \end{aligned}$$

For all \(T\in {\mathcal {T}}_{h}\), it holds

$$\begin{aligned}&\Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\Vert _{{\mathbf{L }}^2(T)}^2+\sum _{F\in {\mathcal {F}}_{T}}h_F\Vert {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\Vert _{{\mathbf{L }}^2(F)}^2+\sum _{E\in {\mathcal {E}}_{T}}h_E^2\Vert G^k_Eq_E\Vert _{\text {L}^2(E)}^2 \lesssim \vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}\nonumber \\&\qquad \qquad \qquad \forall {\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k, \end{aligned}$$
$$\begin{aligned}&\Vert {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2+\sum _{F\in {\mathcal {F}}_{T}}h_F\Vert C_F^k\underline{\varvec{v}}_F\Vert _{{\mathbf{L }}^2(F)}^2 \lesssim \vert \vert \vert \underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}\qquad \forall \underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k. \end{aligned}$$


The definitions of \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},F}\), \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},T}\), \(\underline{\varvec{G}}_F^{k}\) and \(\underline{\varvec{G}}_T^{k}\) show that the edge gradient contributions in the left-hand sides of (4.32) and (4.33) are bounded by the corresponding right-hand sides. To bound the face and element gradient contributions in the left-hand sides of (4.32) and (4.33), simply apply (4.23) to \(\underline{\varvec{v}}_T=\underline{\varvec{G}}_T^{k}{\underline{q}}_T\) and use (3.26) along with (4.29). The estimate (4.34) is established in a similar way, using (4.30). \(\square \)

5 Poincaré Inequalities

In this section we state and prove Poincaré-type inequalities for the operators in the DDR sequence. Notice that we consider here the complex without boundary conditions, but one could alternatively consider the complex with (homogeneous) boundary conditions, for which similar inequalities are expected to hold. The details are left for a future work.

5.1 Discrete Poincaré Inequalities

Theorem 3

(Poincaré inequality for the gradient) Let \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\) be such that

$$\begin{aligned} \sum _{T\in {\mathcal {T}}_{h}}\int _TP_{\mathbf{grad},T}^{k+1}{\underline{q}}_T=0. \end{aligned}$$

Then, there exists a real number \(C>0\) independent of h and \({\underline{q}}_h\), and depending only on \(\Omega \), k, and the mesh regularity parameter, such that

$$\begin{aligned} \vert \vert \vert {\underline{q}}_h\vert \vert \vert _{\mathbf{grad},h}\le C\vert \vert \vert \underline{\varvec{G}}_h^{k}{\underline{q}}_h\vert \vert \vert _{\mathbf{curl},h}. \end{aligned}$$


See Sect. 5.2. \(\square \)

Remark 22

(Condition (5.1)) For \(k\ge 1\), owing to (4.3) the condition (5.1) is equivalent to

$$\begin{aligned} \sum _{T\in {\mathcal {T}}_{h}}\int _T q_T=0. \end{aligned}$$

For \(k=0\), the absence of element components means that translating (5.1) in terms of the components of \({\underline{q}}_h\) is less straightforward. Assuming that, for all \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\), Y is star-shaped with respect to \(\varvec{x}_Y{:}{=}\frac{1}{|Y|}\int _Y\varvec{x}\), and that this point is selected in the definition of the complements in Sect. 2.4, condition (5.1) becomes

$$\begin{aligned} \sum _{T\in {\mathcal {T}}_{h}}\sum _{F\in {\mathcal {F}}_{T}}\sum _{E\in {\mathcal {E}}_{F}}|P_{TFE}|\pi _{{\mathcal {P}},E}^{0}q_E = \frac{1}{2}\sum _{T\in {\mathcal {T}}_{h}}\sum _{F\in {\mathcal {F}}_{T}}\sum _{E\in {\mathcal {E}}_{F}}\sum _{V\in {\mathcal {V}}_{E}}|P_{TFE}| q_{{\mathcal {E}}_{F}}(\varvec{x}_V) = 0, \end{aligned}$$

where, for any mesh element \(T\in {\mathcal {T}}_{h}\), face \(F\in {\mathcal {F}}_{T}\), and edge \(E\in {\mathcal {E}}_{F}\) of vertices \(V_1\) and \(V_2\), \(P_{TFE}\) is the tetrahedron of vertices \(\varvec{x}_T\), \(\varvec{x}_F\), \(\varvec{x}_{V_1}\), and \(\varvec{x}_{V_2}\). This corresponds to the construction on the dual barycentric mesh of [12, Section 4.1].

We also notice, in passing, that condition (5.1) is not needed when considering the subspace of \({\underline{X}}_{\mathbf{grad},h}^k\) with homogeneous boundary conditions.

For the sake of completeness, we state in what follows Poincaré inequalities for the curl and the divergence that are easy consequences of the results of [29].

Theorem 4

(Poincaré inequality for the curl) Denote by \((b_0,b_1,b_2,b_3)\) the Betti numbers of \(\Omega \) (with \(b_0=1\) and \(b_3=0\)) and assume \(b_2=0\). Let \(({{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k)^\perp \) be the orthogonal of \({{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k\) in \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) for an inner product whose norm is, uniformly in h, equivalent to \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},h}\). Then, \(\underline{\varvec{C}}_h^k:({{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k)^\perp \rightarrow {{\,\mathrm{Ker}\,}}D_h^k\) is an isomorphism. Further assuming that \(b_1=0\), there exists \(C>0\) independent of h, and depending only on \(\Omega \), k and the mesh regularity parameter, such that

$$\begin{aligned} \vert \vert \vert \underline{\varvec{v}}_h\vert \vert \vert _{\mathbf{curl},h}\le C\vert \vert \vert \underline{\varvec{C}}_h^k\underline{\varvec{v}}_h\vert \vert \vert _{{{\,\mathrm{div}\,}},h}\qquad \forall \underline{\varvec{v}}_h\in ({{\,\mathrm{Ker}\,}}\underline{\varvec{C}}_h^k)^\perp . \end{aligned}$$


The isomorphism property is a consequence of (3.48). In order to prove the Poincaré inequality (5.3), combine [29, Theorem 20] with [29, Proposition 16] (which requires the additional assumption \(b_1=0\)) and the norm equivalence (4.25). \(\square \)

Theorem 5

(Poincaré inequality for the divergence) Let \(({{\,\mathrm{Ker}\,}}D_h^k)^\perp \) be the orthogonal of \({{\,\mathrm{Ker}\,}}D_h^k\) in \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) for an inner product whose norm is, uniformly in h, equivalent to \(\vert \vert \vert {\cdot }\vert \vert \vert _{{{\,\mathrm{div}\,}},h}\). Then, \(D_h^k:({{\,\mathrm{Ker}\,}}D_h^k)^\perp \rightarrow {\mathcal {P}}_{}^{k}({\mathcal {T}}_{h})\) is an isomorphism and there exists \(C>0\) independent of h, and depending only on \(\Omega \), k and the mesh regularity parameter, such that

$$\begin{aligned} \vert \vert \vert \underline{\varvec{w}}_h\vert \vert \vert _{{{\,\mathrm{div}\,}},h}\le C\Vert D_h^k\underline{\varvec{w}}_h\Vert _{\text {L}^2(\Omega )}\qquad \forall \underline{\varvec{w}}_h\in ({{\,\mathrm{Ker}\,}}D_h^k)^\perp . \end{aligned}$$


The isomorphism property is a consequence of (3.45). The Poincaré inequality (5.4) follows from [29, Theorem 18] accounting for the norm equivalence (4.25). \(\square \)

5.2 Proof of the Discrete Poincaré Inequality for the Gradient

We first prove a preliminary result, which will also be useful to establish adjoint consistency properties for the discrete gradient operator in Sect. 6.4.

Lemma 7

(Estimates on local \(\text {H}^{1}\)-seminorms of potentials) For all \(F\in {\mathcal {F}}_{h}\) and all \({\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k\), it holds

$$\begin{aligned} \Vert \mathbf{grad}\gamma _F^{k+1}{\underline{q}}_F\Vert _{{\mathbf{L }}^2(F)}^2\,{+}\sum _{E\in {\mathcal {E}}_{F}}h_E^{-1}\Vert \gamma _F^{k+1}{\underline{q}}_F-q_E\Vert _{\text {L}^2(E)}^2\lesssim \vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}^2. \end{aligned}$$

For all \(T\in {\mathcal {T}}_{h}\) and all \({\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k\), it holds

$$\begin{aligned} \Vert \mathbf{grad}P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\Vert _{{\mathbf{L }}^2(T)}^2\,{+}\sum _{F\in {\mathcal {F}}_{T}}h_F^{-1}\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-\gamma _F^{k+1}{\underline{q}}_F\Vert _{\text {L}^2(F)}^2\lesssim \vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}^2. \end{aligned}$$


\({{1.~\textit{Proof of}~\mathrm{(5.5)}.}}\) Let \({\underline{q}}_F\in {\underline{X}}_{\mathbf{grad},F}^k\) and define \(A_{q,\partial F}\in {\mathbb {R}}\) as the average of \(q_{{\mathcal {E}}_{F}}\) over \(\partial F\). Introducing \(A_{q,\partial F}=\gamma _F^{k+1}\big ({\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )\) (see (3.14)), using \(h_E\simeq h_F\) and \({{\,\mathrm{card}\,}}({\mathcal {E}}_{F})\lesssim 1\), and invoking a discrete trace inequality on \(\gamma _F^{k+1}\big ({\underline{q}}_F-A_{q,\partial F}\big )\), we have

$$\begin{aligned} \begin{aligned} \sum _{E\in {\mathcal {E}}_{F}}h_E^{-1}\Vert \gamma _F^{k+1}{\underline{q}}_F-q_E\Vert _{\text {L}^2(E)}^2&\lesssim \sum _{E\in {\mathcal {E}}_{F}}h_E^{-1}\Vert q_E-A_{q,\partial F}\Vert _{\text {L}^2(E)}^2 \\&\quad + h_F^{-2}\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-A_{q,\partial F}\big )\Vert _{\text {L}^2(F)}^2. \end{aligned} \end{aligned}$$

Since \(q_{{\mathcal {E}}_{F}}\) is continuous, recalling that \(q_E=(q_{{\mathcal {E}}_{h}})_{|E}\) for all \(E\in {\mathcal {E}}_{F}\) and using a Poincaré–Wirtinger inequality along \(\partial F\) followed by the definition (4.21) of \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},F}\) yields

$$\begin{aligned} \sum _{E\in {\mathcal {E}}_{F}}h_E^{-1}\Vert q_E-A_{q,\partial F}\Vert _{\text {L}^2(E)}^2 \lesssim h_F\sum _{E\in {\mathcal {E}}_{F}}\Vert G_E^{k}q_E\Vert _{\text {L}^2(E)}^2\lesssim \vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}^2. \end{aligned}$$

We now turn to the second term in (5.7). Using the isomorphism property (2.9), we select \(\varvec{v}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k+2}(F)\) such that \({{\,\mathrm{div}\,}}_F\varvec{v}_F = {\gamma _F^{k+1}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )}\). By Lemma 9 in “Appendix A”, we have

$$\begin{aligned} \Vert \varvec{v}_F\Vert _{{\mathbf{L }}^2(F)}\lesssim h_F\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )\Vert _{\text {L}^2(F)}. \end{aligned}$$

The discrete trace inequality of [28, Lemma 1.32] and the consistency property (3.13) of \({{{\mathbf {\mathsf{{G}}}}}}_F^{k}\) then yield

$$\begin{aligned}&\Vert \varvec{v}_F\Vert _{{\mathbf{L }}^2(F)}+\left( \sum _{E\in {\mathcal {E}}_{F}}h_E\Vert \varvec{v}_F\Vert _{\text {L}^2(E)}^2\right) ^{\frac{1}{2}} \lesssim h_F\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )\Vert _{\text {L}^2(F)}, \\&\qquad \qquad {{{\mathbf {\mathsf{{G}}}}}}_F^{k}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big ) = {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F. \end{aligned}$$

Hence, applying the definition (3.10) of \(\gamma _F^{k+1}\) to \({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\in {\underline{X}}_{\mathbf{grad},F}^k\), taking \(\varvec{v}_F\) above as a test function, and using Cauchy–Schwarz inequalities, we obtain

$$\begin{aligned} \begin{aligned}&\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )\Vert _{\text {L}^2(F)}^2\\&\quad \lesssim h_F\Vert {{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\Vert _{{\mathbf{L }}^2(F)}\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )\Vert _{\text {L}^2(F)}\\&\qquad + \left( \sum _{E\in {\mathcal {E}}_{F}}h_E^{-1}\Vert q_E-A_{q,\partial F}\Vert _{\text {L}^2(E)}^2\right) ^{\frac{1}{2}} h_F\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-{\underline{I}}_{\mathbf{grad},F}^kA_{q,\partial F}\big )\Vert _{\text {L}^2(F)}. \end{aligned} \end{aligned}$$

Simplifying and recalling (4.32) and (5.8), we infer \(\Vert \gamma _F^{k+1}\big ({\underline{q}}_F-A_{q,\partial F}\big )\Vert _{\text {L}^2(F)}\lesssim h_F\vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}\) which, plugged together with (5.8) into (5.7), gives the following estimate on the second term in the left-hand side of (5.5):

$$\begin{aligned} \sum _{E\in {\mathcal {E}}_{F}}h_E^{-1}\Vert \gamma _F^{k+1}{\underline{q}}_F-q_E\Vert _{\text {L}^2(E)}^2 \lesssim \vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}^2. \end{aligned}$$

Integrating by parts the definition (3.10) of \(\gamma _F^{k+1}\) applied to a generic \(\varvec{v}_F\in \varvec{\mathcal {P}}_{}^{k}(F)\) (see Remark 8), we have

$$\begin{aligned} \begin{aligned} \int _F\mathbf{grad}_F\gamma _F^{k+1}{\underline{q}}_F\cdot \varvec{v}_F ={}&\int _F{{{\mathbf {\mathsf{{G}}}}}}_F^{k}{\underline{q}}_F\cdot \varvec{v}_F\\&+ \sum _{E\in {\mathcal {E}}_{F}}\omega _{FE}\int _E (\gamma _F^{k+1}{\underline{q}}_F-q_E)(\varvec{v}_F\cdot \varvec{n}_{FE}). \end{aligned} \end{aligned}$$

Making \(\varvec{v}_F=\mathbf{grad}_F\gamma _F^{k+1}{\underline{q}}_F\), using Cauchy–Schwarz inequalities, (4.32), a discrete trace inequality, and (5.9) then yields the bound on the first term in the left-hand side of (5.5).

\(\underline{2.~\textit{Proof of}~\mathrm{(5.6)}.}\) The ideas are similar to those used to prove (5.5), but first we need to establish a Poincaré–Wirtinger inequality for face potentials (which is not straightforward given their discontinuity). Let

$$\begin{aligned} A_{q,\partial T}{:}{=}\frac{1}{|\partial T|}\sum _{F\in {\mathcal {F}}_{T}}|F|A_{q,F}\quad \text {with}\quad A_{q,F}{:}{=}\frac{1}{|F|}\int _F\gamma _F^{k+1}{\underline{q}}_F \end{aligned}$$

denote the average over \(\partial T\) of the piecewise polynomial function defined by \((\gamma _F^{k+1}{\underline{q}}_F)_{F\in {\mathcal {F}}_{T}}\). We write, using triangle inequalities,

$$\begin{aligned}&\sum _{F\in {\mathcal {F}}_{T}}h_F^{-1}\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-\gamma _F^{k+1}{\underline{q}}_F\Vert _{\text {L}^2(F)}^2 \nonumber \\&\quad \lesssim \sum _{F\in {\mathcal {F}}_{T}}h_F^{-1}\Vert \gamma _F^{k+1}{\underline{q}}_F-A_{q,F}\Vert _{\text {L}^2(F)}^2 \nonumber \\&\qquad +\sum _{F\in {\mathcal {F}}_{T}}h_F^{-1}\Vert A_{q,F}-A_{q,\partial T}\Vert _{\text {L}^2(F)}^2 \nonumber \\&\qquad +\sum _{F\in {\mathcal {F}}_{T}}h_F^{-1}\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-A_{q,\partial T}\Vert _{\text {L}^2(F)}^2 {{=}{:}}{\mathfrak {T}}_1+{\mathfrak {T}}_2+{\mathfrak {T}}_3. \end{aligned}$$

The first term is estimated using a Poincaré–Wirtinger inequality on \(\gamma _F^{k+1}{\underline{q}}_F\) and invoking (5.5) together with the definition (4.21) of \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},T}\) to get

$$\begin{aligned} \begin{aligned} {\mathfrak {T}}_1&\lesssim \sum _{F\in {\mathcal {F}}_{T}}h_F^{-1}\left( h_F\Vert \mathbf{grad}_F\gamma _F^{k+1}{\underline{q}}_F\Vert _{{\mathbf{L }}^2(F)}\right) ^2 \\&\lesssim \sum _{F\in {\mathcal {F}}_{T}}h_F\vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}^2 \\&\lesssim \vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}^2. \end{aligned} \end{aligned}$$

Let us turn to the second term in (5.10). Since \(A_{q,\partial T}\) is a weighted average of all \((A_{q,F})_{F\in {\mathcal {F}}_{T}}\), the bound

$$\begin{aligned} {\mathfrak {T}}_2\lesssim \vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}^2 \end{aligned}$$

follows if we prove that, for all \(F,F'\in {\mathcal {F}}_{T}\),

$$\begin{aligned} h_F^{-1}\Vert A_{q,F} - A_{q,F'}\Vert _{\text {L}^2(F)}^2 = h_F^{-1}|F|\,|A_{q,F} - A_{q,F'}|^2 \lesssim \vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}^2. \end{aligned}$$

Creating a sequence \((F=F_0,F_1,\ldots ,F_m=F')\) of faces in \({\mathcal {F}}_{T}\) such that, for all \(i=0,\ldots ,m-1\), the faces \(F_i,F_{i+1}\) share an edge \(E_i\), inserting

$$\begin{aligned}&-\pi _{{\mathcal {P}},E_0}^{0}q_{E_0}+\sum _{i=0}^{m-2}\left[ \left( \pi _{{\mathcal {P}},E_i}^{0}q_{E_i} - A_{q,F_{i+1}}\right) -\left( \pi _{{\mathcal {P}},E_{i+1}}^{0}q_{E_{i+1}}-A_{q,F_{i+1}}\right) \right] \\&\qquad \qquad +\pi _{{\mathcal {P}},E_{m-1}}^{0}q_{E_{m-1}} = 0 \end{aligned}$$

into \(|A_{q,F}-A_{q,F'}|\), using triangle inequalities and the fact that \(h_{F_i}\simeq h_{F_{i+1}}\) and \(|F_{i}|\simeq |F_{i+1}|\) for all \(i=0,\ldots ,m-1\) by mesh regularity, and recalling the definition (4.21) of \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},F}\), (5.13) is a consequence of

$$\begin{aligned} \forall F\in {\mathcal {F}}_{T},\quad h_F^{-1}|F|\,|A_{q,F}-\pi _{{\mathcal {P}},E}^{0}q_E|^2\lesssim h_F\vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}^2 \quad \forall E\in {\mathcal {E}}_{F}. \end{aligned}$$

To prove this relation, we write

$$\begin{aligned} \Vert A_{q,F}-\pi _{{\mathcal {P}},E}^{0}q_E\Vert _{\text {L}^2(E)}^2 \le {}&\Vert A_{q,F}-q_E\Vert _{\text {L}^2(E)}^2 \\ \lesssim {}&h_F^{-1}\Vert A_{q,F} - \gamma _F^{k+1}{\underline{q}}_F\Vert _{\text {L}^2(F)}^2+\Vert \gamma _F^{k+1}{\underline{q}}_F - q_E\Vert _{\text {L}^2(E)}^2 \\ \lesssim {}&h_F\vert \vert \vert \underline{\varvec{G}}_F^{k}{\underline{q}}_F\vert \vert \vert _{\mathbf{curl},F}^2, \end{aligned}$$

where the first inequality comes from the \(\text {L}^2\)-boundedness of \(\pi _{{\mathcal {P}},E}^{0}\), the second inequality is obtained introducing \(\gamma _F^{k+1}{\underline{q}}_F\) and using a triangle inequality together with a discrete trace inequality, while (5.5) together with the same arguments that lead to (5.11) yield the conclusion. The relation (5.14) follows noticing that \(|F|\simeq h_F|E|\), so that \(|F|\,|A_{q,F}-\pi _{{\mathcal {P}},E}^{0}q_E|^2\simeq h_F\Vert A_{q,F}-\pi _{{\mathcal {P}},E}^{0}q_E\Vert _{\text {L}^2(E)}^2\). This concludes the proof of (5.13), hence of (5.12).

Finally, for \({\mathfrak {T}}_3\), we apply the definition (4.1) of \(P_{\mathbf{grad},T}^{k+1}\big ({\underline{q}}_T-{\underline{I}}_{\mathbf{grad},T}^k A_{q,\partial T}\big )\) with \(\varvec{v}_T\in \varvec{\mathcal {R}}^{\mathrm{c},k+2}(T)\) such that

$$\begin{aligned} {{\,\mathrm{div}\,}}\varvec{v}_T=P_{\mathbf{grad},T}^{k+1}\big ({\underline{q}}_T-{\underline{I}}_{\mathbf{grad},T}^k A_{q,\partial T}\big ) \end{aligned}$$

and \(\Vert \varvec{v}_T\Vert _{{\mathbf{L }}^2(T)}\lesssim h_T\Vert P_{\mathbf{grad},T}^{k+1}({\underline{q}}_T-{\underline{I}}_{\mathbf{grad},T}^k A_{q,\partial T})\Vert _{\text {L}^2(T)}\), see Lemma 9. Using the consistency properties (4.2) of \(P_{\mathbf{grad},T}^{k+1}\), (3.16) of \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\) and (3.14) of \(\gamma _F^{k+1}\), and a discrete trace inequality, this gives

$$\begin{aligned} \Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T- A_{q,\partial T}\Vert _{\text {L}^2(T)} \lesssim {}&h_T\Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\Vert _{{\mathbf{L }}^2(T)}\nonumber \\&+h_T\sum _{F\in {\mathcal {F}}_{T}}h_F^{-\frac{1}{2}}\Vert \gamma _F^{k+1}{\underline{q}}_F-A_{q,\partial T}\Vert _{\text {L}^2(F)}\nonumber \\ \lesssim {}&h_T\vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T} + h_T\left( {\mathfrak {T}}_1^{\frac{1}{2}}+{\mathfrak {T}}_2^{\frac{1}{2}}\right) , \end{aligned}$$

where the second inequality follows from (4.33) and a triangle inequality to write

$$\begin{aligned} \begin{aligned} \sum _{F\in {\mathcal {F}}_{T}}h_F^{-\frac{1}{2}}\Vert \gamma _F^{k+1}{\underline{q}}_F-A_{q,\partial T}\Vert _{\text {L}^2(F)}&\le \sum _{F\in {\mathcal {F}}_{T}}h_F^{-\frac{1}{2}}\Vert \gamma _F^{k+1}{\underline{q}}_F-A_{q,F}\Vert _{\text {L}^2(F)} \\&\quad +\sum _{F\in {\mathcal {F}}_{T}}h_F^{-\frac{1}{2}}\Vert A_{q,F}-A_{q,\partial T}\Vert _{\text {L}^2(F)}. \end{aligned} \end{aligned}$$

Using discrete trace inequalities and the estimates (5.11) and (5.12) on \({\mathfrak {T}}_1\) and \({\mathfrak {T}}_2\), (5.15) leads to

$$\begin{aligned} {\mathfrak {T}}_3\lesssim h_T^{-2}\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T- A_{q,\partial T}\Vert _{\text {L}^2(T)}^2\lesssim \vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}^2. \end{aligned}$$

Plugging this bound together with the estimates on \({\mathfrak {T}}_1\) and \({\mathfrak {T}}_2\) into (5.10) concludes the proof of the bound on the second term in the right-hand side of (5.6). To bound the first term in the left-hand side of (5.6), we proceed as for \(\mathbf{grad}_F\gamma _F^{k+1}{\underline{q}}_F\) in Step 1 of this proof, using an integration by parts in the definition (4.1) of \(P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\) and selecting the test function \(\varvec{v}_T=\mathbf{grad}P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\) (see Remark 17). \(\square \)

We are now ready to prove the discrete Poincaré inequality for the gradient.

Proof (Theorem 3)

By the orthogonality condition (5.1), we can apply the discrete Poincaré–Wirtinger inequality in Hybrid High-Order spaces [28, Theorem 6.5] (with \(p=q=2\)) to the vector of element- and face-polynomials \(((P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T)_{T\in {\mathcal {T}}_{h}},(\gamma _F^{k+1}{\underline{q}}_T)_{F\in {\mathcal {F}}_{h}})\) to get

$$\begin{aligned} \begin{aligned}&\sum _{T\in {\mathcal {T}}_{h}}\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\Vert _{\text {L}^2(T)}^2 \\&\quad \lesssim \sum _{T\in {\mathcal {T}}_{h}}\left( \Vert \mathbf{grad}P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\Vert _{{\mathbf{L }}^2(T)}^2 {+} \sum _{F\in {\mathcal {F}}_{T}} h_F^{-1}\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T{-}\,\gamma _F^{k+1}{\underline{q}}_T\Vert _{\text {L}^2(F)}^2 \right) \\&\quad \lesssim \vert \vert \vert \underline{\varvec{G}}_h^{k}{\underline{q}}_h\vert \vert \vert _{\mathbf{curl},h}^2, \end{aligned} \end{aligned}$$

where the conclusion is a consequence of (5.6) followed by the definition (4.21) of the \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{curl},h}\)-norm.

Let \(T\in {\mathcal {T}}_{h}\). By definition (4.17) of \(\text {s}_{\mathbf{grad},T}\) we have

$$\begin{aligned} \begin{aligned} \text {s}_{\mathbf{grad},T}({\underline{q}}_T,{\underline{q}}_T)&= \sum _{F\in {\mathcal {F}}_{T}}h_F\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-\gamma _F^{k+1}{\underline{q}}_T\Vert _{\text {L}^2(F)}^2 \\&\quad +\sum _{E\in {\mathcal {E}}_{T}}h_E^2\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-q_E\Vert _{\text {L}^2(E)}^2 \\&\lesssim \sum _{F\in {\mathcal {F}}_{T}}h_F\Vert P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T-\gamma _F^{k+1}{\underline{q}}_T\Vert _{\text {L}^2(F)}^2 \\&\quad +\sum _{F\in {\mathcal {F}}_{T}}\sum _{E\in {\mathcal {E}}_{F}}h_E^2\Vert \gamma _F^{k+1}{\underline{q}}_T-q_E\Vert _{\text {L}^2(E)}^2 \\&\lesssim h_T^2\vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}^2, \end{aligned} \end{aligned}$$

where the first inequality follows writing \(\sum _{E\in {\mathcal {E}}_{T}}\bullet =\frac{1}{2} \sum _{F\in {\mathcal {F}}_{T}}\sum _{E\in {\mathcal {E}}_{F}}\bullet \), introducing \(\pm \gamma _F^{k+1}{\underline{q}}_F\) in the norms and using triangle and discrete trace inequalities, while the conclusion is obtained invoking (5.5), (5.6), \(h_E\simeq h_F\simeq h_T\) and the definition of \(\vert \vert \vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\vert \vert \vert _{\mathbf{curl},T}\).

Using \(h_T\lesssim 1\), summing (5.17) over \(T\in {\mathcal {T}}_{h}\), and adding the resulting estimate to (5.16) we infer that \(\Vert {\underline{q}}_h\Vert _{\mathbf{grad},h}\lesssim \vert \vert \vert \underline{\varvec{G}}_h^{k}{\underline{q}}_h\vert \vert \vert _{\mathbf{curl},h}\). The Poincaré inequality (5.2) then follows from the norm equivalence (4.25). \(\square \)

6 Consistency Results

6.1 Primal Consistency

In this section we state consistency results for the discrete potentials, vector calculus operators, stabilization bilinear forms, and discrete \(\text {L}^2\)-products. Because of the nature of the interpolator on \(\underline{\varvec{X}}_{\mathbf{curl},T}^k\) (which requires higher regularity of functions), we introduce the following notation: For \(T\in {\mathcal {T}}_{h}\) and \(\varvec{v}\in {\mathbf{H }}^{\max (k+1,2)}(T)\),

$$\begin{aligned} |\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}{:}{=}\left\{ \begin{array}{l@{\quad }l}|\varvec{v}|_{{\mathbf{H }}^{1}(T)}+h_T|\varvec{v}|_{{\mathbf{H }}^{2}(T)}&{} \text{ if } k=0,\\ |\varvec{v}|_{{\mathbf{H }}^{k+1}(T)}&{} \text{ if } k\ge 1. \end{array}\right. \end{aligned}$$

The corresponding global broken seminorm \(|{\cdot }|_{{\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})}\) is such that, for all \(\varvec{v}\in {\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})\),

$$\begin{aligned} |\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})}{:}{=}\left( \sum _{T\in {\mathcal {T}}_{h}}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}^2\right) ^{\nicefrac 12}. \end{aligned}$$

The proofs of the following theorems are postponed to Sect. 6.3.

Theorem 6

(Consistency of the potential reconstructions) It holds, for all \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} \Vert P_{\mathbf{grad},T}^{k+1}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big ) - q\Vert _{\text {L}^2(T)}&\lesssim h_T^{k+2}|q|_{\text {H}^{k+2}(T)}&\quad&\forall q\in \text {H}^{k+2}(T), \end{aligned}$$
$$\begin{aligned} \Vert \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big ) - \varvec{v}\Vert _{{\mathbf{L }}^2(T)}&\lesssim h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}&\quad&\forall \varvec{v}\in {\mathbf{H }}^{\max (k+1,2)}(T), \end{aligned}$$
$$\begin{aligned} \Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big ) - \varvec{w}\Vert _{{\mathbf{L }}^2(T)}&\lesssim h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+1}(T)}&\quad&\forall \varvec{w}\in {\mathbf{H }}^{k+1}(T). \end{aligned}$$

Theorem 7

(Primal consistency of the discrete vector calculus operators) It holds, for all \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} \Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big ) {-} \mathbf{grad}q\Vert _{{\mathbf{L }}^2(T)} \lesssim {}&h_T^{k+1}|q|_{\text {H}^{k+2}(T)} \qquad \forall q\in \text {H}^{k+2}(T), \end{aligned}$$
$$\begin{aligned} \Vert {{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big ) {-} \mathbf{curl}\varvec{v}\Vert _{{\mathbf{L }}^2(T)} \lesssim {}&h_T^{k+1}|\mathbf{curl}\varvec{v}|_{{\mathbf{H }}^{k+1}(T)}\nonumber \\&\qquad \forall \varvec{v}\in {\mathbf{H }}^{2}(T) \text{ s.t. } \mathbf{curl}\varvec{v}\in {\mathbf{H }}^{k+1}(T), \end{aligned}$$
$$\begin{aligned} \Vert D_T^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big ) {-} {{\,\mathrm{div}\,}}\varvec{w}\Vert _{\text {L}^2(T)} \lesssim {}&h_T^{k+1}|{{\,\mathrm{div}\,}}\varvec{w}|_{\text {H}^{k+1}(T)}\nonumber \\&\qquad \forall \varvec{w}\in {\mathbf{H }}^{1}(T) \text{ s.t. } {{\,\mathrm{div}\,}}\varvec{w}\in \text {H}^{k+1}(T). \end{aligned}$$

Theorem 8

(Consistency of stabilization forms) For all \(T\in {\mathcal {T}}_{h}\), the stabilization forms defined by (4.17)–(4.19) satisfy the following consistency properties:

$$\begin{aligned} \text {s}_{\mathbf{grad},T}({\underline{I}}_{\mathbf{grad},T}^k q, {\underline{I}}_{\mathbf{grad},T}^k q)^{\frac{1}{2}}&\lesssim h_T^{k+2}|q|_{\text {H}^{k+2}(T)}&\qquad&\forall q\in \text {H}^{k+2}(T), \end{aligned}$$
$$\begin{aligned} \text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v},\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v})^{\frac{1}{2}}&\lesssim h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}&\qquad&\forall \varvec{v}\in {\mathbf{H }}^{\max (k+1,2)}(T), \end{aligned}$$
$$\begin{aligned} \text {s}_{{{\,\mathrm{div}\,}},T}(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w},\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w})^{\frac{1}{2}}&\lesssim h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+1}(T)}&\qquad&\forall \varvec{w}\in {\mathbf{H }}^{k+1}(T). \end{aligned}$$

The following corollary is a straightforward consequence of Theorems 6 and 8, and of the definitions (4.14)–(4.16) of the discrete \(\text {L}^2\)-products. Its proof is therefore omitted.

Corollary 2

(Consistency of discrete \(\text {L}^2\)-products) It holds, for all \(T\in {\mathcal {T}}_{h}\),

$$\begin{aligned} \left| \int _T q\,P_{\mathbf{grad},T}^{k+1}{\underline{r}}_T - ({\underline{I}}_{\mathbf{grad},T}^kq,{\underline{r}}_T)_{\mathbf{grad},T}\right|&\lesssim h_T^{k+2}|q|_{\text {H}^{k+2}(T)}\Vert {\underline{r}}_T\Vert _{\mathbf{grad},T}\nonumber \\&\forall q\in \text {H}^{k+2}(T)\,,\;\forall {\underline{r}}_T\in {\underline{X}}_{\mathbf{grad},T}^k, \end{aligned}$$
$$\begin{aligned} \left| \int _T \varvec{v} \cdot {\varvec{P}}^k_{\mathbf{curl},T}\underline{\varvec{\zeta }}_T - (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v},\underline{\varvec{\zeta }}_T)_{\mathbf{curl},T}\right|&\lesssim h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}\Vert \underline{\varvec{\zeta }}_T\Vert _{\mathbf{curl},T}\nonumber \\&\forall \varvec{v}\in {\mathbf{H }}^{\max (k+1,2)}(T),\,\forall \underline{\varvec{\zeta }}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k, \end{aligned}$$
$$\begin{aligned} \left| \int _T \varvec{w} \cdot {\varvec{P}}^k_{\mathrm{div},T}\underline{\varvec{\xi }}_T - (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w},\underline{\varvec{\xi }}_T)_{{{\,\mathrm{div}\,}},T}\right|&\lesssim h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+1}(T)}\Vert \underline{\varvec{\xi }}_T\Vert _{{{\,\mathrm{div}\,}},T}\nonumber \\&\forall \varvec{w}\in {\mathbf{H }}^{k+1}(T),\,\forall \underline{\varvec{\xi }}_T\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k. \end{aligned}$$

6.2 Adjoint Consistency

Whenever a (formal) integration by parts is used to write the weak formulation of a PDE problem underpinning its discretization, a form of adjoint consistency is required in the convergence analysis. We state here the adjoint consistency of the operators in the DDR sequence (3.37). Since this sequence does not incorporate boundary conditions, the corresponding adjoint consistency will be based on essential (homogeneous) boundary conditions. The regularity requirements will be expressed in terms of the broken Sobolev spaces and norms such that, for any \(\ell \ge 1\),

$$\begin{aligned} \text {H}^{\ell }({\mathcal {T}}_{h})&{:}{=}\left\{ g\in \text {L}^2(\Omega )\,:\,g_{|T}\in \text {H}^{\ell }(T)\text { for all }T\in {\mathcal {T}}_{h}\right\} \\&\quad \text { and }|g|_{\text {H}^{\ell }({\mathcal {T}}_{h})} {:}{=}\left( \sum _{T\in {\mathcal {T}}_{h}}|g_{|T}|_{\text {H}^{\ell }(T)}^2 \right) ^{\frac{1}{2}}. \end{aligned}$$

The corresponding seminorms for vector-valued functions are denoted using boldface letters, as usual. We denote in what follows by \(\text {H}^{1}_0(\Omega )\), \(\mathbf{H }_0({{\,\mathrm{div}\,}};\Omega )\), and \(\mathbf{H }_0(\mathbf{curl};\Omega )\) the subspaces of \(\text {H}^{1}(\Omega )\), \(\mathbf{H }({{\,\mathrm{div}\,}};\Omega )\), and \(\mathbf{H }(\mathbf{curl};\Omega )\) spanned by functions whose trace, normal trace, and tangential trace vanish on the boundary \(\partial \Omega \) of \(\Omega \), respectively.

Theorem 9

(Adjoint consistency for the gradient) Define the gradient adjoint consistency error \(\tilde{{\mathcal {E}}}_{\mathbf{grad},h}:\big ({\mathbf{C }}^{0}({\overline{\Omega }})\cap \mathbf{H }_0({{\,\mathrm{div}\,}};\Omega )\big )\times {\underline{X}}_{\mathbf{grad},h}^k\rightarrow {\mathbb {R}}\) by: For all \((\varvec{v},{\underline{q}}_h)\in \big ({\mathbf{C }}^{0}({\overline{\Omega }})\cap \mathbf{H }_0({{\,\mathrm{div}\,}};\Omega )\big )\times {\underline{X}}_{\mathbf{grad},h}^k\),

$$\begin{aligned} \tilde{{\mathcal {E}}}_{\mathbf{grad},h}(\varvec{v},{\underline{q}}_h) {:}{=}\sum _{T\in {\mathcal {T}}_{h}}\left[ (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}_{|T},\underline{\varvec{G}}_T^{k}{\underline{q}}_T)_{\mathbf{curl},T} + \int _T{{\,\mathrm{div}\,}}\varvec{v}~P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T \right] . \end{aligned}$$

Then, it holds, for all \(\varvec{v}\in {\mathbf{C }}^{0}({\overline{\Omega }})\cap \mathbf{H }_0({{\,\mathrm{div}\,}};\Omega )\) such that \(\varvec{v}\in {\mathbf{H }}^{\max (k+1,2)}({\mathcal {T}}_{h})\) and all \({\underline{q}}_h\in {\underline{X}}_{\mathbf{grad},h}^k\),

$$\begin{aligned} |\tilde{{\mathcal {E}}}_{\mathbf{grad},h}(\varvec{v},{\underline{q}}_h)| \lesssim h^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})} \Vert \underline{\varvec{G}}_h^{k}{\underline{q}}_h\Vert _{\mathbf{curl},h}. \end{aligned}$$


See Sect. 6.4. \(\square \)

Theorem 10

(Adjoint consistency for the curl) Define the curl adjoint consistency error \(\tilde{{\mathcal {E}}}_{\mathbf{curl},h}:\big ({\mathbf{C }}^{0}({\overline{\Omega }})\cap \mathbf{H }_0(\mathbf{curl};\Omega )\big )\times \underline{\varvec{X}}_{\mathbf{curl},h}^k\rightarrow {\mathbb {R}}\) by: For all \((\varvec{w},\underline{\varvec{v}}_h)\in \big ({\mathbf{C }}^{0}({\overline{\Omega }})\cap \mathbf{H }_0(\mathbf{curl};\Omega )\big )\times \underline{\varvec{X}}_{\mathbf{curl},h}^k\),

$$\begin{aligned} \tilde{{\mathcal {E}}}_{\mathbf{curl},h}(\varvec{w},\underline{\varvec{v}}_h){:}{=}\sum _{T\in {\mathcal {T}}_{h}}\left[ (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}_{|T},\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T)_{{{\,\mathrm{div}\,}},T} - \int _T\mathbf{curl}\varvec{w}\cdot \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T \right] . \end{aligned}$$

Then, for all \(\varvec{w}\in {\mathbf{C }}^{0}({\overline{\Omega }})\cap \mathbf{H }_0(\mathbf{curl};\Omega )\) such that \(\varvec{w}\in {\mathbf{H }}^{k+2}({\mathcal {T}}_{h})\) and all \(\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\),

$$\begin{aligned} |\tilde{{\mathcal {E}}}_{\mathbf{curl},h}(\varvec{w},\underline{\varvec{v}}_h)| \lesssim h^{k+1}\left( |\varvec{w}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})} +|\varvec{w}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})} \right) \left( \Vert \underline{\varvec{v}}_h\Vert _{\mathbf{curl},h} +\Vert \underline{\varvec{C}}_h^k\underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h} \right) . \end{aligned}$$


See Sect. 6.5. \(\square \)

Theorem 11

(Adjoint consistency for the divergence) Define the divergence adjoint consistency error \(\tilde{{\mathcal {E}}}_{{{\,\mathrm{div}\,}},h}:\big (\text {C}^{0}({\overline{\Omega }})\cap H_0^1(\Omega )\big )\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\rightarrow {\mathbb {R}}\) by: For all \((q,\underline{\varvec{v}}_h)\in \big (\text {C}^{0}({\overline{\Omega }})\cap H_0^1(\Omega )\big )\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\),

$$\begin{aligned} \tilde{{\mathcal {E}}}_{{{\,\mathrm{div}\,}},h}(q,\underline{\varvec{v}}_h){:}{=}\int _\Omega \pi _{{\mathcal {P}},h}^{k} q~D_h^k\underline{\varvec{v}}_h + \sum _{T\in {\mathcal {T}}_{h}}\int _\Omega \mathbf{grad}q\cdot \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T. \end{aligned}$$

Then, for all \(q\in \text {C}^{0}({\overline{\Omega }})\cap H_0^1(\Omega )\) such that \(q\in \text {H}^{k+2}({\mathcal {T}}_{h})\) and all \(\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\),

$$\begin{aligned} |\tilde{{\mathcal {E}}}_{{{\,\mathrm{div}\,}},h}(q,\underline{\varvec{v}}_h)| \lesssim h^{k+1}|q|_{\text {H}^{k+2}({\mathcal {T}}_{h})}\Vert \underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h}. \end{aligned}$$


See Sect. 6.6. \(\square \)

6.3 Proof of the Primal Consistency

Proof (Theorem 6)

Let us start with (6.2). Since \(\text {H}^{2}(T)\subset \text {C}^{0}({\overline{T}})\), the mapping \(P_{\mathbf{grad},T}^{k+1}\circ {\underline{I}}_{\mathbf{grad},T}^k:\text {H}^{2}(T)\rightarrow {\mathcal {P}}_{}^{k+1}(T)\) is well-defined and, owing to (4.2), it is a projector. Moreover, combining (4.26) and (4.22), it satisfies the \(\text {L}^2(T)\)-boundedness

$$\begin{aligned} \Vert P_{\mathbf{grad},T}^{k+1}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big )\Vert _{\text {L}^2(T)}\lesssim \Vert q\Vert _{\text {L}^2(T)}+h_T|q|_{\text {H}^{1}(T)}+h_T^2|q|_{\text {H}^{2}(T)} \quad \forall q\in \text {H}^{2}(T). \end{aligned}$$

The approximation property (6.2) is thus a direct consequence of [28, Lemma 1.43]. The proofs of (6.3) (for \(k\ge 1\)) and (6.4) are similar, using the fact that the considered operators are projectors onto \(\varvec{\mathcal {P}}_{}^{k}(T)\) (see (4.7) and (4.12)) and invoking Proposition 6 and Lemma 6 to establish their \(\text {L}^2\)-boundedness. In the case \(k=0\), since \(\varvec{P}_{\mathbf{curl},T}^0\circ \underline{\varvec{I}}_{\mathbf{curl},T}^0\) requires the \({\mathbf{H }}^{2}\)-regularity of its argument, with \(2>k+1\), (6.3) cannot be deduced directly from [28, Lemma 1.43]. However, using the bounds (4.23) and (4.27) a direct proof can be done by introducing \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}=\varvec{P}_{\mathbf{curl},T}^0\big (\underline{\varvec{I}}_{\mathbf{curl},T}^0 \varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}\big )\):

$$\begin{aligned} \begin{aligned}&\Vert \varvec{P}_{\mathbf{curl},T}^0\big (\underline{\varvec{I}}_{\mathbf{curl},T}^0\varvec{v}\big ) - \varvec{v}\Vert _{{\mathbf{L }}^2(T)} \\&\quad \le \Vert \varvec{P}_{\mathbf{curl},T}^0\big [\underline{\varvec{I}}_{\mathbf{curl},T}^0(\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v})\big ]\Vert _{{\mathbf{L }}^2(T)} +\Vert \varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}-\varvec{v}\Vert _{{\mathbf{L }}^2(T)}\\&\quad \lesssim \Vert \varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}\Vert _{{\mathbf{L }}^2(T)}+h_T|\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}|_{{\mathbf{H }}^{1}(T)} +h_T^2|\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}|_{{\mathbf{H }}^{2}(T)}, \end{aligned} \end{aligned}$$

and (6.3) follows using the approximation properties of \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\), the fact that the \({\mathbf{H }}^{1}(T)\)- and \({\mathbf{H }}^{2}(T)\)-seminorms of \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{0}\varvec{v}\) vanish, and the definition (6.1) of \(|{\cdot }|_{{\mathbf{H }}^{(k+1,2)}(T)}\). \(\square \)

Proof (Theorem 7)

Let us prove (6.5). For any \({\underline{q}}_T\in {\underline{X}}_{\mathbf{grad},T}^k\), taking \(\varvec{w}_T = {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\) in (3.11) and using Cauchy–Schwarz inequalities along with discrete inverse and trace inequalities, it is inferred, after simplification,

$$\begin{aligned} \Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\Vert _{{\mathbf{L }}^2(T)} \lesssim h_T^{-1}\Vert q_T\Vert _{\text {L}^2(T)} + \sum _{F\in {\mathcal {F}}_{T}} h_F^{-\nicefrac 12}\Vert \gamma _F^{k+1}{\underline{q}}_F\Vert _{\text {L}^2(F)} \lesssim h_T^{-1}\vert \vert \vert {\underline{q}}\vert \vert \vert _{\mathbf{grad},T}, \end{aligned}$$

where the conclusion follows from the estimate on \(\gamma _F^{k+1}{\underline{q}}_F\) in (4.22) and from the definition of \(\vert \vert \vert {\cdot }\vert \vert \vert _{\mathbf{grad},T}\). As a result, for any \(r\in \text {H}^{2}(T)\), making \({\underline{q}}_T = {\underline{I}}_{\mathbf{grad},T}^k r\) and invoking (4.26), we infer

$$\begin{aligned} \Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k r\big )\Vert _{{\mathbf{L }}^2(T)} \lesssim h_T^{-1}\Vert r\Vert _{\text {L}^2(T)} + |r|_{\text {H}^{1}(T)} + h_T|r|_{\text {H}^{2}(T)}. \end{aligned}$$

Letting now \(q\in \text {H}^{k+2}(T)\), we use the polynomial consistency (3.16) of \({{{\mathbf {\mathsf{{G}}}}}}_T^{k}\) followed by a triangle inequality to write

$$\begin{aligned}&\Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big ) - \mathbf{grad}q\Vert _{{\mathbf{L }}^2(T)} \\&\quad \le \Vert {{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big [{\underline{I}}_{\mathbf{grad},T}^k \big (q - \pi _{{\mathcal {P}},T}^{k+1} q\big )\big ]\Vert _{{\mathbf{L }}^2(T)} + \Vert \mathbf{grad}\big (\pi _{{\mathcal {P}},T}^{k+1} q - q\big )\Vert _{{\mathbf{L }}^2(T)} \end{aligned}$$

and conclude using (6.19) with \(r = q - \pi _{{\mathcal {P}},T}^{k+1} q\) for the first term in the right-hand side followed by the approximation properties of \(\pi _{{\mathcal {P}},T}^{k+1}\) (see [28, Theorem 1.45]).

To prove (6.6), we notice that

$$\begin{aligned} {{{\mathbf {\mathsf{{C}}}}}}_T^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big ) = \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big [\underline{\varvec{C}}_T^{k}\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )\big ] = \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\big [\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\big (\mathbf{curl}\varvec{v}\big )\big ] \end{aligned}$$

owing to (4.30) along with the commutation property (3.39), and conclude using the approximation properties (6.4) with \(\varvec{w} = \mathbf{curl}\varvec{v}\).

Finally, (6.7) is a straightforward consequence of the commutation property \(D_T^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}\big )=\pi _{{\mathcal {P}},T}^{k}({{\,\mathrm{div}\,}}\varvec{w})\) stated in (3.40) together with [28, Theorem 1.45]. \(\square \)

Remark 23

(Alternative proof of (6.5)) When \(q\in \text {C}^{1}({\overline{T}})\) is such that \(\mathbf{grad}q\in {\mathbf{H }}^{\max (k+1,2)}(T)\), the proof of (6.5) can be done following similar arguments as for (6.6), i.e., we write

$$\begin{aligned} {{{\mathbf {\mathsf{{G}}}}}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big ) = \varvec{P}_{\mathbf{curl},T}^k\big [\underline{\varvec{G}}_T^{k}\big ({\underline{I}}_{\mathbf{grad},T}^k q\big )\big ] = \varvec{P}_{\mathbf{curl},T}^k\big [\underline{\varvec{I}}_{\mathbf{curl},T}^k\big (\mathbf{grad}q\big )\big ] \end{aligned}$$

using (4.29) followed by (3.38), and conclude using the approximation properties (6.3) with \(\varvec{v} = \mathbf{grad}q\). This argument, however, requires additional regularity on q with respect to the one used above.

Proof (Theorem 8)

We only prove (6.9), the other consistency properties being established in a similar way. Let \(\varvec{v}\in {\mathbf{H }}^{\max (k+1,2)}(T)\). By the polynomial consistency (3.25) of \(\varvec{\gamma }_{{\mathrm{t}},F}^k\) and (4.7) of \(\varvec{P}_{\mathbf{curl},T}^k\), it is easily checked that, for all \(\varvec{z}_T\in \varvec{\mathcal {P}}_{}^{k}(T)\) and all \(\underline{\varvec{w}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\), it holds \(\text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{z}_T,\underline{\varvec{w}}_T)=0\). Applying this with \(\varvec{z}_T=\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}\) we infer

$$\begin{aligned} \begin{aligned} \text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v},\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v})&=\text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k(\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}),\underline{\varvec{I}}_{\mathbf{curl},T}^k(\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v})) \\&\lesssim \vert \vert \vert \underline{\varvec{I}}_{\mathbf{curl},T}^k(\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v})\vert \vert \vert _{\mathbf{curl},T}^2, \end{aligned} \end{aligned}$$

the conclusion following from the definition of \(\Vert {\cdot }\Vert _{\mathbf{curl},T}\) and the norm equivalence (4.25). Invoking then (4.27) we infer

$$\begin{aligned} \begin{aligned} \text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v},\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v})^{\frac{1}{2}}&\lesssim \Vert \varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}\Vert _{{\mathbf{L }}^2(T)} \\&\quad + h_T|\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}|_{{\mathbf{H }}^{1}(T)}+h_T^2|\varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}|_{{\mathbf{H }}^{2}(T)}, \end{aligned} \end{aligned}$$

and the estimate (6.9) follows from the approximation properties of \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\), see [28, Theorem 1.45], and the definition (6.1) of \(|{\cdot }|_{{\mathbf{H }}^{(k+1,2)}(T)}\), using in the case \(k=0\) the same arguments as in the proof of Theorem 6.

6.4 Proof of the Adjoint Consistency for the Gradient

Proof (Theorem 9.)

It holds, by definition (4.15) of the local discrete \(\text {L}^2\)-product in \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) and (4.29),

$$\begin{aligned} \begin{aligned} \tilde{{\mathcal {E}}}_{\mathbf{grad},h}(\varvec{v},{\underline{q}}_h) = \sum _{T\in {\mathcal {T}}_{h}}\bigg [&\int _T \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )\cdot {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T \\&+ \text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k \varvec{v}_{|T},\underline{\varvec{G}}_T^{k}{\underline{q}}_T) + \int _T{{\,\mathrm{div}\,}}\varvec{v}~P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T \bigg ]. \end{aligned} \end{aligned}$$

Using Remark 17, we have, for all \(\varvec{w}_T\in \varvec{\mathcal {P}}_{}^{k}(T)\),

$$\begin{aligned} \begin{aligned} \int _TP_{\mathbf{grad},T}^{k+1}{\underline{q}}_T~{{\,\mathrm{div}\,}}\varvec{w}_T + \int _T{{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T\cdot \varvec{w}_T - \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F\gamma _F^{k+1}{\underline{q}}_F(\varvec{w}_T\cdot \varvec{n}_F) = 0. \end{aligned} \end{aligned}$$

Subtracting this quantity from (6.20), we obtain

$$\begin{aligned} \begin{aligned}&\tilde{{\mathcal {E}}}_{\mathbf{grad},h}(\varvec{v},{\underline{q}}_h) \\&\quad = \sum _{T\in {\mathcal {T}}_{h}}\bigg [ \int _T \left( \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )-\varvec{w}_T\right) \cdot {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T +\text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k \varvec{v}_{|T},\underline{\varvec{G}}_T^{k}{\underline{q}}_T) \bigg ] \\&\qquad + \sum _{T\in {\mathcal {T}}_{h}}\bigg [ \int _T{{\,\mathrm{div}\,}}(\varvec{v}-\varvec{w}_T)P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T +\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F (\varvec{w}_T-\varvec{v})\cdot \varvec{n}_F \gamma _F^{k+1}{\underline{q}}_F \bigg ], \end{aligned} \end{aligned}$$

where \(\varvec{v}\) is introduced into the boundary term by single-valuedness of the discrete trace, and using \(\varvec{v}_{|F}\cdot \varvec{n}_F=0\) whenever \(F\subset \partial \Omega \). Integrating by parts the third term in the right-hand side of the above expression, we obtain

$$\begin{aligned} \begin{aligned}&\tilde{{\mathcal {E}}}_{\mathbf{grad},h}(\varvec{v},{\underline{q}}_h) \\&\quad {}= \sum _{T\in {\mathcal {T}}_{h}}\bigg [ \int _T \left( \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )-\varvec{w}_T\right) \cdot {{{\mathbf {\mathsf{{G}}}}}}_T^{k}{\underline{q}}_T + \text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k \varvec{v}_{|T},\underline{\varvec{G}}_T^{k}{\underline{q}}_T) \bigg ] \\&\quad \quad + \sum _{T\in {\mathcal {T}}_{h}} \bigg [ - \int _T(\varvec{v}-\varvec{w}_T)\cdot \mathbf{grad}P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T \\&\qquad + \sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F (\varvec{w}_T-\varvec{v})\cdot \varvec{n}_F (\gamma _F^{k+1}{\underline{q}}_F-P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T) \bigg ]. \end{aligned} \end{aligned}$$

We set \(\varvec{w}_T=\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}\) and use (6.3) and the approximation properties of \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\) stated in [28, Theorem 1.45] to see that

$$\begin{aligned}&\Vert \varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{v}\big )-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}\Vert _{{\mathbf{L }}^2(T)} + \Vert \varvec{v}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}\Vert _{{\mathbf{L }}^2(T)} \\&\qquad +\sum _{F\in {\mathcal {F}}_{T}}h_F^{\frac{1}{2}}\Vert \varvec{v} - \varvec{\pi }_{\varvec{\mathcal {P}},T}^{k}\varvec{v}\Vert _{{\mathbf{L }}^2(F)} \lesssim h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}. \end{aligned}$$

Using Cauchy–Schwarz inequalities on the integrals and on the stabilization bilinear form in (6.21), the bound (4.33) together with the norm equivalence (4.25), and the consistency property (6.9) of the stabilization term, we arrive at

$$\begin{aligned} \begin{aligned} \left| \tilde{{\mathcal {E}}}_{\mathbf{grad},h}(\varvec{v},{\underline{q}}_h)\right| \le {}&\sum _{T\in {\mathcal {T}}_{h}}h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}\Vert \underline{\varvec{G}}_T^{k}{\underline{q}}_T\Vert _{\mathbf{curl},T} \\&+ \sum _{T\in {\mathcal {T}}_{h}}h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}\Vert \mathbf{grad}P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\Vert _{{\mathbf{L }}^2(T)} \\&+ \sum _{T\in {\mathcal {T}}_{h}}\sum _{F\in {\mathcal {F}}_{T}} h_T^{k+1}|\varvec{v}|_{{\mathbf{H }}^{(k+1,2)}(T)}~h_F^{-\frac{1}{2}} \Vert \gamma _F^{k+1}{\underline{q}}_F-P_{\mathbf{grad},T}^{k+1}{\underline{q}}_T\Vert _{\text {L}^2(F)}. \end{aligned} \end{aligned}$$

The conclusion follows from the estimate (5.6), and Cauchy–Schwarz inequalities on the sums. \(\square \)

6.5 Proof of the Adjoint Consistency for the Curl

The proof of the adjoint consistency for the curl hinges on liftings defined as solutions of local problems. For any \(F\in {\mathcal {F}}_{h}\), the face lifting \(\varvec{R}_{\mathbf{curl},F}:\underline{\varvec{X}}_{\mathbf{curl},F}^k\rightarrow \mathbf{H }({{\,\mathrm{rot}\,}};F)\cap \mathbf{H }({{\,\mathrm{div}\,}};F)\) is such that, for all \(\underline{\varvec{v}}_F\in \underline{\varvec{X}}_{\mathbf{curl},F}^k\), \(\varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F = \varvec{\phi }_{\underline{\varvec{v}}_F} + \mathbf{grad}_F\psi _{\underline{\varvec{v}}_F}\) with \(\varvec{\phi }_{\underline{\varvec{v}}_F}\in \mathbf{H }({{\,\mathrm{rot}\,}};F)\cap \mathbf{H }({{\,\mathrm{div}\,}};F)\) such that

$$\begin{aligned} {{\,\mathrm{rot}\,}}_F\varvec{\phi }_{\underline{\varvec{v}}_F}&= C_F^k\underline{\varvec{v}}_F&\qquad&\text {in }F, \end{aligned}$$
$$\begin{aligned} {{\,\mathrm{div}\,}}_F\varvec{\phi }_{\underline{\varvec{v}}_F}&= 0&\qquad&\text {in }F, \end{aligned}$$
$$\begin{aligned} \varvec{\phi }_{\underline{\varvec{v}}_F}\cdot \varvec{t}_E&= v_E&\qquad&\text {on all }E\in {\mathcal {E}}_{F}, \end{aligned}$$

while \(\psi _{\underline{\varvec{v}}_F}\in C_{\mathrm{c}}^\infty (F)\) is such that

$$\begin{aligned} -\int _F\psi _{\underline{\varvec{v}}_F}~{{\,\mathrm{div}\,}}_F\varvec{z}_F = \int _F(\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F - \varvec{\phi }_{\underline{\varvec{v}}_F})\cdot \varvec{z}_F \qquad \forall \varvec{z}_F\in \varvec{\mathcal {R}}^{\mathrm{c},k+1}(F). \end{aligned}$$

Let now \(T\in {\mathcal {T}}_{h}\). The curl correction \(\varvec{\delta }_T:\underline{\varvec{X}}_{\mathbf{curl},T}^k\rightarrow \mathbf{H }(\mathbf{curl};T)\cap \mathbf{H }({{\,\mathrm{div}\,}};T)\) is such that, for all \(\underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\),

$$\begin{aligned} {{\,\mathrm{div}\,}}\varvec{\delta }_T\underline{\varvec{v}}_T&= -{{\,\mathrm{div}\,}}{{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T&\qquad&\text {in }T, \end{aligned}$$
$$\begin{aligned} \mathbf{curl}\varvec{\delta }_T\underline{\varvec{v}}_T&= \varvec{0}&\qquad&\text {in }T, \end{aligned}$$
$$\begin{aligned} \varvec{\delta }_T\underline{\varvec{v}}_T\cdot \varvec{n}_F&= C_F^k\underline{\varvec{v}}_F - {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\cdot \varvec{n}_F&\qquad&\text {on all } F\in {\mathcal {F}}_{T}. \end{aligned}$$

The curl correction lifts the difference between the face curl \(C_F^k\underline{\varvec{v}}_F\) and the normal component of the element curl \({{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\) as a function defined over T. Its role is to ensure the well-posedness of the problem defining the element lifting \(\varvec{R}_{\mathbf{curl},T}:\underline{\varvec{X}}_{\mathbf{curl},T}^k\rightarrow \mathbf{H }(\mathbf{curl};T)\cap \mathbf{H }({{\,\mathrm{div}\,}};T)\) such that, for all \(\underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k\),

$$\begin{aligned} \mathbf{curl}\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T&= {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T + \varvec{\delta }_T\underline{\varvec{v}}_T&\qquad&\text {in }T, \end{aligned}$$
$$\begin{aligned} {{\,\mathrm{div}\,}}\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T&= 0&\qquad&\text {in }T, \end{aligned}$$
$$\begin{aligned} (\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T)_{{\mathrm{t}},F}&= \varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F&\qquad&\text {on all }F\in {\mathcal {F}}_{T}. \end{aligned}$$

In “Appendix B” we prove that these lifting operators are well-defined, and that they satisfy the following two key properties:

  • Orthogonality of the face lifting: For all \(F\in {\mathcal {F}}_{h}\),

    $$\begin{aligned} \int _F (\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F-\varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F)\cdot \varvec{z}_F=0\qquad \forall (\underline{\varvec{v}}_F,\varvec{z}_F)\in \underline{\varvec{X}}_{\mathbf{curl},F}^k\times \varvec{\mathcal {RT}}^{k+1}(F); \end{aligned}$$
  • Boundedness of the element lifting: For all \(T\in {\mathcal {T}}_{h}\),

    $$\begin{aligned}&\Vert \varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}+\Vert \mathbf{curl}\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}\lesssim \Vert \underline{\varvec{v}}_T\Vert _{\mathbf{curl},T}+\Vert \underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T\Vert _{{{\,\mathrm{div}\,}},T} \nonumber \\&\qquad \forall \underline{\varvec{v}}_T\in \underline{\varvec{X}}_{\mathbf{curl},T}^k. \end{aligned}$$

Lemma 8

(Approximation properties of \(\varvec{{\mathcal {N}}}^{k+1}(T)\) on polyhedral elements) For all \(T\in {\mathcal {T}}_{h}\) and all \(\varvec{w}\in {\mathbf{H }}^{k+2}(T)\), there exists \(\varvec{z}_T\in \varvec{{\mathcal {N}}}^{k+1}(T)\) such that

$$\begin{aligned} \Vert \varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(T)}\lesssim {}&h_T^{k+1}\big ( |\varvec{w}|_{{\mathbf{H }}^{k+1}(T)}+|\varvec{w}|_{{\mathbf{H }}^{k+2}(T)} \big ), \end{aligned}$$
$$\begin{aligned} \Vert \mathbf{curl}\varvec{w}-\mathbf{curl}\varvec{z}_T\Vert _{{\mathbf{L }}^2(T)}\lesssim {}&h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+2}(T)}. \end{aligned}$$


By the mesh regularity assumption, there is a simplex \(S\subset T\) whose inradius is \(\gtrsim h_T\). Following the arguments in the proof of [28, Lemma 1.25], we infer the norm equivalence

$$\begin{aligned} \Vert q\Vert _{\text {L}^2(S)}\simeq \Vert q\Vert _{\text {L}^2(T)}\qquad \forall q\in {\mathcal {P}}_{}^{k+1}(T). \end{aligned}$$

Let us take \(\varvec{z}_T\) as the Nédélec interpolant in \(\varvec{{\mathcal {N}}}^{k+1}(S)\) of \(\varvec{w}\); \(\varvec{z}_T\) can be uniquely extended as an element of \(\varvec{{\mathcal {N}}}^{k+1}(T)\). By the arguments in the proof of [40, Theorem 3.14 and Corollary 3.17], and since \(S\subset T\), it holds

$$\begin{aligned} \begin{aligned} \Vert \varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(S)}\lesssim {}&h_T^{k+1}\big (|\varvec{w}|_{{\mathbf{H }}^{k+1}(T)}+|\varvec{w}|_{{\mathbf{H }}^{k+2}(T)}\big ),\\ \Vert \mathbf{curl}\varvec{w}-\mathbf{curl}\varvec{z}_T\Vert _{{\mathbf{L }}^2(S)}\lesssim {}&h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+2}(T)}. \end{aligned} \end{aligned}$$

We then write, introducing \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w}\) and using triangle inequalities,

$$\begin{aligned} \Vert \varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(T)}&\lesssim \Vert \varvec{w}-\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w}\Vert _{{\mathbf{L }}^2(T)} + \Vert \varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(T)} \\&\lesssim h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+1}(T)} + \Vert \varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(S)} \\&\lesssim h_T^{k+1}\big ( |\varvec{w}|_{{\mathbf{H }}^{k+1}(T)} + |\varvec{w}|_{{\mathbf{H }}^{k+2}(T)} \big ), \end{aligned}$$

where we have used the approximation property of \(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\) together with the norm equivalence (6.30) in the second line, and concluded by introducing \(\varvec{w}\) and invoking (6.31) to write

$$\begin{aligned} \begin{aligned} \Vert \varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(S)}&\le \Vert \varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w}-\varvec{w}\Vert _{{\mathbf{L }}^2(S)} + \Vert \varvec{w}-\varvec{z}_T\Vert _{{\mathbf{L }}^2(S)} \\&\lesssim h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+1}(T)} + h_T^{k+1}\big ( |\varvec{w}|_{{\mathbf{H }}^{k+1}(T)} + |\varvec{w}|_{{\mathbf{H }}^{k+2}(T)} \big ). \end{aligned} \end{aligned}$$

This concludes the proof of (6.28). The proof of (6.29) is done in a similar way, introducing \(\mathbf{curl}(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w})\) and using the approximation property \(\Vert \mathbf{curl}\varvec{w}-\mathbf{curl}(\varvec{\pi }_{\varvec{\mathcal {P}},T}^{k+1}\varvec{w})\Vert _{{\mathbf{L }}^2(T)}\lesssim h_T^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+2}(T)}\). \(\square \)

Proof (Theorem 10)

For all \(T\in {\mathcal {T}}_{h}\), select \(\varvec{z}_T\in \varvec{{\mathcal {N}}}^{k+1}(T)\) given by Lemma 8. Using (4.16) to expand \((\cdot ,\cdot )_{{{\,\mathrm{div}\,}},h}\) together with (4.30), and recalling (4.6), we see that it holds, for all \(\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\),

$$\begin{aligned} \begin{aligned} \tilde{{\mathcal {E}}}_{\mathbf{curl},h}(\varvec{w},\underline{\varvec{v}}_h)&= \sum _{T\in {\mathcal {T}}_{h}}\int _T\big (\varvec{P}_{{{\,\mathrm{div}\,}},T}^k(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}_{|T})-\varvec{z}_T\big )\cdot {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T \\&\quad + \sum _{T\in {\mathcal {T}}_{h}}\text {s}_{{{\,\mathrm{div}\,}},T}(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}_{|T},\underline{\varvec{C}}_T^{k}\underline{\varvec{v}}_T) \\&\quad + \sum _{T\in {\mathcal {T}}_{h}}\int _T\mathbf{curl}(\varvec{z}_T-\varvec{w})\cdot \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T \\&\quad + \sum _{T\in {\mathcal {T}}_{h}}\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F(\varvec{z}_T\times \varvec{n}_F)\cdot \varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_F. \\&{{=}{:}}{\mathfrak {T}}_1 + {\mathfrak {T}}_2 + {\mathfrak {T}}_3 + {\mathfrak {T}}_4. \end{aligned} \end{aligned}$$

Using Cauchy–Schwarz and triangle inequalities, it is readily inferred for the first term

$$\begin{aligned} \begin{aligned} |{\mathfrak {T}}_1|&\lesssim \left[ \sum _{T\in {\mathcal {T}}_{h}}\left( \Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{w}) - \varvec{w}\Vert _{{\mathbf{L }}^2(T)}^2 + \Vert \varvec{w} - \varvec{z}_T\Vert _{{\mathbf{L }}^2(T)}^2 \right) \right] ^{\frac{1}{2}} \\&\quad \times \left( \sum _{T\in {\mathcal {T}}_{h}}\Vert {{{\mathbf {\mathsf{{C}}}}}}_T^k\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2 \right) ^{\frac{1}{2}}\\&\lesssim h^{k+1}\left( |\varvec{w}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{w}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) \Vert \underline{\varvec{C}}_h^k\underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h}, \end{aligned} \end{aligned}$$

where the conclusion follows using the approximation properties (6.4) and (6.28) to bound the first factor, and (4.34) along with the norm equivalence (4.25) to bound the second.

For \({\mathfrak {T}}_2\), combining the consistency property (6.10) of \(\text {s}_{{{\,\mathrm{div}\,}},T}\) with discrete Cauchy–Schwarz inequalities and the definition of the \(\Vert {\cdot }\Vert _{{{\,\mathrm{div}\,}},h}\)-norm readily gives

$$\begin{aligned} |{\mathfrak {T}}_2|\lesssim h^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}\Vert \underline{\varvec{C}}_h^k\underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h}. \end{aligned}$$

For \({\mathfrak {T}}_3\), Cauchy–Schwarz inequalities, the approximation property (6.29), and the definition of the norm \(\Vert {\cdot }\Vert _{\mathbf{curl},h}\) yield

$$\begin{aligned} \begin{aligned} |{\mathfrak {T}}_3|&\le \left( \sum _{T\in {\mathcal {T}}_{h}}\!\Vert \mathbf{curl}(\varvec{z}_T - \varvec{w})\Vert _{{\mathbf{L }}^2(T)}^2 \right) ^{\frac{1}{2}}\left( \sum _{T\in {\mathcal {T}}_{h}}\!\Vert \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2 \right) ^{\frac{1}{2}} \\&\lesssim h^{k+1}|\varvec{w}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\Vert \underline{\varvec{v}}_h\Vert _{\mathbf{curl},h}. \end{aligned} \end{aligned}$$

Let us now consider the last term in the right-hand side of (6.32). Since \((\varvec{z}_T)_{|F}\times \varvec{n}_F\in \varvec{\mathcal {RT}}^{k+1}(F)\) as a consequence of (A.5) with \(\ell =k+1\), by (6.26) we can replace \(\varvec{\gamma }_{{\mathrm{t}},F}^k\underline{\varvec{v}}_T\) by \(\varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F\) in the boundary integral. Using the fact that both \(\varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F\) and the (rotated) tangential trace of \(\varvec{w}\) are continuous across interfaces, along with the fact that \(\omega _{T_1F}+\omega _{T_2F}=0\) for all \(F\in {\mathcal {F}}_{h}\) between two elements \(T_1,T_2\), and \(\varvec{w}_{|F}\times \varvec{n}_F=\varvec{0}\) for all \(F\subset \partial \Omega \), we then have

$$\begin{aligned} \begin{aligned} {\mathfrak {T}}_4&= \sum _{T\in {\mathcal {T}}_{h}}\sum _{F\in {\mathcal {F}}_{T}}\omega _{TF}\int _F(\varvec{z}_T-\varvec{w})\times \varvec{n}_F\cdot \varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F \\&= \sum _{T\in {\mathcal {T}}_{h}}\left( \int _T(\varvec{z}_T - \varvec{w})\cdot \mathbf{curl}\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T - \int _T\mathbf{curl}(\varvec{z}_T - \varvec{w})\cdot \varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T \right) , \end{aligned} \end{aligned}$$

where the conclusion follows recalling that \(\varvec{R}_{\mathbf{curl},F}\underline{\varvec{v}}_F = (\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T)_{{\mathrm{t}},F}\) for all \(T\in {\mathcal {T}}_{h}\) and all \(F\in {\mathcal {F}}_{T}\) (see (6.25c)), and integrating by parts. Using Cauchy–Schwarz inequalities, it is inferred

$$\begin{aligned} \begin{aligned} |{\mathfrak {T}}_4|&\le \left[ \sum _{T\in {\mathcal {T}}_{h}}\left( \Vert \varvec{z}_T - \varvec{w}\Vert _{{\mathbf{L }}^2(T)}^2 + \Vert \mathbf{curl}(\varvec{z}_T - \varvec{w})\Vert _{{\mathbf{L }}^2(T)}^2 \right) \right] ^{\frac{1}{2}} \\&\quad \times \left[ \sum _{T\in {\mathcal {T}}_{h}}\left( \Vert \mathbf{curl}\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2 + \Vert \varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2 \right) \right] ^{\frac{1}{2}}. \end{aligned} \end{aligned}$$

The approximation properties (6.28)–(6.29) of \(\varvec{z}_T\) along with the boundedness (6.27) of \(\varvec{R}_{\mathbf{curl},T}\underline{\varvec{v}}_T\) yield

$$\begin{aligned} |{\mathfrak {T}}_4|\lesssim h^{k+1}\left( |\varvec{w}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{w}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) \left( \Vert \underline{\varvec{v}}_h\Vert _{\mathbf{curl},h} + \Vert \underline{\varvec{C}}_h^k\underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h} \right) . \end{aligned}$$

Plugging (6.33)–(6.36) into (6.32), (6.16) follows. \(\square \)

6.6 Proof of the Adjoint Consistency for the Divergence

Proof (Theorem 11)

Combining the definition (6.17) of the adjoint consistency error for the divergence with (4.11) summed over \(T\in {\mathcal {T}}_{h}\), we infer that it holds, for all \((q,\underline{\varvec{v}}_h)\) as in the theorem and all \(q_h\in {\mathcal {P}}_{}^{k+1}({\mathcal {T}}_{h})\) with \(q_T{:}{=}(q_h)_{|T}\) for all \(T\in {\mathcal {T}}_{h}\),

where the cancellation of \(\pi _{{\mathcal {P}},T}^{k}\) is justified by its definition along with \(D_T^k\underline{\varvec{v}}_T\in {\mathcal {P}}_{}^{k}(T)\), while the insertion of q into the boundary integral is possible thanks to its single-valuedness at interfaces along with the fact that it vanishes on \(\partial \Omega \). Taking absolute values and using Cauchy–Schwarz inequalities in the right-hand side along with \(h_F\simeq h_T\) for all \(T\in {\mathcal {T}}_{h}\) and all \(F\in {\mathcal {F}}_{T}\), we infer

$$\begin{aligned} \begin{aligned}&\left| \tilde{{\mathcal {E}}}_{{{\,\mathrm{div}\,}},h}(q,\underline{\varvec{v}}_h)\right| \\&\quad \lesssim \left[ \sum _{T\in {\mathcal {T}}_{h}}\left( h_T^{-2}\Vert q - q_T\Vert _{\text {L}^2(T)}^2 {+}\, \Vert \mathbf{grad}(q - q_T)\Vert _{{\mathbf{L }}^2(T)}^2 {+}\, h_T^{-1}\Vert q_T - q\Vert _{\partial T}^2 \right) \right] ^{\frac{1}{2}} \\&\qquad \times \left[ \sum _{T\in {\mathcal {T}}_{h}}\left( h_T^2\Vert D_T^k\underline{\varvec{v}}_T\Vert _{\text {L}^2(T)}^2 {+}\, \Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2 {+} \sum _{F\in {\mathcal {F}}_{T}}h_F\Vert v_F\Vert _{\text {L}^2(F)}^2 \right) \right] ^{\frac{1}{2}}. \end{aligned} \end{aligned}$$

Taking \(q_h\) such that \(q_T=\pi _{{\mathcal {P}},T}^{k+1}q_{|T}\) for all \(T\in {\mathcal {T}}_{h}\) and using the approximation properties of the \(\text {L}^2\)-orthogonal projector [28, Theorem 1.45], it is inferred that the first factor in the right-hand side of (6.37) is \(\lesssim h^{k+1}|q|_{\text {H}^{k+2}({\mathcal {T}}_{h})}\). Moving to the second factor, we use, for all \(T\in {\mathcal {T}}_{h}\), [32, Lemma 8] followed by the local seminorm equivalence (4.25) to write \(h_T\Vert D_T^k\underline{\varvec{v}}_T\Vert _{\text {L}^2(T)}\lesssim \vert \vert \vert \underline{\varvec{v}}_T\vert \vert \vert _{{{\,\mathrm{div}\,}},T}\lesssim \Vert \underline{\varvec{v}}_T\Vert _{{{\,\mathrm{div}\,}},T}\). The same norm equivalence and the definition of the \(\Vert {\cdot }\Vert _{{{\,\mathrm{div}\,}},T}\)-norm also yields \(\Vert \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T\Vert _{{\mathbf{L }}^2(T)}^2 + \sum _{F\in {\mathcal {F}}_{T}}h_F\Vert v_F\Vert _{\text {L}^2(F)}^2\lesssim \Vert \underline{\varvec{v}}_T\Vert _{{{\,\mathrm{div}\,}},T}\). The second factor in the right-hand side of (6.37) is therefore \(\lesssim \Vert \underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h}\), and the proof is complete. \(\square \)

7 Convergence Analysis for a DDR Discretization of Magnetostatics

We analyze in this section the DDR approximation of the following magnetostatics model, in which the unknowns are the magnetic field \(\varvec{H}\in \mathbf{H }(\mathbf{curl};\Omega )\) and the vector potential \(\varvec{A}\in \mathbf{H }({{\,\mathrm{div}\,}};\Omega )\):

$$\begin{aligned} \begin{aligned}&\mu \varvec{H} - \mathbf{curl}\varvec{A} = \varvec{0}\,,\quad \mathbf{curl}\varvec{H} = \varvec{J}\,,\quad {{\,\mathrm{div}\,}}\varvec{A} = 0&\qquad&\text {in }\Omega , \\&\varvec{A}\times \varvec{n}= \varvec{0}&\qquad&\text {on } \partial \Omega . \end{aligned} \end{aligned}$$

The free current \(\varvec{J}\) belongs to \(\mathbf{curl}\mathbf{H }(\mathbf{curl};\Omega )\) and we assume, for the sake of simplicity, that the magnetic permeability \(\mu \) is piecewise-constant on the considered meshes, with \(\mu :\Omega \rightarrow [\mu _-,\mu _+]\) for some constant numbers \(0<\mu _-\le \mu _+\).

7.1 Scheme

As shown in [29], a scheme based on the discrete de Rham tools can be written by replacing, in the weak formulation of (7.1), the continuous \(\text {L}^2\)-products by discrete ones built on the local products. Denote by \(\mu _T\) the constant value of \(\mu \) over \(T\in {\mathcal {T}}_{h}\) and define the bilinear forms \(a_h:\underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{\mathbf{curl},h}^k\rightarrow {\mathbb {R}}\), \(b_h:\underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\rightarrow {\mathbb {R}}\), and \(c_h:\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\rightarrow {\mathbb {R}}\) as follows: For all \(\underline{\varvec{\upsilon }}_h,\underline{\varvec{\zeta }}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\) and all \(\underline{\varvec{w}}_h,\underline{\varvec{v}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\),

$$\begin{aligned} \text {a}_h(\underline{\varvec{\upsilon }}_h,\underline{\varvec{\zeta }}_h)&{:}{=}\sum _{T\in {\mathcal {T}}_{h}}\mu _T(\underline{\varvec{\upsilon }}_T,\underline{\varvec{\zeta }}_T)_{\mathbf{curl},T},\quad \text {b}_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h){:}{=}(\underline{\varvec{C}}_h^k\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)_{{{\,\mathrm{div}\,}},h}, \\ \text {c}_h(\underline{\varvec{w}}_h,\underline{\varvec{v}}_h)&{:}{=}\int _\Omega D_h^k\underline{\varvec{w}}_h~D_h^k\underline{\varvec{v}}_h. \end{aligned}$$

The discrete problem then reads: Find \(\underline{\varvec{H}}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\) and \(\underline{\varvec{A}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) such that

$$\begin{aligned} \begin{aligned} \text {a}_h(\underline{\varvec{H}}_h,\underline{\varvec{\zeta }}_h) - \text {b}_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{A}}_h)&= 0&\qquad&\forall \underline{\varvec{\zeta }}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k, \\ \text {b}_h(\underline{\varvec{H}}_h,\underline{\varvec{v}}_h) + \text {c}_h(\underline{\varvec{A}}_h,\underline{\varvec{v}}_h)&= \sum _{T\in {\mathcal {T}}_{h}}\int _T\varvec{J}\cdot \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T&\qquad&\forall \underline{\varvec{v}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k. \end{aligned} \end{aligned}$$

The equations of this problem can be recast in the standard variational form \(\mathcal A_h((\underline{\varvec{H}}_h,\underline{\varvec{A}}_h),(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))=\mathcal L_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)\), where \({\mathcal {A}}_h: (\underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k)^2\rightarrow {\mathbb {R}}\) and \(\mathcal L_h:\underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\rightarrow {\mathbb {R}}\) are the bilinear and linear forms, respectively, such that

$$\begin{aligned} \begin{aligned} \mathcal A_h((\underline{\varvec{\upsilon }}_h,\underline{\varvec{w}}_h),(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)){:}{=}{}&\text {a}_h(\underline{\varvec{\upsilon }}_h,\underline{\varvec{\zeta }}_h) - \text {b}_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{w}}_h) +\text {b}_h(\underline{\varvec{\upsilon }}_h,\underline{\varvec{v}}_h) + \text {c}_h(\underline{\varvec{w}}_h,\underline{\varvec{v}}_h),\\ {\mathcal {L}}_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h){:}{=}{}&\sum _{T\in {\mathcal {T}}_{h}}\int _T\varvec{J}\cdot \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T. \end{aligned} \end{aligned}$$

7.2 Error Estimate

To measure the error, we introduce the following \(\mathbf{H }(\mathbf{curl};\Omega )\)- and \(\mathbf{H }({{\,\mathrm{div}\,}};\Omega )\)-like (graph) norms on \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) and \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\), respectively:

$$\begin{aligned} \begin{aligned} \Vert \underline{\varvec{\zeta }}_h\Vert _{\mu ,\mathbf{curl},1,h}&{:}{=}\left( \text {a}_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{\zeta }}_h) + \Vert \underline{\varvec{C}}_h^k\underline{\varvec{\zeta }}_h\Vert _{{{\,\mathrm{div}\,}},h}^2\right) ^{\frac{1}{2}}&\qquad&\forall \underline{\varvec{\zeta }}_h\in \underline{\varvec{X}}_{\mathbf{curl},h}^k, \\ \Vert \underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},1,h}&{:}{=}\left( \Vert \underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h}^2 + \Vert D_h^k\underline{\varvec{v}}_h\Vert _{\text {L}^2(\Omega )}^2\right) ^{\frac{1}{2}}&\qquad&\forall \underline{\varvec{v}}_h\in \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k. \end{aligned} \end{aligned}$$

Theorem 12

(Error estimate for the magnetostatics problem) Assume that both the first and second Betti numbers of \(\Omega \) are zero (i.e., \(\Omega \) is not crossed by any tunnel and does not enclose any void). Then, there exists a unique solution \((\underline{\varvec{H}}_h,\underline{\varvec{A}}_h)\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) to (7.2). Moreover, letting \((\varvec{H},\varvec{A})\in \mathbf{H }(\mathbf{curl};\Omega )\times \mathbf{H }({{\,\mathrm{div}\,}};\Omega )\) be the weak solution to (7.1) and assuming that \(\varvec{H}\in {\mathbf{C }}^{0}({\overline{\Omega }})\cap {\mathbf{H }}^{k+2}({\mathcal {T}}_{h})\) and \(\varvec{A}\in {\mathbf{C }}^{0}({\overline{\Omega }})\times {\mathbf{H }}^{k+2}({\mathcal {T}}_{h})\), we have

$$\begin{aligned}&\Vert \underline{\varvec{H}}_h-\underline{\varvec{I}}_{\mathbf{curl},h}^k\varvec{H}\Vert _{\mu ,\mathbf{curl},1,h}+\Vert \underline{\varvec{A}}_h-\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}\varvec{A}\Vert _{{{\,\mathrm{div}\,}},1,h}\nonumber \\&\quad \lesssim h^{k+1}\left( |\mathbf{curl}\varvec{H}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{H}|_{{\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})}+ |\varvec{A}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{A}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) ,\nonumber \\ \end{aligned}$$

where the hidden constant in \(\lesssim \) only depends on \(\Omega \), k, the mesh regularity parameter, and \(\mu _-\), \(\mu _+\).


As shown in the proof of [29, Theorem 10], the exactness of the rightmost part of the sequence (3.37), which holds owing to (3.48) and (3.45), and the Poincaré inequalities for \(\underline{\varvec{C}}_h^k\) and \(D_h^k\) (see Theorems 4 and 5) enable a reproduction of the arguments of the continuous inf-sup condition (see, e.g., [31, Section 2] or [2, Theorem 4.9]) to see that \({\mathcal {A}}_h\) satisfies a uniform inf-sup condition with respect to the norm on \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) induced by \(\Vert {\cdot }\Vert _{\mu ,\mathbf{curl},1,h}\) and \(\Vert {\cdot }\Vert _{{{\,\mathrm{div}\,}},1,h}\).

Using the Third Strang Lemma [27], we therefore obtain (7.3) provided we can prove that the consistency error

$$\begin{aligned} \mathcal E_h((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)){:}{=}{\mathcal {L}}_h(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h) - \mathcal A_h((\underline{\varvec{I}}_{\mathbf{curl},h}^k\varvec{H},\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}\varvec{A}),(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)) \end{aligned}$$

satisfies, for all \((\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)\in \underline{\varvec{X}}_{\mathbf{curl},h}^k\times \underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\),

$$\begin{aligned} \begin{aligned}&{\mathcal {E}}_h((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)) \\&\quad \lesssim h^{k+1}\left( |\mathbf{curl}\varvec{H}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{H}|_{{\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})}+ |\varvec{A}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{A}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) \\&\qquad \times \left( \Vert \underline{\varvec{\zeta }}_h\Vert _{\mu ,\mathbf{curl},1,h}+\Vert \underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},1,h}\right) . \end{aligned} \end{aligned}$$

Expanding according to the respective definitions \({\mathcal {A}}_h\), \({\mathcal {L}}_h\), \(\text {a}_h\), \(\text {b}_h\), and \(\text {c}_h\), we have

$$\begin{aligned} \begin{aligned} {\mathcal {E}}_h((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))&= {\mathcal {E}}_{h,1}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)) \\&\quad + \mathcal E_{h,2}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)) + \mathcal E_{h,3}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)), \end{aligned} \end{aligned}$$


$$\begin{aligned} \mathcal E_{h,1}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))\,{{:}{=}}&\sum _{T\in {\mathcal {T}}_{h}}\left( \int _T\varvec{J}\cdot \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T-(\underline{\varvec{C}}_T^{k}\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{H}\big ),\underline{\varvec{v}}_T)_{{{\,\mathrm{div}\,}},T}\right) ,\\ {\mathcal {E}}_{h,2}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))\,{{:}{=}}&-\sum _{T\in {\mathcal {T}}_{h}}\int _T D_T^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{A}\big )D_T^k\underline{\varvec{v}}_T\\ {\mathcal {E}}_{h,3}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))\,{{:}{=}}&\!-\sum _{T\in {\mathcal {T}}_{h}}\left( \mu _T(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{H},\underline{\varvec{\zeta }}_T)_{\mathbf{curl},T}\! -\! (\underline{\varvec{C}}_T^{k}\underline{\varvec{\zeta }}_T,\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{A})_{{{\,\mathrm{div}\,}},T}\right) . \end{aligned}$$

Let us first estimate \({\mathcal {E}}_{h,1}\). Recalling that \(\varvec{J}=\mathbf{curl}\varvec{H}\), using the commutation formula (3.39), invoking the consistency (6.13) of the discrete \(\text {L}^2\)-product on \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},T}^k\) and applying a Cauchy–Schwarz inequality, we have

$$\begin{aligned} {\mathcal {E}}_{h,1}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))&=\sum _{T\in {\mathcal {T}}_{h}}\left( \int _T\mathbf{curl}\varvec{H}\cdot \varvec{P}_{{{\,\mathrm{div}\,}},T}^k\underline{\varvec{v}}_T-(\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}(\mathbf{curl}\varvec{H}),\underline{\varvec{v}}_T)_{{{\,\mathrm{div}\,}},T}\right) \nonumber \\&\lesssim \sum _{T\in {\mathcal {T}}_{h}}h_T^{k+1}|\mathbf{curl}\varvec{H}|_{{\mathbf{H }}^{k+1}(T)}\Vert \underline{\varvec{v}}_T\Vert _{{{\,\mathrm{div}\,}},T} \nonumber \\&\le h^{k+1}|\mathbf{curl}\varvec{H}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}\Vert \underline{\varvec{v}}_h\Vert _{{{\,\mathrm{div}\,}},h}. \end{aligned}$$

To handle \({\mathcal {E}}_{h,2}\), we use the commutation formula (3.40) to get \(D_T^k\big (\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{A}\big ) = \pi _{{\mathcal {P}},T}^{k}({{\,\mathrm{div}\,}}\varvec{A})=0\), and thus

$$\begin{aligned} {\mathcal {E}}_{h,2}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))=0. \end{aligned}$$

Finally, we turn to \({\mathcal {E}}_{h,3}\). Since \(\varvec{A}\in \mathbf{H }_0(\mathbf{curl};\Omega )\), the adjoint consistency Theorem 10 enables us to replace, in \({\mathcal {E}}_{h,3}\), the term \((\underline{\varvec{C}}_T^{k}\underline{\varvec{\zeta }}_T,\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},T}^{k}\varvec{A})_{{{\,\mathrm{div}\,}},T}\) with \({\int _T \mathbf{curl}\varvec{A}\cdot \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{\zeta }}_T} = {\int _T \mu _T\varvec{H}\cdot \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{\zeta }}_T}\) up to a term that is controlled, i.e.,

$$\begin{aligned} \begin{aligned}&{\mathcal {E}}_{h,3}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h)) \\&\quad \le -\sum _{T\in {\mathcal {T}}_{h}}\left( \mu _T(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{H},\underline{\varvec{\zeta }}_T)_{\mathbf{curl},T} - \mu _T\int _T \varvec{H}\cdot \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{\zeta }}_T\right) \\&\qquad +h^{k+1}\left( |\varvec{A}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{A}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) \Vert \underline{\varvec{\zeta }}_h\Vert _{\mu ,\mathbf{curl},1,h} \\&\le -\sum _{T\in {\mathcal {T}}_{h}}\left( \mu _T\int _T\big [\varvec{P}_{\mathbf{curl},T}^k\big (\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{H}\big )-\varvec{H}\big ]\cdot \varvec{P}_{\mathbf{curl},T}^k\underline{\varvec{\zeta }}_T+\text {s}_{\mathbf{curl},T}(\underline{\varvec{I}}_{\mathbf{curl},T}^k\varvec{H},\underline{\varvec{\zeta }}_T)\right) \\&\qquad +h^{k+1}\left( |\varvec{A}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{A}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) \Vert \underline{\varvec{\zeta }}_h\Vert _{\mu ,\mathbf{curl},1,h}, \end{aligned} \end{aligned}$$

where we have used \(\Vert \underline{\varvec{\zeta }}_h\Vert _{\mathbf{curl},h}+\Vert \underline{\varvec{C}}_h^k\underline{\varvec{\zeta }}_h\Vert _{{{\,\mathrm{div}\,}},h}\lesssim \Vert \underline{\varvec{\zeta }}_h\Vert _{\mu ,\mathbf{curl},1,h}\) and the second inequality comes from expanding \((\cdot ,\cdot )_{\mathbf{curl},T}\) according to its definition. Cauchy–Schwarz inequalities and the consistency properties (6.3) and (6.9) then lead to

$$\begin{aligned} \begin{aligned} {\mathcal {E}}_{h,3}((\varvec{H},\varvec{A});(\underline{\varvec{\zeta }}_h,\underline{\varvec{v}}_h))&\lesssim h^{k+1}|\varvec{H}|_{{\mathbf{H }}^{(k+1,2)}({\mathcal {T}}_{h})}\Vert \underline{\varvec{\zeta }}_h\Vert _{\mathbf{curl},h} \\&\quad +h^{k+1}\left( |\varvec{A}|_{{\mathbf{H }}^{k+1}({\mathcal {T}}_{h})}+|\varvec{A}|_{{\mathbf{H }}^{k+2}({\mathcal {T}}_{h})}\right) \Vert \underline{\varvec{\zeta }}_h\Vert _{\mu ,\mathbf{curl},1,h}. \end{aligned} \end{aligned}$$

Plugging this estimate together with (7.6) and (7.7) into (7.5), we infer that (7.4) holds, which concludes the proof. \(\square \)

7.3 Numerical Tests

We present here the results of some numerical tests obtained with the DDR scheme (7.2) for the magnetostatics model (7.1), focusing on comparing outputs obtained using either the complements (2.5), hereafter denoted by (K), or the orthogonal complements of [29, 31], denoted by (\(\perp \)). Both versions of the DDR complex, and related schemes, have been implemented in the HArDCore3D C++ framework (see https://github.com/jdroniou/HArDCore), using linear algebra facilities from the Eigen3 library (see http://eigen.tuxfamily.org) and the Intel MKL PARDISO library (see https://software.intel.com/en-us/mkl) for the resolution of the global sparse linear system. This solver proved to be the most efficient among those at our disposal. All tests were run on a 16-inch 2019 MacBook Pro equipped with an 8-core Intel Core i9 processor (I9-9980HK) and 32Gb of RAM, and running macOS Big Sur version 11.5.1. We consider a constant permeability \(\mu =1\), and the same exact smooth solution and mesh families as in [29, Section 4.4] for comparability.

Figure 1 presents the errors, for various values of k, computed in the relative discrete \(\mathbf{H }(\mathbf{curl};\Omega )\times \mathbf{H }({{\,\mathrm{div}\,}};\Omega )\) norm:

$$\begin{aligned} \frac{\big (\Vert \underline{\varvec{H}}_h-\underline{\varvec{I}}_{\mathbf{curl},h}^k\varvec{H}\Vert _{\mu ,\mathbf{curl},1,h}^2+\Vert \underline{\varvec{A}}_h-\underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}\varvec{A}\Vert _{{{\,\mathrm{div}\,}},1,h}^2\big )^{\nicefrac 12}}{\big (\Vert \underline{\varvec{I}}_{\mathbf{curl},h}^k\varvec{H}\Vert _{\mu ,\mathbf{curl},1,h}^2+\Vert \underline{\varvec{I}}_{{{\,\mathrm{div}\,}},h}^{k}\varvec{A}\Vert _{{{\,\mathrm{div}\,}},1,h}^2\big )^{\nicefrac 12}}. \end{aligned}$$

In the case of the Koszul complements, Theorem 12 states that this error should decrease as \({\mathcal {O}}(h^{k+1})\) with the mesh size. No such estimate is known for the DDR scheme using orthogonal complements and, due to the lack of key properties of these complements (hierarchical inclusions, structure of traces), it is not clear whether the analysis carried out in the rest of this paper could be adapted to such complements. Nonetheless, the graphs in Fig. 1 show that both schemes converge with an order \(k+1\). The errors between (K) and (\(\perp \)) are essentially indistinguishable, except for \(k\ge 1\) on tetrahedral meshes, where (\(\perp \)) leads to slightly larger errors than (K) – about twice as large on the finest mesh with \(k=3\).

Fig. 1
figure 1

Relative error estimates in discrete \(\mathbf{H }(\mathbf{curl};\Omega )\times \mathbf{H }({{\,\mathrm{div}\,}};\Omega )\) norm vs. h, for the Koszul complements of (2.5) [(K), continuous lines], and the orthogonal complements of [31][(\(\perp \)), dashed lines]

The assembly of the (\(\perp \))-DDR scheme requires, for any \(Y\in {\mathcal {T}}_{h}\cup {\mathcal {F}}_{h}\), to compute bases for the \(\text {L}^2\)-orthogonal complements in \(\varvec{\mathcal {P}}_{}^{\ell }(Y)\) of \(\varvec{\mathcal {G}}^{\ell }(Y)\) and \(\varvec{\mathcal {R}}^{\ell }(Y)\), which is done by computing the kernels of local matrices through a full pivot LU algorithm [29, Section 5.1]. On the contrary, in the (K) version, explicit bases for \(\varvec{\mathcal {G}}^{\mathrm{c},\ell }(Y)\) and \(\varvec{\mathcal {R}}^{\mathrm{c},\ell }(Y)\) can be devised; even though these bases are then orthonormalized to ensure a better numerical stability of the scheme (especially on non-isotropic elements, see the discussion in [28, Section B.1.1] on this topic), the computational cost of creating the polynomial bases in (\(\perp \)) can be expected to be larger than in (K). Figure 2 compares the processor times for the two DDR schemes required for (a) the creation of the bases for local polynomial spaces and (b) the model construction (computation of the discrete operators, potentials, and \(\text {L}^2\)-products, and global system assembly).

We do not compare the linear system resolution times as they are very close for both schemes. In all the cases, the finest mesh of each sequence is considered; see Table 3. A profiling of the code shows that numerical integration is by far the most expensive operation. We therefore include in Fig. 2 also a comparison between two integration strategies on general meshes: on one hand, the Homogeneous Numerical Integration of [20]; on the other hand, the use of standard quadratures on a simplicial subdivision of (nonsimplicial) elements.

Fig. 2
figure 2

CPU (left column) and wall times (right column), both measured in seconds, for the computation of the DDR bases (“Bases”) and of the model construction (“Model”) for Koszul (K) and orthogonal (\(\perp \)) complements using Homogeneous Numerical Integration (HNI) or quadratures on an element subdivision (quad.) on the finest mesh of each sequence; see Table 3

In the left column of Fig. 2 we report the total CPU time, which constitutes the most reliable measure to assess performance. Since our code makes use of multi-threading, we also report, in the right column, wall-clock times, which are more representative of real-life performance on the selected architecture. Wall-clock times are subject to outside influences, such as the impact of other processes, and should therefore be regarded with caution.

As expected, when considering standard quadratures on element subdivisions, (K) polynomial bases are faster to create than (\(\perp \)) polynomial bases, but not by a large factor (this factor however becomes very large when \(P_{\mathbf{grad},T}^{k+1}\) is required, which is not the case for the scheme (7.2), as the computation of \((\varvec{\mathcal {R}}^{k+4}(T))^\perp \) (see (4.1)) necessitates to integrate polynomials of degree \(2k+4\) over the elements). There is a more pronounced difference when comparing the time for model construction, which is mostly dedicated to the creation of the discrete vector calculus operators and potentials in \(\underline{\varvec{X}}_{\mathbf{curl},h}^k\) and \(\underline{\varvec{X}}_{{{\,\mathrm{div}\,}},h}^k\) (once these are created, assembling the global linear system itself takes only a small fraction of the total model construction time). Basis construction and model assembly times, on the other hand, basically even out between (K) and (\(\perp \)) when considering Homogeneous Numerical Integration, thereby showing the importance of efficient integral computation. Drawing more definitive conclusions is always difficult, as running times highly depend on specific implementation choices, and our implementation is designed for flexibility rather than for efficiency on one given model. The results presented in this section seem to show, however, that the DDR complex using Koszul complements is not only theoretically better (as it allows for complete consistency analysis and error estimates), but also requires less computational resources, at least when efficient integration is not available in the codes at hand. The comparison of CPU times and wall clock times also confirms that the assembly step strongly benefits from parallel implementations.

To close this section, we briefly assess the evolution of construction and solution times with mesh refinement. On a linear problem such as the one considered here, it is expected that the solution time be larger than the construction time starting from a certain number of elements. To check whether this is the case, we consider the Voronoi mesh family “Voro-small-0” and the polynomial degree \(k=2\) for the sequence. This test is representative of a worst-case scenario for the construction time, since mesh elements are genuinely polyhedral and it is not possible to optimize the construction using standard (reference element) techniques. The plots in Fig. 3 show that the asymptotic behavior of the construction times (“Bases” and “Model”) scale linearly with the number of elements (with the former being essentially negligible with respect to the latter), whereas the solution time (“Solve”) has a quadratic scaling. The solution time exceeds the construction time starting from the fourth mesh in the sequence, which has 729 elements (a small number for a three-dimensional computation). For meshes of real-life geometries, one can thus expect that the solution time will be the dominating cost (even if more efficient linear solvers become available at some point).

Table 3 Dimension of meshes and spaces considered for the evaluation of computational times in the numerical tests of Sect. 7.3
Fig. 3
figure 3

Comparison of the wall times, all measured in seconds, for the computation of the DDR bases (“Bases”), the model construction (“Model”) and the resolution of the linear system using the PARDISO direct solver (“Solve”) for the Voro-small-0 mesh sequence for \(k=2\)