1 Introduction

The Helmholtz decomposition describes a vector field on a bounded and contractible domain \(\Omega \subseteq \mathbb {R}^d\) as the sum of an irrotational and a solenoidal vector field, i.e.,

(1.1)

where means that the sum is \(L^2\)-orthogonal. It is a fundamental tool for the analysis and visualization of vector fields in various areas including fluid mechanics, astrophysics, geophysics, and imaging. For a historical overview of the Helmholtz decomposition on the continuous level, the reader is referred to [53] and [8].

Throughout the paper, let \(\mathcal {T}\) denote a conforming triangulation of a bounded and polyhedral Lipschitz domain \(\Omega \) into closed simplices. This paper investigates discrete versions of the Helmholtz decomposition (1.1) of the form

(1.2)

for \(k=0,1\) and \(d=2,3\). At least one of the discrete spaces \(X_h(\mathcal {T})\) and \(Y_h(\mathcal {T})\) has to be nonconforming and the differential operators \(\nabla _{NC }\) and \({{\,\textrm{rot}\,}}_{NC }\) apply piecewise. Such a decomposition was proved for the first time by Arnold and Falk for \(k=0\) and \(d=2\) in [2] with \(X_h(\mathcal {T})\) being the Crouzeix–Raviart finite element space and \(Y_h(\mathcal {T})\) being the conforming \(P_1\) finite element space. Later, Rodríguez, Hiptmair, and Valli [49] generalized this to \(k=0\) and \(d=3\), where \(Y_h(\mathcal {T})\) is then the Nédélec finite element space. Discrete Helmholtz decompositions arose also in the context of the Stokes equations (resp. linear elasticity and the biharmonic equation), where deviatoric, i.e. trace-free, (resp. symmetric) tensor fields are decomposed.

The first contribution of this paper is an overview of all known discrete Helmholtz decompositions. Since mixed boundary conditions are not much treated in the literature, this paper exemplifies the generalization to mixed boundary conditions for the decompositions of [2, 49].

In 2D, the gradient and the (vector-valued) \({{\,\textrm{rot}\,}}\) (or \({{\,\textrm{Curl}\,}}\)) operator are the same up to a change of coordinates and therefore the spaces \(X_h(\mathcal {T})\) and \(Y_h(\mathcal {T})\) can be interchanged. However, this is not the case in 3D and therefore the decomposition (1.2) with a conforming space \(X_h(\mathcal {T})\) is new; cf. Theorem 4.1 below.

The third and main contribution of this paper consists of completely new discrete Helmholtz decompositions of piecewise affine vector fields in Theorems 5.1, 5.5 and 5.7. While the decompositions for \(k=0\) are conforming in one of the spaces \(X_h(\mathcal {T})\) and \(Y_h(\mathcal {T})\), the decompositions for \(k=1\) require nonconforming spaces for both \(X_h(\mathcal {T})\) and \(Y_h(\mathcal {T})\). In 2D these spaces are the Fortin–Soulie spaces, while in 3D the rotation space consists of a Nédélec space enriched by nonconforming bubbles. While in 2D, the decomposition (1.2) follows by the orthogonality of the spaces and a dimension argument, the decomposition (1.2) for \(k=1\) and \(d=3\) requires a thorough analysis of the kernel of the operator \({{\,\textrm{rot}\,}}_{NC }\).

The majority of proofs in this paper focus on the case of contractible domains. However, the presence of handles (multiple connectedness) and cavities (non-connected boundary) in the domain as well as the type of boundary conditions may require the inclusion of the additional finite-dimensional space of Dirichlet or Neumann fields into the Helmholtz decomposition (1.1). Several remarks in this work address the corresponding generalizations of the discrete decompositions to basic non-contractible domains. The presentation of results for arbitrary geometries and mixed boundary conditions to its full extent is beyond the scope of this paper.

Sections 6 and 7 show how the discrete Helmholtz decompositions (1.1) can be generalized to decompositions of tensor fields of deviatoric and symmetric matrices. Those tensor fields arise in the context of the Stokes equations in the case of deviatoric matrices and in the context of linear elasticity and the biharmonic equation for symmetric matrices.

For a comprehensive overview of all discrete Helmholtz decompositions of this paper, see Table 1. This table refers to the respective theorems of this paper and also to the literature for previously established results.

Table 1 Overview of discrete Helmholtz decompositions

Discrete Helmholtz decompositions are applied in many different contexts. The discrete Helmholtz decomposition provides the basis for the derivation of stable discretizations for a variety of problems. The first discrete Helmholtz decomposition arose in the analysis of a nonconforming discretization of the Reissner–Mindlin plate [2]. While the decomposition (1.1) allows to treat the continuous problem, a discrete counterpart in [2] mimics the continuous analysis and enables a robust discretization of the problem. This approach was generalized in [32, 33] to arbitrary polynomial degrees. The latter works are based on a discrete Helmholtz decomposition of the form

without specifying the space \(Z_h\) as a space of piecewise gradients. See also the works [50,51,52] for discretizations based on this kind of discrete decompositions and [35]. In the context of electromagnetic problems, a mixed FEM in [49] employs the Crouzeix–Raviart finite element space as one of the discretization spaces. The discrete Helmholtz decomposition allows to prove the uniqueness and existence of discrete solutions. The analysis of a mixed system arising in fourth-order problems in [38] also requires discrete Helmholtz decompositions to identify the gradient and the rotational part of piecewise constant and piecewise affine vector fields. Moreover, a discrete Helmholtz decomposition founded a nonconforming method in the context of the Bingham problem in [20]. The novel decompositions pave the way for the design and analysis of new schemes in the context of, e.g., electromagnetic problems or Reissner–Mindlin plates, e.g., a Fortin–Soulie scheme for the Reissner–Mindlin plate or a nonconforming Crouzeix–Raviart or enriched Nédélec FEM for Maxwell’s equations.

Another key application of discrete Helmholtz decompositions is the a posteriori and optimality analysis of adaptive nonconforming FEMs [6, 15, 19] (in particular in the discrete reliability analysis) and the medius analysis [21]. In this context, the Poisson (resp. Stokes or biharmonic) problem is discretized with a nonconforming finite element space \(X_h\) and the discrete Helmholtz decomposition (1.2) splits the error in a discrete residual type error in \(\nabla _{NC }X_h\) and a nonconformity error in \({{\,\textrm{rot}\,}}_{NC }Y_h(\mathcal {T})\). The convergence analysis of adaptive least-squares FEMs [12, 13, 17, 18] made use of discrete Helmholtz decompositions as well. Although it was nowadays observed that the discrete Helmholtz decomposition can be avoided in the proof of the discrete reliability for the nonconforming Crouzeix–Raviart FEM [16] and least-squares FEMs [11, Rem. 5.4], it still seems to be an important tool in the proof of the discrete reliability and helps to understand and characterize the nonconformity error of a method. Therefore, the new decompositions of this paper open the door for the optimality analysis of a Fortin–Soulie FEM for the Poisson problem or linear elasticity and of the \(P_3\) Morley-type FEM of [54] for fourth-order problems.

This paper focuses on discrete decompositions of the form (1.2). Several related decompositions are beyond the scope of this paper. This applies to Helmholtz decompositions based on finite difference approximations of differential operators as in [47] and discrete Helmholtz decompositions for surface finite element spaces as in [23].

Another kind of discrete Helmholtz decomposition has been derived from discrete exact sequences by Brezzi, Fortin, and Stenberg in [10] in the context of Reissner–Mindlin plates. Decompositions of this type employ a discrete weak differential operator \({{\,\textrm{Curl}\,}}_{Y_h}: Z_h \rightarrow Y_h\) defined on some discrete spaces \(Y_h\subseteq H({{\,\textrm{curl}\,}},\Omega )\) and \(Z_h\subseteq L^2(\Omega )\), for \(v_h \in Z_h\), by

$$\begin{aligned} ({{\,\textrm{Curl}\,}}_{Y_h} v_h, q_h)_{L^2(\Omega )} = (v_h, {{\,\textrm{curl}\,}}q_h)_{L^2(\Omega )} \quad \text {for all }q_h\in Y_h. \end{aligned}$$
(1.3)

The space \(Y_h\) may be chosen as the Nédélec finite element spaces in 2D, i.e., \(Y_h \mathrel {{:}{=}}R_{\pi /2} {RT }_k(\mathcal {T})\) or \(Y_h \mathrel {{:}{=}}R_{\pi /2} {BDM }_k(\mathcal {T})\) with the rotation operator \(R_{\pi /2}: \mathbb {R}^2 \rightarrow \mathbb {R}^2\), \(R_{\pi /2}q \mathrel {{:}{=}}(q_2, -q_1)^\top \) by \(\pi /2\). The choice of \(Y_h\) leads to the following discrete Helmholtz decompositions from [10, Lem. 3.1] and [44, Thm. 3.2]

This decomposition can be considered as discrete versions of the Helmholtz decomposition [9, Prop. 2.3]

where \( (H_0({{\,\textrm{curl}\,}}, \Omega ))^* = H^{-1}({{\,\textrm{div}\,}}, \Omega ) \mathrel {{:}{=}}\{ q \in H^{-1}(\Omega ; \mathbb {R}^2): {{\,\textrm{div}\,}}q \in H^{-1}(\Omega ) \}. \) This decomposition is orthogonal with respect to the duality pairing. The Helmholtz decompositions of this type are applied in the context of Reissner-Mindlin plates [10], the proof of optimal convergence rates of mixed FEMs [6, 36], and the preconditioning in \(H({{\,\textrm{div}\,}})\) [3]. For details on the methodology of their derivation from discrete exact sequences, the reader is referred to [10]. For analogous decompositions for various applications, see [22].

The terminology discrete Helmholtz decomposition also arose for interpolations of the continuous Helmholtz decomposition (1.1): They employ suitable (quasi-)interpolation operators, e.g., the Fortin interpolation operator \(I_{RT }: H^1(\Omega ; \mathbb {R}^2)\rightarrow {RT }^0(\mathcal {T})\) and a quasi-interpolation operator of Clément type \(J: H^1(\Omega ) \rightarrow {S }^1(\Omega )\). Given \(\tau \in H({{\,\textrm{div}\,}}, \Omega )\) with continuous Helmholtz decomposition \(\tau = \nabla a + {{\,\textrm{Curl}\,}}b\) for \(a \in H^2(\Omega )\) and \(b \in H^1(\Omega )\), the discrete Helmholtz decomposition from [34, Eqn. 33] reads

$$\begin{aligned} \tau _h \mathrel {{:}{=}}I_{RT }(\nabla a) + {{\,\textrm{Curl}\,}}(J b) \in {RT }^0(\mathcal {T}). \end{aligned}$$

This technique enables the derivation of a myriad of discrete decompositions. Further details are omitted.

The term discrete Helmholtz decompositions in this paper should not be confused with numerical methods for the approximation of the continuous irrotational and the solenoidal field which are often called discrete (Hodge) Helmholtz decomposition as well. Many of those methods base on the publications [45, 46].

The paper departs with the notation and further preliminaries in Sect. 2. Sections 3 and 4 are devoted to discrete Helmholtz decompositions of the form (1.2) for \(k=0\). Section 5 is devoted to the decomposition of piecewise affine vector (or tensor) fields. To the best of the authors’ knowledge, this is the first result of the form (1.2) for \(k>0\). Beyond the Helmholtz decompositions (1.2) of vector fields, further decompositions of piecewise constant and piecewise affine deviatoric tensor fields are presented in Sect. 6 in the context of the Stokes equations. The paper concludes with decompositions of discrete symmetric tensor fields in Sect. 7 in the context of linear elasticity and the biharmonic equation.

2 Preliminaries

This section defines notation employed throughout the paper and proves some preliminary results.

2.1 Polyhedral Lipschitz Domains

Let \(\Omega \subseteq \mathbb {R}^d\) denote a bounded and connected open domain of dimension \(d \in \mathbb {N}\) with \(d \ge 2\). Since (discrete) Helmholtz decompositions critically depend on the topology of the domain, each theorem in this paper explicitly includes the assumptions on the topology and on the regularity of the domain and its boundary.

The domain \(\Omega \) is called a polyhedral Lipschitz domain if \(\Omega \) lies on exactly one side of its polyhedral boundary \(\partial \Omega \) that is locally the graph of a Lipschitz function. The domain \(\Omega \) is called contractible if it is homotopy equivalent to a point. In 2D, this is equivalent to simple connectedness of \(\Omega \subseteq \mathbb {R}^2\) and, in 3D, this means that \(\Omega \subseteq \mathbb {R}^3\) is simply connected and has a connected boundary \(\partial \Omega \). For any non-contractible domain \(\Omega \subset \mathbb {R}^d\), let \(\Gamma _0, \dots , \Gamma _L\) with \(L \in \mathbb {N}_0\) denote the \(L + 1\) connectivity components of the boundary \(\partial \Omega \), i.e., \(\Omega \) contains L cavities. Assume the convention that \(\Gamma _0\) is the boundary of the unbounded component of the complement \(\mathbb {R}^d \setminus \Omega \). Three-dimensional non-contractible domains \(\Omega \subset \mathbb {R}^3\) may feature handles in the case that \(\Omega \) is multiply connected, i.e., there is more than one homotopy class of closed curves inside \(\Omega \). Following [1, Hypothesis 3.3], the treatment of these handles requires the choice of two-dimensional cuts \(\Sigma _1, \dots , \Sigma _M \subset \Omega \) of minimal number \(M \in \mathbb {N}_0\) such that each \(\Sigma _m\) for \(m = 1, \dots , M\) and the remaining set \(\Omega {\setminus } (\Sigma _1 \cup \dots \cup \Sigma _M)\) are simply connected.

The investigation of discrete Helmholtz decompositions with mixed boundary conditions requires the dissection of the boundary \(\partial \Omega \) of \(\Omega \) into two disjoint parts. Let \(\Gamma _{D }\subseteq \partial \Omega \) be the closed Dirichlet boundary with \(J \in \mathbb {N}_0\) closed and disjoint connectivity components \(\Gamma _{{D },1}, \dots , \Gamma _{{D },J}\). Let the relatively open \( \Gamma _{N }\mathrel {{:}{=}}\partial \Omega {\setminus } \Gamma _{D }\) have the \(K \in \mathbb {N}_0\) connectivity components \(\Gamma _{{N },1}, \dots , \Gamma _{{N },K}\), that are disjoint in the sense that \( {\overline{\Gamma }}_{{N },j} \cap {\overline{\Gamma }}_{{N },k} = \emptyset \) for all \(j\ne k\). Then

$$\begin{aligned} \partial \Omega = \bigcup _{j=1}^J \Gamma _{{D },j} \cup \bigcup _{k=1}^K \Gamma _{{N },k}. \end{aligned}$$

For \(d \ge 3\), a relatively open boundary part \(\Gamma _{N }\) is called polyhedral boundary patch if the interface \( \Gamma _I \mathrel {{:}{=}}\Gamma _{D }\cap {{\overline{\Gamma }}}_{N }\) between the two boundaries is piecewise affine and \(\Gamma _{D }\) lies locally on exactly one side of the interface (relatively to the \((d-1)\)-dimensional manifold \(\partial \Omega \)). For two-dimensional sets, the term polygonal replaces polyhedral.

2.2 Differential Operators and Continuous Spaces

Let “\(\,\cdot \,\)” denote the scalar product, “\(\wedge \)” the cross product, and A : B the Frobenius scalar product of two matrices \(A,B\in \mathbb {R}^{n\times k}\) defined by \(A:B=\sum _{j=1}^n\sum _{\ell =1}^k A_{j\ell }B_{j\ell }\).

For a scalar valued function \(v \in C^1(\Omega )\) and a vector field \(\beta \in C^1(\Omega ; \mathbb {R}^d)\), let \(\nabla v\) denote the gradient (i.e., the column vector of the first partial derivatives) and \({\text {D}}\hspace{-1.66656pt}\beta \) the first derivative (i.e., the matrix that contains the transposed gradients of the components of \(\beta \)). The Hessian of \(v \in C^2(\Omega )\) is denoted by \({\text {D}}\hspace{-1.66656pt}^2 v\) and the divergence of \(\beta \in C^1(\Omega ; \mathbb {R}^d)\) by \({{\,\textrm{div}\,}}\beta \). In two spatial dimensions, the differential operators \({{\,\textrm{Curl}\,}}\) and \({{\,\textrm{curl}\,}}\) applied to \(v \in C^1(\Omega )\) and \(\beta \in C^1(\Omega ; \mathbb {R}^2)\) are defined by

$$\begin{aligned} {{\,\textrm{Curl}\,}}v&= \begin{pmatrix} -\partial v/\partial x_2 \\ \partial v/\partial x_1 \end{pmatrix} \quad \text {and}\quad {{\,\textrm{curl}\,}}\beta = \partial \beta _2/\partial x_1 - \partial \beta _1/\partial x_2. \end{aligned}$$

In order to clearly distinguish the operator in the three-dimensional case, the curl of a vector field \(\beta \in C^1(\Omega ; \mathbb {R}^3)\) is denoted by rot and reads

$$\begin{aligned} {{\,\textrm{rot}\,}}\beta = \begin{pmatrix} \partial \beta _3/\partial x_2 - \partial \beta _2/\partial x_3\\ \partial \beta _1/\partial x_3 - \partial \beta _3/\partial x_1\\ \partial \beta _2/\partial x_1 - \partial \beta _1/\partial x_2 \end{pmatrix}. \end{aligned}$$

The differential operators \({{\,\textrm{div}\,}}\), \({{\,\textrm{curl}\,}}\), and \({{\,\textrm{rot}\,}}\) apply row-wise to matrix-valued functions. In particular, the twofold application of the \({{\,\textrm{Curl}\,}}\) operator to a scalar function \(v \in C^2(\Omega )\) reads

$$\begin{aligned} {{\,\textrm{Curl}\,}}^2 v = \begin{pmatrix} \partial ^2 v/\partial x_2^2 &{} -\partial ^2 v/ (\partial x_1\partial x_2)\\ -\partial ^2 v/(\partial x_1 \partial x_2) &{} \partial ^2 v/\partial x_1^2 \end{pmatrix}. \end{aligned}$$

The corresponding weak (distributional) versions of all previously displayed differential operators employ the same notation.

Throughout the paper, the index “NC” indicates the piecewise application of differential operators to nonconforming functions with respect to an underlying triangulation \(\mathcal {T}\). Formally, if \(v \in L^2(\Omega )\) satisfies \(v\vert _{{{\,\textrm{int}\,}}(T)} \in H^1({{\,\textrm{int}\,}}(T))\) for all \(T \in \mathcal {T}\) with interior \({{\,\textrm{int}\,}}(T) \subseteq \Omega \), then \(\nabla _{NC }v \in L^2(\Omega ; \mathbb {R}^d)\) is defined, for all \(T \in \mathcal {T}\), by

$$\begin{aligned} (\nabla _{NC }v)\vert _{{{\,\textrm{int}\,}}(T)} \mathrel {{:}{=}}\nabla (v \vert _{{{\,\textrm{int}\,}}(T)}). \end{aligned}$$

Analogous definitions apply for \({\text {D}}\hspace{-1.66656pt}_{NC }\), \({\text {D}}\hspace{-1.66656pt}^2_{NC }\), \({{\,\textrm{Curl}\,}}_{NC }\), \({{\,\textrm{Curl}\,}}^2_{NC }\), \({{\,\textrm{curl}\,}}_{NC }\), \({{\,\textrm{rot}\,}}_{NC }\), and \({{\,\textrm{div}\,}}_{NC }\).

The following lemma asserts that the normal component of the rotation can be represented solely in terms of the derivatives of the tangential components.

Lemma 2.1

Let \(T \subseteq \mathbb {R}^3\) be a simplex. For its face \(F \in \mathcal {F}(T)\) with normal vector \(\nu \in \mathbb {R}^3\), choose positively oriented unit tangential vectors \(\tau _1, \tau _2 \in \mathbb {R}^3\) such that \(\det [\tau _1\; \tau _2\; \nu ] = 1\). Then, any \(\varphi \in C^1({\text {int}}(T); \mathbb {R}^3)\) satisfies

$$\begin{aligned} \nu \cdot ({{\,\textrm{rot}\,}}\varphi ) \vert _F = \nabla (\varphi \cdot \tau _2) \cdot \tau _1 - \nabla (\varphi \cdot \tau _1) \cdot \tau _2. \end{aligned}$$
(2.1)

Proof

The representation of \(\varphi \) in the basis \(\{\tau _1, \tau _2, \nu \}\) reads

$$\begin{aligned} \varphi = (\varphi \cdot \tau _1) \tau _1 + (\varphi \cdot \tau _2)\tau _2 + (\varphi \cdot \nu ) \nu . \end{aligned}$$

The application of the \({{\,\textrm{rot}\,}}\) operator and the product rule \( {{\,\textrm{rot}\,}}(\alpha q) = \nabla \alpha \wedge q + \alpha {{\,\textrm{rot}\,}}q \) for \(\alpha \in C^1({\text {int}}(T))\) and \(q \in C^1({\text {int}}(T); \mathbb {R}^3)\) lead to

$$\begin{aligned} {{\,\textrm{rot}\,}}\varphi = \nabla (\varphi \cdot \tau _1) \wedge \tau _1 + \nabla (\varphi \cdot \tau _2) \wedge \tau _2 + \nabla (\varphi \cdot \nu ) \wedge \nu . \end{aligned}$$

The wedge-product identity \(\nu \cdot (a \wedge b) = a \cdot (b \wedge \nu )\) for \(a, b \in \mathbb {R}^3\) as well as \(\tau _1 \wedge \nu = - \tau _2\), \(\tau _2 \wedge \nu = \tau _1\), and \(\nu \wedge \nu = 0\) conclude the proof of (2.1). \(\square \)

Standard notation on Lebesgue and Sobolev spaces applies throughout this paper. The \(L^2\) inner product is denoted by \((v,w)_{L^2(\Omega )}\) and \(\Vert {}\cdot {}\Vert _{L^2(\Omega )}\) denotes the \(L^2\) norm. For any subspace \(X \subseteq L^1(\Omega )\), abbreviate

$$\begin{aligned} X/\mathbb {R}\mathrel {{:}{=}}\Big \{ v \in X :\; \int _\Omega v \;d x= 0 \Big \} \quad \text {and} \quad L^2_0(\Omega ) \mathrel {{:}{=}}L^2(\Omega ) / \mathbb {R}. \end{aligned}$$

Given any finite-dimensional vector space X, let \(L^2(\Omega ;X)\) be the space of functions \(v:\Omega \rightarrow X\) whose components belong to \(L^2(\Omega )\). Let \(\nu : \partial \Omega \rightarrow \mathbb {R}^d\) denote the outward unit normal vector of \(\Omega \). Define the Sobolev spaces

$$\begin{aligned} H({{\,\textrm{rot}\,}},\Omega )&\mathrel {{:}{=}}\{ \beta \in L^2(\Omega ;\mathbb {R}^3) \;:\; {{\,\textrm{rot}\,}}\beta \in L^2(\Omega ;\mathbb {R}^3) \},\\ H({{\,\textrm{div}\,}},\Omega )&\mathrel {{:}{=}}\{ p\in L^2(\Omega ;\mathbb {R}^d) \;:\; {{\,\textrm{div}\,}}p\in L^2(\Omega ) \} \end{aligned}$$

and the kernels of the differential operators \({{\,\textrm{rot}\,}}\) and \({{\,\textrm{div}\,}}\)

$$\begin{aligned} H({{\,\textrm{rot}\,}}^0,\Omega )&\mathrel {{:}{=}}\{ \beta \in H({{\,\textrm{rot}\,}},\Omega ) \;:\; {{\,\textrm{rot}\,}}\beta =0 \},\\ H({{\,\textrm{div}\,}}^0,\Omega )&\mathrel {{:}{=}}\{ p\in H({{\,\textrm{div}\,}},\Omega ) \;:\; {{\,\textrm{div}\,}}p=0 \}. \end{aligned}$$

The spaces of Sobolev functions satisfying homogeneous boundary conditions in the sense of traces read

$$\begin{aligned} H^1_0(\Omega )&\mathrel {{:}{=}}\{ v \in H^1(\Omega ) \;:\; v\vert _{\partial \Omega } = 0 \},\\ H_0({{\,\textrm{rot}\,}},\Omega )&\mathrel {{:}{=}}\{ \beta \in H({{\,\textrm{rot}\,}},\Omega ) \;:\; (\nu \wedge \beta )\vert _{\partial \Omega }=0 \},\\ H_0({{\,\textrm{div}\,}},\Omega )&\mathrel {{:}{=}}\{ p\in H({{\,\textrm{div}\,}},\Omega ) \;:\; (p\cdot \nu )\vert _{\partial \Omega }=0 \}. \end{aligned}$$

Recall from Sect. 2.1 the dissection of the boundary of \(\Omega \) into a closed Dirichlet boundary \(\Gamma _{D }\subseteq \partial \Omega \) and a relatively open Neumann boundary \(\Gamma _{N }=\partial \Omega \setminus \Gamma _{D }\). Corresponding subscripts indicate the spaces with partial homogeneous boundary conditions \(H^1_{D }(\Omega )\), \(H^1_{N }(\Omega )\), \(H_{N }({{\,\textrm{rot}\,}}, \Omega )\), \(H_{N }({{\,\textrm{rot}\,}}^0, \Omega )\), \(H_{N }({{\,\textrm{div}\,}}, \Omega )\), and \(H_{N }({{\,\textrm{div}\,}}^0, \Omega )\).

In the framework of exterior calculus, the geometric interpretation of cavities and handles of the domain \(\Omega \) from Sect. 2.1 is formalized by the notion of Betti numbers \(b_j \in \mathbb {N}_0\) for \(j = 0, \dots , d\). They are defined by the dimension of the remaining space in the continuous Helmholtz decomposition (1.1). For instance, for the differential operators in the following three-dimensional sequence

$$\begin{aligned} P_0(\Omega ) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{id}\,}}}}H^1(\Omega ) {\mathop {\longrightarrow }\limits ^{\nabla }}H({{\,\textrm{rot}\,}}, \Omega ) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{rot}\,}}}}H({{\,\textrm{div}\,}}, \Omega ) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{div}\,}}}}L^2(\Omega ) {\mathop {\longrightarrow }\limits ^{0}}\{0\}, \end{aligned}$$

set \( b_1 \mathrel {{:}{=}}\dim (\ker ({{\,\textrm{rot}\,}}) / {\text {ran}}(\nabla )) = M \) and \( b_2 \mathrel {{:}{=}}\dim (\ker ({{\,\textrm{div}\,}}) / {\text {ran}}({{\,\textrm{rot}\,}})) = L \). The reader is referred to [39] for further details.

2.3 Triangulations

Throughout the paper, let \(\mathcal {T}\) be a regular triangulation of the polygonal domain \(\Omega \subseteq \mathbb {R}^d\) into at least two closed simplices. Let \(\mathcal {F}\) denote the set of faces of \(\mathcal {T}\), \(\mathcal {E}\) the set of edges and \(\mathcal {V}\) the set of nodes. If \(d=2\), identify \(\mathcal {F}=\mathcal {E}\). Let furthermore \(\mathcal {F}(\Omega )\) (resp. \(\mathcal {E}(\Omega )\) and \(\mathcal {V}(\Omega )\)) denote the set of interior faces (resp. interior edges and interior nodes) and let \(\mathcal {F}(\partial \Omega )\) (resp. \(\mathcal {E}(\partial \Omega )\) and \(\mathcal {V}(\partial \Omega )\)) denote the set of boundary faces (resp. boundary edges and boundary nodes). For any simplex \(T \in \mathcal {T}\), the vector field \(\nu _T: \partial T \rightarrow \mathbb {R}^d\) denotes the outward unit normal vector of T. For a face \(F \in \mathcal {F}\), let \(\nu _F\) denote the unit normal vector with a fixed orientation. In 2D, this induces a unique tangential vector \(\tau _F = (\nu _{F, 2}, -\nu _{F, 1})^\top \) of the edge F. For any interior face \(F \in \mathcal {F}(\Omega )\), let \(T_+, T_- \in \mathcal {T}\) denote the two unique distinct simplices satisfying \(F = T_+ \cap T_-\). The indices follow the convention that \(\nu _F \cdot \nu _{T_\pm } = \pm 1\). For any boundary face \(F \in \mathcal {F}(\partial \Omega )\), \(T_+ \in \mathcal {T}\) is the unique adjacent simplex with \(F \subseteq T_+\). For any face \(F \in \mathcal {F}\) (resp. any edge \(E \in \mathcal {E}\)), its barycenter reads \({{\,\textrm{mid}\,}}(F)\) (resp. \({{\,\textrm{mid}\,}}(E))\).

Assume that the triangulation \(\mathcal {T}\) reflects the dissection of the boundary in that the Dirichlet faces \( \mathcal {F}(\Gamma _{D }) \mathrel {{:}{=}}\{ F \in \mathcal {F}(\partial \Omega ) \;:\; F \subseteq \Gamma _{D }\} \) and the Neumann faces \( \mathcal {F}(\Gamma _{N }) \mathrel {{:}{=}}\{F\in \mathcal {F}(\partial \Omega ) \;:\; F \subseteq {{\overline{\Gamma }}}_{N }\} \) partition the set \(\mathcal {F}(\partial \Omega )\) of boundary faces. Analogously, define the sets of the Dirichlet vertices \( \mathcal {V}(\Gamma _{D }) \mathrel {{:}{=}}\{ z \in \mathcal {V}(\partial \Omega ) \;:\; z \in \Gamma _{D }\} \) and the Neumann vertices \( \mathcal {V}(\Gamma _{N }) \mathrel {{:}{=}}\mathcal {V}(\partial \Omega ) {\setminus } \mathcal {V}(\Gamma _{D }) \). Let

$$\begin{aligned} \mathcal {V}({{\overline{\Gamma }}}_{N }) \mathrel {{:}{=}}\bigcup _{k = 1}^K \mathcal {V}({{\overline{\Gamma }}}_{{N }, k}) \quad \text {with}\quad \mathcal {V}({{\overline{\Gamma }}}_{{N }, k}) \mathrel {{:}{=}}\{ z \in \mathcal {V}(\partial \Omega ) :\; z\in {\overline{\Gamma }}_{{N }, k} \}. \end{aligned}$$

denote the set of vertices on the Neumann boundary including the ones at the interface of the boundary parts.

The following well-known Euler formulas ([26, Lem. 1.57] in a corrected version) provide an essential tool for computing the dimension of discrete finite element spaces in the proofs below.

Lemma 2.2

(Euler formulas) Let \(\Omega \subseteq \mathbb {R}^d\) be an arbitrary polyhedral domain. Counting the \(d + 1\) faces of each simplex verifies the following formula

$$\begin{aligned} \#\mathcal {F}+\#\mathcal {F}(\Omega ) = (d+1)\#\mathcal {T}. \end{aligned}$$
(2.2)

For \(d = 2\), regular triangulations of any simply connected domain \(\Omega \subseteq \mathbb {R}^2\) satisfy

$$\begin{aligned} \#\mathcal {T}-\#\mathcal {F}+\#\mathcal {V}-1&= 0, \end{aligned}$$
(2.3)
$$\begin{aligned} \#\mathcal {F}(\partial \Omega )-\#\mathcal {V}(\partial \Omega )&= 0. \end{aligned}$$
(2.4)

For \(d = 3\), regular triangulations of any contractible domain \(\Omega \subseteq \mathbb {R}^3\) guarantee

$$\begin{aligned} \#\mathcal {T}-\#\mathcal {F}+\#\mathcal {E}-\#\mathcal {V}+1&= 0, \end{aligned}$$
(2.5)
$$\begin{aligned} \#\mathcal {F}(\partial \Omega ) - \#\mathcal {E}(\partial \Omega ) + \#\mathcal {V}(\partial \Omega ) - 2&= 0, \end{aligned}$$
(2.6)
$$\begin{aligned} 3\#\mathcal {F}(\partial \Omega ) - 2\#\mathcal {E}(\partial \Omega )&= 0. \end{aligned}$$
(2.7)

In the case of non-contractible domains \(\Omega \), recall the notation for the connectivity components \(\Gamma _0, \dots , \Gamma _L\) of \(\partial \Omega \) and cuts \(\Sigma _1, \dots , \Sigma _M\) from Sect. 2.1. Let \(\mathcal {F}(\Gamma _\ell )\) (resp. \(\mathcal {E}(\Gamma _\ell )\) and \(\mathcal {V}(\Gamma _\ell )\)) denote sets of faces (resp. edges and vertices) subordinated to \(\Gamma _\ell \) for \(\ell = 0, \dots , L\). Assume throughout the paper that any triangulation \(\mathcal {T}\) resolves the cuts \(\Sigma _1, \dots , \Sigma _M\). Moreover, the generalized Euler formulas read, for \(d = 2\),

$$\begin{aligned} \#\mathcal {T}-\#\mathcal {F}+\#\mathcal {V}+ L -1 = 0 \end{aligned}$$
(2.8)

and, for \(d = 3\),

$$\begin{aligned} \#\mathcal {T}-\#\mathcal {F}+\#\mathcal {E}-\#\mathcal {V}+1 + L - M&=0, \end{aligned}$$
(2.9)
$$\begin{aligned} \#\mathcal {F}(\partial \Omega ) - \#\mathcal {E}(\partial \Omega ) + \#\mathcal {V}(\partial \Omega ) - 2(1 + L - M)&= 0. \end{aligned}$$
(2.10)

The remaining equalities (2.4) and (2.7) remain true.

2.4 Conforming Finite Element Spaces

Given a regular triangulation \(\mathcal {T}\), let \(P_k(\mathcal {T})\) denote the space of piecewise polynomials of total degree at most \(k \in \mathbb {N}_0\). As in the continuous setting let \(P_k(\mathcal {T};X)\) denote the space of functions \(v_h:\Omega \rightarrow X\) with components in X. Define the conforming finite element spaces

$$\begin{aligned} {S }^{k+1}(\mathcal {T})&\mathrel {{:}{=}}P_{k+1}(\mathcal {T}) \cap C^0(\Omega ), \end{aligned}$$
(2.11)
$$\begin{aligned} N ^k(\mathcal {T})&\mathrel {{:}{=}}\{ v_{Nd }\in H({{\,\textrm{rot}\,}}, \Omega ) \;:\; \exists a_\mathcal {T}, b_\mathcal {T}\in P_k(\mathcal {T}; \mathbb {R}^3),\, v_{Nd }= a_\mathcal {T}+ b_\mathcal {T}\wedge {{\,\textrm{id}\,}}\}, \end{aligned}$$
(2.12)
$$\begin{aligned} {RT }^k(\mathcal {T})&\mathrel {{:}{=}}\left\{ \beta _{RT }\in H({{\,\textrm{div}\,}}, \Omega ) \;:\; \begin{matrix} \exists a_\mathcal {T}\in P_k(\mathcal {T};\mathbb {R}^d) \exists b_\mathcal {T}\in P_k(\mathcal {T}),\,\\ \beta _{RT }= a_\mathcal {T}+ b_\mathcal {T}{{\,\textrm{id}\,}}\end{matrix} \right\} . \end{aligned}$$
(2.13)

Abbreviate the subspace with (partial) homogeneous boundary conditions

$$\begin{aligned} {S }^{k+1}_0(\mathcal {T})&\mathrel {{:}{=}}{S }^{k+1}(\mathcal {T}) \cap H^1_0(\Omega ),&{S }^{k+1}_{D }(\mathcal {T})&\mathrel {{:}{=}}{S }^{k+1}(\mathcal {T}) \cap H^1_{D }(\Omega ),\\ N ^k_0(\mathcal {T})&\mathrel {{:}{=}}N ^k(\mathcal {T}) \cap H_0({{\,\textrm{rot}\,}}, \Omega ),&N ^k_{N }(\mathcal {T})&\mathrel {{:}{=}}N ^k(\mathcal {T}) \cap H_{N }({{\,\textrm{rot}\,}}, \Omega ),\\ {RT }^k_0(\mathcal {T})&\mathrel {{:}{=}}{RT }^k(\mathcal {T}) \cap H_0({{\,\textrm{div}\,}}, \Omega ),&{RT }^k_{N }(\mathcal {T})&\mathrel {{:}{=}}{RT }^k(\mathcal {T}) \cap H_{N }({{\,\textrm{div}\,}}, \Omega ). \end{aligned}$$

The kernels of the differential operators read as follows

$$\begin{aligned} N ^k({{\,\textrm{rot}\,}}^0, \mathcal {T})&\mathrel {{:}{=}}N ^k(\mathcal {T}) \cap H({{\,\textrm{rot}\,}}^0,\Omega ) ,\qquad&{RT }^k({{\,\textrm{div}\,}}^0, \mathcal {T})&\mathrel {{:}{=}}{RT }^k(\mathcal {T}) \cap H({{\,\textrm{div}\,}}^0,\Omega ),\\ N ^k_{N }({{\,\textrm{rot}\,}}^0, \mathcal {T})&\mathrel {{:}{=}}N ^k_{N }(\mathcal {T}) \cap H({{\,\textrm{rot}\,}}^0,\Omega ) ,\qquad&{RT }^k_{N }({{\,\textrm{div}\,}}^0, \mathcal {T})&\mathrel {{:}{=}}{RT }^k_{N }(\mathcal {T}) \cap H({{\,\textrm{div}\,}}^0,\Omega ). \end{aligned}$$

For a (sub-)space of matrices X, let \(N ^k({{\,\textrm{rot}\,}}^0, \mathcal {T};X)\) etc. denote the set of functions \(\beta :\Omega \rightarrow X\) whose rows belong to \(N ^k({{\,\textrm{rot}\,}}^0, \mathcal {T})\).

The barycentric coordinate \(\lambda _z \in S^1(\mathcal {T})\) of a vertex \(z \in \mathcal {V}\) is uniquely defined by the piecewise linear interpolation of the values \(\lambda _z(z) = 1\) and \(\lambda _z(y) = 0\) for all \(y \in \mathcal {V}{\setminus } \{z\}\).

2.5 Nonconforming Finite Element Spaces

Nonconforming piecewise polynomial functions allow for nontrivial interelement jumps and averages. For all \(v \in L^2(\Omega )\) with piecewise traces \((v\vert _T)\vert _F \in L^2(F)\) for all \(F \in \mathcal {F}(T)\) and \(T \in \mathcal {T}\), define the jump \([v]_F \in L^2(F)\) and the average \(\langle v \rangle _F \in L^2(F)\) by

$$\begin{aligned}{}[v]_F&\mathrel {{:}{=}}(v\vert _{T_+})\vert _F - (v\vert _{T_-})\vert _F, \langle v \rangle _F \mathrel {{:}{=}}\frac{1}{2} \big ( (v\vert _{T_+})\vert _F + (v\vert _{T_-})\vert _F \big ) \text { if } F \in \mathcal {F}(\Omega ), \\ [v]_F&\mathrel {{:}{=}}\langle v \rangle _F \mathrel {{:}{=}}(v\vert _{T_+})\vert _F \text { if } F \in \mathcal {F}(\partial \Omega ). \end{aligned}$$

A straightforward calculation reveals the product rule of the jump

$$\begin{aligned}{}[uv]_F = [u]_F \langle v \rangle _F + \langle u \rangle _F [v]_F. \end{aligned}$$
(2.14)

For \(d=2\) and \(d=3\), discrete Helmholtz decompositions typically employ nonconforming discrete spaces such as the Crouzeix–Raviart finite element space from [25] and the Fortin–Soulie finite element space from [30]

$$\begin{aligned} {CR }^1(\mathcal {T})&\mathrel {{:}{=}}\bigg \{ v_{CR }\in P_1(\mathcal {T}) \;:\; \forall F \in \mathcal {F}(\Omega ),\, \int _F [v_{CR }]_F \;d s= 0 \bigg \}, \end{aligned}$$
(2.15)
$$\begin{aligned} {FS }(\mathcal {T})&\mathrel {{:}{=}}\bigg \{ v_{FS }\in P_2(\mathcal {T}) \;:\; \forall F \in \mathcal {F}(\Omega )\, \forall p \in P_1(F),\, \int _F [v_{FS }]_F p \;d s= 0 \bigg \}. \end{aligned}$$
(2.16)

The subspaces with homogeneous boundary conditions read

$$\begin{aligned} {CR }^1_0(\mathcal {T})&\mathrel {{:}{=}}\bigg \{ v_{CR }\in {CR }^1(\mathcal {T}) \;:\; \forall F \in \mathcal {F}(\partial \Omega ),\, \int _F v_{CR }\;d s= 0 \bigg \},\\ {FS }_0(\mathcal {T})&\mathrel {{:}{=}}\bigg \{ v_{FS }\in {FS }(\mathcal {T}) \;:\; \forall F \in \mathcal {F}(\partial \Omega )\, \forall p \in P_1(F),\, \int _F v_{FS }p \;d s= 0 \bigg \} \end{aligned}$$

and analogously the spaces \({CR }^1_{D }(\mathcal {T})\) and \({FS }_{D }(\mathcal {T})\) with partial homogeneous boundary conditions on \(\Gamma _{D }\).

Recall that in 2D the jump \([b_T^{NC }]_E\) of the nonconforming bubble function \(b_T^{NC }\) defined in (2.17) below vanishes at the two Gauß points of the edge \(E \in \mathcal {E}(\Omega )\), but is not the zero function. Therefore, the function evaluation in these Gauß points do not provide degrees of freedom for a finite element in the classical sense of Ciarlet. A characterization of the Fortin–Soulie space for \(d = 2,3\) employs the barycentric coordinate \(\lambda _z\) of \(z \in \mathcal {V}\) in the nonconforming quadratic volume bubble function \(b_T^{NC }\in P_2(\mathcal {T})\) with, for a triangle \(T \in \mathcal {T}\),

$$\begin{aligned} b_T^{NC }\vert _T \mathrel {{:}{=}}2 - (d + 1) \sum _{z \in \mathcal {V}(T)} \lambda _z^2 \end{aligned}$$
(2.17)

and \(b_T^{NC }\vert _K \equiv 0\) on any other \(K \in \mathcal {T}{\setminus }\{T\}\). These bubble functions span the space

$$\begin{aligned} \mathcal {B}^{NC }(\mathcal {T}) \mathrel {{:}{=}}{{\,\textrm{span}\,}}\{ b_T^{NC }\;:\; T\in \mathcal {T}\} \end{aligned}$$
(2.18)

and their sum defines the continuous function

$$\begin{aligned} {\widetilde{b}}_h \mathrel {{:}{=}}\sum _{T \in \mathcal {T}} b_T^{NC }\in {S }^2(\mathcal {T}). \end{aligned}$$
(2.19)

The definition (2.17) of \(b^{NC }_T\) ensures that \(\mathcal {B}^{NC }(\mathcal {T})\) is a subspace of \({FS }(\mathcal {T})\). For the 2D case, Fortin and Soulie proved the representations [30, Prop. 1]

$$\begin{aligned} {FS }(\mathcal {T}) = {S }^2(\mathcal {T}) + \mathcal {B}^{NC }(\mathcal {T}) \quad&\text {and}\quad {S }^2(\mathcal {T}) \cap \mathcal {B}^{NC }(\mathcal {T}) = {{\,\textrm{span}\,}}\{ {\widetilde{b}}_h \}, \end{aligned}$$
(2.20)
$$\begin{aligned} {FS }_0(\mathcal {T}) = {S }^2_0(\mathcal {T}) + \mathcal {B}^{NC }(\mathcal {T}) \quad&\text {and}\quad {S }^2_0(\mathcal {T}) \cap \mathcal {B}^{NC }(\mathcal {T}) = \{0\}. \end{aligned}$$
(2.21)

The 3D analogue additionally requires a nonconforming face bubble function \(b_F^{NC }\in P_2(\mathcal {T})\). For any \(T \in \mathcal {T}\) with \(F \in \mathcal {F}(T)\), let the index set \(\{j, k, \ell , m\} = \{1, \dots , 4\}\) satisfy that F lies opposite to the vertex of index \(m \in \{1, \dots , 4\}\). The indices \(\{j, k, \ell , m\}\) of the vertices also specify the associated barycentric coordinates \(\lambda _j, \lambda _k, \lambda _\ell , \lambda _m\). The function \(b_F^{NC }\in P_2(\mathcal {T})\) is defined by

$$\begin{aligned} b_F^{NC }\vert _T \mathrel {{:}{=}}2(1-\lambda _m)^2 - 3(\lambda _j^2+\lambda _k^2+\lambda _\ell ^2) \end{aligned}$$
(2.22)

on all such \(T \in \mathcal {T}\) and \(b_F^{NC }\vert _K=0\) on any \(K \in \mathcal {T}\) with \(F\not \subseteq K\). The face bubble functions span the spaces

$$\begin{aligned} \mathcal {B}^{NC }_\mathcal {F}(\mathcal {T}) \mathrel {{:}{=}}{{\,\textrm{span}\,}}\{ b_F^{NC }:\; F \in \mathcal {F}\} \quad \text {and}\quad \mathcal {B}^{NC }_{\mathcal {F},0}(\mathcal {T}) \mathrel {{:}{=}}{{\,\textrm{span}\,}}\{ b_F^{NC }:\; F \in \mathcal {F}(\Omega ) \}. \end{aligned}$$

This leads to the following decomposition of the Fortin–Soulie space in 3D [29]

$$\begin{aligned} {FS }_0(\mathcal {T}) = {S }^2_0(\mathcal {T}) + \mathcal {B}^{NC }(\mathcal {T}) + \mathcal {B}^{NC }_{\mathcal {F},0}(\mathcal {T}). \end{aligned}$$
(2.23)

Note that the sums are not direct sums.

The space of Morley finite element functions for \(d=2\) is defined by

$$\begin{aligned} {M }(\mathcal {T}) \mathrel {{:}{=}}\left\{ v_{M }\in P_2(\mathcal {T}) :\; \begin{aligned}&\forall z \in \mathcal {V},\, v_{M }\text { is continuous in } z \text { and }\\&\forall E \in \mathcal {E}(\Omega ),\, \partial v_{M }/\partial \nu _E \text { is continuous in } {{\,\textrm{mid}\,}}(E) \end{aligned} \right\} . \end{aligned}$$

Abbreviate the subspace with partial homogeneous boundary conditions on \(\Gamma _{N }\subseteq \partial \Omega \) by

$$\begin{aligned} {M }_{N }(\mathcal {T}) \mathrel {{:}{=}}\left\{ v_{M }\in {M }(\mathcal {T}) :\; \begin{aligned}&\forall z \in \mathcal {V}({{\overline{\Gamma }}}_{N }),\, v_{M }(z) = 0 \text { and }\\&\forall E \in \mathcal {E}(\Gamma _{N }),\, \partial v_{M }/\partial \nu _E({{\,\textrm{mid}\,}}(E)) = 0 \end{aligned} \right\} . \end{aligned}$$

The generalization to \(d=3\) from [42] reads

$$\begin{aligned} {M }(\mathcal {T})&\mathrel {{:}{=}}\left\{ v_{M }\in P_2(\mathcal {T}) \;:\; \begin{aligned}&\forall F\in \mathcal {F}(\Omega ),\, [(\partial v_{M }/\partial \nu _E) ({{\,\textrm{mid}\,}}(F))]_F = 0 \text { and } \\&\forall E\in \mathcal {E}(\Omega ),\, \textstyle \int _E v_{M }\;d s\text { is continuous} \end{aligned} \right\} , \\ {M }_0(\mathcal {T})&\mathrel {{:}{=}}\left\{ v_{M }\in {M }(\mathcal {T}) \;:\; \begin{aligned}&\forall F\in \mathcal {F}(\partial \Omega ),\, (\partial v_{M }/\partial \nu _E) ({{\,\textrm{mid}\,}}(F)) = 0 \text { and }\\ \textstyle&\forall E \in \mathcal {E}(\partial \Omega ),\, \textstyle \int _E v_{M }\;d s= 0 \end{aligned} \right\} . \end{aligned}$$

For \(d=2\), the Morley finite element space was generalized to piecewise cubic functions [54] as

$$\begin{aligned} {M }^3(\mathcal {T}) \mathrel {{:}{=}}\left\{ v_{M }\in P_3(\mathcal {T}) \;:\; \begin{aligned}&\forall z \in \mathcal {V},\, v_{M }\text { is continuous in } z, \\&\forall E \in \mathcal {E}(\Omega ),\, \textstyle \int _E[ v_{M }]_E \;d s= 0, \text { and } \\&\forall E \in \mathcal {E}(\Omega )\, \forall p_E \in P_1(E),\, \textstyle \int _E [\nabla _{NC }v_{M }\cdot \nu ]_E \, p_E \;d s= 0 \end{aligned} \right\} . \end{aligned}$$

The corresponding cubic Morley finite element space with homogeneous boundary conditions on \(\partial \Omega \) reads [54]

$$\begin{aligned} {M }^3_0(\mathcal {T}) \mathrel {{:}{=}}\left\{ v_{M }\in {M }^3(\mathcal {T}) \;:\; \begin{aligned}&\forall z \in \mathcal {V}(\partial \Omega ),\, v_{M }(z)=0, \\&\forall E \in \mathcal {E}(\partial \Omega ),\, \textstyle \int _E v_{M }\;d s= 0 \text { and }\\&\forall E \in \mathcal {E}(\partial \Omega )\, \forall p_E \in P_1(E),\, \textstyle \int _E \nabla _{NC }v_{M }\cdot \nu \, p_E \;d s= 0 \end{aligned} \right\} . \end{aligned}$$

2.6 Discrete Exact Sequences

The relations between the conforming spaces from Sect. 2.4 are formalized in the framework of finite element exterior calculus [4] via exact sequences of discrete spaces. A sequence of spaces

$$\begin{aligned} \dots {\mathop {\longrightarrow }\limits ^{{\text {d}}_{j-2}}} X_{j-1} {\mathop {\longrightarrow }\limits ^{{\text {d}}_{j-1}}} X_j {\mathop {\longrightarrow }\limits ^{{\text {d}}_j}} X_{j+1} {\mathop {\longrightarrow }\limits ^{{\text {d}}_{j+1}}} \dots \end{aligned}$$

is called exact, if the kernel of the differential operator \({\text {d}}_j\) equals the range of the previous differential operator \({\text {d}}_{j-1}\). Under suitable assumptions on the domain and the boundary \(\Gamma _{N }\), the following sequences of finite element spaces are exact

$$\begin{aligned} P_0(\Omega )&{\mathop {\longrightarrow }\limits ^{{{\,\textrm{id}\,}}}}{S }^{k+1}(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{\nabla }}N ^k(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{rot}\,}}}}{RT }^k(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{div}\,}}}}P_k(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{0}}\{0\}, \end{aligned}$$
(2.24)
$$\begin{aligned} \{0\}&{\mathop {\longrightarrow }\limits ^{{{\,\textrm{id}\,}}}}{S }^{k+1}_0(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{\nabla }}N ^k_0(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{rot}\,}}}}{RT }^k_0(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{div}\,}}}}P_k(\mathcal {T}) \cap L^2_0(\Omega ) {\mathop {\longrightarrow }\limits ^{0}}\{0\}, \end{aligned}$$
(2.25)
$$\begin{aligned} \{0\}&{\mathop {\longrightarrow }\limits ^{{{\,\textrm{id}\,}}}}{S }^{k+1}_{N }(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{\nabla }}N ^k_{N }(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{rot}\,}}}}{RT }^k_{N }(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{{{\,\textrm{div}\,}}}}P_k(\mathcal {T}) {\mathop {\longrightarrow }\limits ^{0}}\{0\}. \end{aligned}$$
(2.26)

Although these results are well-known for the cases \(\Gamma _{D }=\partial \Omega \) and \(\Gamma _{D }=\emptyset \), the results for mixed boundary conditions seem to be known to the experts in the field only. The remaining part of this subsection presents rigorous proofs of the relations used in this paper. This fosters the ease of reading and highlights the role of the particular assumptions on the domain. A key ingredient consists of commuting smoothed projections from [40, Thm. 1.1] that preserve homogeneous boundary conditions on a part of the boundary.

Lemma 2.3

(quasi-interpolation operators [40, Thm. 1.1]). Let \(\Omega \subseteq \mathbb {R}^d\) denote a bounded polyhedral Lipschitz domain with polyhedral boundary patch \(\Gamma _{N }\) for any \(d \ge 2\). There exist operators \(J_{RT }: H_{N }({{\,\textrm{div}\,}}, \Omega ) \rightarrow {RT }^0_{N }(\mathcal {T})\),   and \(J_0: L^2(\Omega ) \rightarrow P_0(\mathcal {T})\) such that, for \(\tau \in H_{N }({{\,\textrm{div}\,}}, \Omega )\), \({{\,\textrm{div}\,}}J_{RT }\tau = J_0 {{\,\textrm{div}\,}}\tau \). For \(d = 3\), the exists an operator \(J_{Nd }: H_{N }({{\,\textrm{rot}\,}}, \Omega ) \rightarrow N ^0_{N }(\mathcal {T})\) for the Nédélec functions in 3D satisfying, for \(\beta \in H_{N }({{\,\textrm{rot}\,}}, \Omega )\), \({{\,\textrm{rot}\,}}J_{Nd }\beta = J_{RT }{{\,\textrm{rot}\,}}\beta \).

All operators are pointwise invariant in that \(J_{Nd }\beta _{Nd }= \beta _{Nd }\) for all \(\beta _{Nd }\in N ^0_{N }(\mathcal {T})\), \(J_{RT }\tau _{RT }= \tau _{RT }\) for all \(\tau _{RT }\in {RT }^0_{N }(\mathcal {T})\), and \(J_0 q_h = q_h\) for all \(q_h \in P_0(\mathcal {T})\).

Lemma 2.4

(surjectivity of divergence operator). Let \(\Omega \subseteq \mathbb {R}^d\) denote a bounded polyhedral Lipschitz domain with polyhedral boundary patch \(\Gamma _{N }\) for any \(d \in \mathbb {N}\) and \(\emptyset \ne \mathcal {F}(\Gamma _{N }) \subsetneq \mathcal {F}(\partial \Omega )\). It holds that

$$\begin{aligned} {{\,\textrm{div}\,}}{RT }^0_{N }(\mathcal {T})&= P_0(\mathcal {T}),&{{\,\textrm{div}\,}}{RT }^0_0(\mathcal {T})&= P_0(\mathcal {T}) \cap L^2_0(\Omega ), \end{aligned}$$
(2.27)
$$\begin{aligned} {{\,\textrm{div}\,}}_{NC }{CR }^1_{D }(\mathcal {T}; \mathbb {R}^d)&= P_0(\mathcal {T}),&{{\,\textrm{div}\,}}_{NC }{CR }^1_0(\mathcal {T}; \mathbb {R}^d)&= P_0(\mathcal {T}) \cap L^2_0(\Omega ). \end{aligned}$$
(2.28)

Proof

The inclusions \({{\,\textrm{div}\,}}{RT }^0(\mathcal {T}) \subseteq P_0(\mathcal {T})\) and \( {{\,\textrm{div}\,}}_{{NC }} {CR }^1(\mathcal {T}) \subseteq P_0(\mathcal {T}) \) are obvious. For \(\tau _{RT }\in {RT }^0_0(\mathcal {T})\) and \(v_{CR }\in {CR }^1_0(\mathcal {T}; \mathbb {R}^d)\), the (piecewise) integration by parts

$$\begin{aligned} \int _\Omega {{\,\textrm{div}\,}}\tau _{RT }\;d x&= \int _{\partial \Omega } \tau _{RT }\cdot \nu \;d s= 0 \\ \int _\Omega {{\,\textrm{div}\,}}_{NC }v_{CR }\;d x&= \sum _{F \in \mathcal {F}(\Omega )} \int _F [v_{CR }]_F \cdot \nu _F \;d s+ \sum _{F \in \mathcal {F}(\partial \Omega )} \int _F v_{CR }\cdot \nu \;d s= 0 \end{aligned}$$

shows that \( {{\,\textrm{div}\,}}{RT }^0_0(\mathcal {T}) \subseteq P_0(\mathcal {T}) \cap L^2_0(\Omega ) \) and \( {{\,\textrm{div}\,}}_{{NC }} {CR }^1_0(\mathcal {T}) \subseteq P_0(\mathcal {T}) \cap L^2_0(\Omega ) \).

For the opposite inclusion, recall the surjectivity of the divergence \({{\,\textrm{div}\,}}: H^1(\Omega ) \rightarrow L^2(\Omega )\) on the continuous level [27, Lem. 53.9]

$$\begin{aligned} {{\,\textrm{div}\,}}H^1_0(\Omega ; \mathbb {R}^d) = L^2_0(\Omega ) \quad \text {and} \quad {{\,\textrm{div}\,}}H^1_{D }(\Omega ) = L^2(\Omega ) = {{\,\textrm{div}\,}}H^1_{N }(\Omega ). \end{aligned}$$
(2.29)

The transfer of the equalities (2.29) to the discrete Crouzeix–Raviart space employs the nonconforming interpolation operator \({\text {I}}_{NC }: H^1_{D }(\Omega ) \rightarrow {CR }^1_{D }(\mathcal {T})\) defined by piecewise affine interpolation of the values

$$\begin{aligned} ({\text {I}}_{NC }v)({{\,\textrm{mid}\,}}(F)) \mathrel {{:}{=}}\frac{1}{\vert F \vert } \int _F v \;d s\quad \text {for } v \in H^1(\Omega ). \end{aligned}$$

For vector fields \(v \in H^1_{D }(\Omega ; \mathbb {R}^d)\), it applies componentwise. The operator \({\text {I}}_{NC }\) commutes with the divergence and the \(L^2\)-orthogonal projection \(\Pi _0: L^2(\Omega ) \rightarrow P_0(\mathcal {T})\) in the sense that \({{\,\textrm{div}\,}}_{NC }{\text {I}}_{NC }v = \Pi _0 {{\,\textrm{div}\,}}v\) for all \(v \in H^1(\Omega ; \mathbb {R}^d)\) (the proof in [25, Example 4] for \(d \in \{2, 3\}\) applies verbatim to the case \(d>3\)). Given \(q_h \in P_0(\mathcal {T})\), let \(v \in H^1_{D }(\Omega )\) with \({{\,\textrm{div}\,}}v = q_h\) according to (2.29), the interpolation \(v_{NC }\mathrel {{:}{=}}{\text {I}}_{NC }v\) satisfies \( {{\,\textrm{div}\,}}v_{NC }= \Pi _0 {{\,\textrm{div}\,}}v = q_h \). This verifies the inclusion \( P_0(\mathcal {T}) \subseteq {{\,\textrm{div}\,}}{CR }^1_{D }(\mathcal {T}) \) and \( P_0(\mathcal {T}) / \mathbb {R}\subseteq {{\,\textrm{div}\,}}{CR }^1_0(\mathcal {T}) \) follows analogously.

The transfer of the equalities (2.29) to the discrete Raviart–Thomas space employs the quasi-interpolation operators \(J_{RT }\) and \(J_0\) from Lemma 2.3. Given \(q_h \in P_0(\mathcal {T})\), let \(\tau \in H^1_{N }(\Omega )\) satisfy \({{\,\textrm{div}\,}}\tau = q_h\) according to (2.29). The commutation and pointwise invariance property prove, for \(\tau _{RT }\mathrel {{:}{=}}J_{RT }\tau \), that \( {{\,\textrm{div}\,}}\tau _{RT }= J_0 {{\,\textrm{div}\,}}\tau = q_h. \) This verifies the inclusions \({{\,\textrm{div}\,}}{RT }^0(\mathcal {T}) \subseteq P_0(\mathcal {T})\) and \( P_0(\mathcal {T}) / \mathbb {R}\subseteq {{\,\textrm{div}\,}}{RT }^0_0(\mathcal {T}) \) follows analogously. \(\square \)

Lemma 2.5

(discrete vector potential) Let \(\Omega \subseteq \mathbb {R}^3\) denote a bounded polyhedral Lipschitz domain with connected boundary \(\partial \Omega \). Assume that the connectivity components \(\Gamma _{{N }, 1}, \dots , \Gamma _{{N },K}\) of the polyhedral boundary patch \(\Gamma _{N }\) are simply connected and, thus, \(\Gamma _{D }\) is connected. Then it holds that

$$\begin{aligned} {RT }^0_{N }({{\,\textrm{div}\,}}^0, \mathcal {T}) = {{\,\textrm{rot}\,}}N ^0_{N }(\mathcal {T}). \end{aligned}$$

Proof

Given \(\beta _{Nd }\in N ^0_{N }(\mathcal {T})\), Lemma 2.1 shows that \(\nu _F \cdot ({{\,\textrm{rot}\,}}\beta _{Nd })\) consists of tangential derivatives of tangential components for any \(F\in \mathcal {F}\). This proves that the jumps of the normal components of \({{\,\textrm{rot}\,}}\beta _{Nd }\) vanish and also \( ({{\,\textrm{rot}\,}}\beta _{Nd }\cdot \nu )\vert _{\Gamma _{N }} = 0 \) for all \(\beta _{Nd }\in N ^0_{N }(\mathcal {T})\). This and \({{\,\textrm{div}\,}}{{\,\textrm{rot}\,}}\beta _{Nd }= 0\) verify \( {{\,\textrm{rot}\,}}N ^0_{N }(\mathcal {T}) \subseteq {RT }^0_{N }({{\,\textrm{div}\,}}^0, \mathcal {T}) \). For the opposite inclusion, the simple connectedness of the Neumann boundary components \(\Gamma _{{N }, 1}, \dots , \Gamma _{{N }, K}\) ensures [5, Thm. 3.8 and Rem. 3.9]

$$\begin{aligned} H_{N }({{\,\textrm{div}\,}}^0, \Omega ) = {{\,\textrm{rot}\,}}H_{N }({{\,\textrm{rot}\,}}, \Omega ). \end{aligned}$$
(2.30)

Given \(\tau _{RT }\in {RT }^0_{N }({{\,\textrm{div}\,}}^0, \mathcal {T}) \subseteq H_{N }({{\,\textrm{div}\,}}^0, \Omega )\), let \(\beta \in H_{N }({{\,\textrm{rot}\,}},\Omega )\) satisfy \({{\,\textrm{rot}\,}}\beta = \tau _{RT }\). The commutation and pointwise invariance property of the quasi-interpolation operators from Lemma 2.3 show, for \(\beta _{Nd }\mathrel {{:}{=}}J_{Nd }\beta \), that \( {{\,\textrm{rot}\,}}\beta _{Nd }= J_{RT }{{\,\textrm{rot}\,}}\beta = \tau _{RT }. \) This verifies the inclusions \( {RT }^0({{\,\textrm{div}\,}}^0, \mathcal {T}) \subseteq {{\,\textrm{rot}\,}}N ^0_{N }(\mathcal {T}) \) and concludes the proof. \(\square \)

Remark 2.6

(generalization of the domain) The assumption on the simple connectedness of the Neumann boundary patches may be relaxed. The representation (2.30) has been established in [1, p. 848] under the assumption that \(\Gamma _{D }\) is connected and that the cuts \(\Sigma _1, \dots , \Sigma _M\) from Sect. 2.1 satisfy \({\overline{\Sigma }}_{m} \cap \Gamma _{N }=\emptyset \) for \(m = 1, \dots , M\) in the case of multiple connectedness.

Remark 2.7

(discrete vector potential in 2D) An analogue of Lemma 2.5 in two spatial dimensions is proved explicitly in Theorem 3.3 below.

3 Decompositions for Piecewise Constant Vector Fields in 2D

This section is devoted to a generalization of a discrete Helmholtz decomposition by Arnold and Falk from [2] to mixed boundary conditions. The presentation departs with the proof of Theorem 3.1, which states a decomposition of \(P_0(\mathcal {T};\mathbb {R}^2)\) into a gradient part and a divergence-free part. Theorem 3.3 below will then characterize the divergence-free part as Curls of appropriate discrete functions. Theorem 3.1 will be applied for \(d=3\) as well and even holds in arbitrary space dimensions.

Theorem 3.1

(basic discrete decomposition for \(P_0(\mathcal {T};\mathbb {R}^d)\)) Let \(\Omega \subseteq \mathbb {R}^d\) be a bounded polyhedral Lipschitz domain with polyhedral boundary patch \(\Gamma _{N }\). The following \(L^2\)-orthogonal decompositions hold

(3.1)

Remark 3.2

Independently of our research, the recent publication [43, Lem. 4.9] presented an alternative proof of the decomposition (3.1). However, Theorem 3.1 is slightly more general as the proof of [43, Lem. 4.9] does not apply to the case \(\Gamma _{N }= \partial \Omega \).

Proof of Theorem 3.1

The proof is divided into four steps.

Step 1 (orthogonality). For any \(\alpha _{CR }\in {CR }^1_{D }(\mathcal {T})\) and \(\beta _{RT }\in {RT }^0_{N }({{\,\textrm{div}\,}}^0, \mathcal {T})\), the continuity of \(\beta _{RT }\cdot \nu _F\) implies \( [\alpha _{CR }\, \beta _{RT }\cdot \nu _F]_F = [\alpha _{CR }]_F \, \beta _{RT }\cdot \nu _F \) for all \(F \in \mathcal {F}\). Since \(\alpha _{CR }\) vanishes in the midpoints of interior and Dirichlet faces and \(\beta _{RT } \cdot \nu _F\) vanishes on the Neumann faces \(F \in \mathcal {F}(\Gamma _{N })\), it follows

$$\begin{aligned} \int _F [\alpha _{CR }\, \beta _{RT }\cdot \nu _F]_F \;d s= 0 \quad \text {for all } F \in \mathcal {F}. \end{aligned}$$
(3.2)

This and a piecewise integration by parts prove the orthogonality

$$\begin{aligned} \int _\Omega \nabla _{NC }\alpha _{CR }\cdot \beta _h \;d x&= \sum _{F \in \mathcal {F}} \int _F [ \alpha _{CR }\, \beta _{RT }\cdot \nu _F ]_F \;d s= 0. \end{aligned}$$

Step 2 (dimensions in the case \(\Gamma _{N }=\partial \Omega \)). If \(\Gamma _{N }= \partial \Omega \), the operator \({{\,\textrm{div}\,}}: {RT }^0_0(\mathcal {T}) \rightarrow P_0(\mathcal {T})\) is surjective onto \(P_0(\mathcal {T})/ \mathbb {R}\) according to Lemma 2.4 and the operator \(\nabla _{NC }: {CR }^1(\mathcal {T}) \rightarrow P_0(\mathcal {T}; \mathbb {R}^n)\) has a one-dimensional kernel. This implies

$$\begin{aligned} \dim ({RT }^0_0({{\,\textrm{div}\,}}^0, \mathcal {T}))&= \dim ({RT }^0_0(\mathcal {T})) - \dim (P_0(\mathcal {T}) / \mathbb {R}) = \#\mathcal {F}(\Omega ) - (\#\mathcal {T}- 1), \end{aligned}$$
(3.3)
$$\begin{aligned} \dim (\nabla _{NC }{CR }^1(\mathcal {T}))&= \dim ({CR }^1(\mathcal {T})) - 1 = \#\mathcal {F}- 1. \end{aligned}$$
(3.4)

Hence, (2.2) proves

$$\begin{aligned} \begin{aligned} \dim (\nabla _{NC }{CR }^1(\mathcal {T})) + \dim ({RT }^0_0({{\,\textrm{div}\,}}^0, \mathcal {T}))&= \#\mathcal {F}+ \#\mathcal {F}(\Omega ) - \#\mathcal {T}\\&=d\,\#\mathcal {T}=\dim (P_0(\mathcal {T}; \mathbb {R}^d)). \end{aligned} \end{aligned}$$
(3.5)

Step 3 (dimensions in the case \(\Gamma _{N }\subsetneq \partial \Omega \)). If \(\mathcal {F}(\Gamma _{N }) \subsetneq \mathcal {F}(\partial \Omega )\), then the operator \({{\,\textrm{div}\,}}: {RT }^0_{N }(\mathcal {T}) \rightarrow P_0(\mathcal {T})\) is surjective onto \(P_0(\mathcal {T})\) according to Lemma 2.4 and the kernel of the operator \(\nabla _{NC }: {CR }^1_{D }(\mathcal {T}) \rightarrow P_0(\mathcal {T}; \mathbb {R}^n)\) is trivial. Therefore,

$$\begin{aligned} \dim ({RT }_{N }({{\,\textrm{div}\,}}^0, \mathcal {T}))&= \dim ({RT }^0_{N }(\mathcal {T})) - \dim (P_0(\mathcal {T})) \nonumber \\&= \#\mathcal {F}(\Omega ) + \#\mathcal {F}(\Gamma _{D }) - \#\mathcal {T}, \end{aligned}$$
(3.6)
$$\begin{aligned} \dim (\nabla _{NC }{CR }^1_{D }(\mathcal {T}))&= \dim ({CR }^1_{D }(\mathcal {T})) = \#\mathcal {F}(\Omega ) + \#\mathcal {F}(\Gamma _{N }). \end{aligned}$$
(3.7)

Since \(\# \mathcal {F}(\Gamma _{D }) + \# \mathcal {F}(\Gamma _{N }) = \# \mathcal {F}(\partial \Omega )\), the equality (3.5) follows as in Step 2.

Step 4 (conclusion of the proof). It is obvious that

The equality therefore follows from the Steps 2–3. \(\square \)

In 2D, the characterization of divergence-free Raviart–Thomas functions leads to Curls of Courant functions and proves a discrete Helmholtz decomposition for mixed boundary conditions.

Theorem 3.3

Assume that \(\Omega \subseteq \mathbb {R}^2\) is a bounded and simply connected polygonal Lipschitz domain. Let \(\Gamma _{{N }, 1}, \ldots , \Gamma _{{N },K}\) denote the connectivity components of the Neumann boundary from Sect. 2.1. The Courant finite element space with partial constant boundary conditions

$$\begin{aligned} {\widehat{{S }}}^1_{N }(\mathcal {T}) \mathrel {{:}{=}}\left\{ \beta _h \in {S }^1(\mathcal {T}) :\; \begin{aligned}&\forall k \in \{1,\dots ,K\} \, \exists c_k \in \mathbb {R}\\&\forall F \in \mathcal {F}(\Gamma _{{N }, k}), \, \beta _h\vert _F \equiv c_k \end{aligned} \right\} . \end{aligned}$$
(3.8)

satisfies

$$\begin{aligned} {RT }^0_{N }({{\,\textrm{div}\,}}^0, \mathcal {T}) = {{\,\textrm{Curl}\,}}{\widehat{{S }}}^1_{N }(\mathcal {T}). \end{aligned}$$
(3.9)

In particular, the following \(L^2\)-orthogonal decomposition holds

(3.10)

Remark 3.4

Note that global constants lie in the kernel of \({{\,\textrm{Curl}\,}}\) and therefore \({{\,\textrm{Curl}\,}}{\widehat{{S }}}^1_{N }(\mathcal {T}) = {{\,\textrm{Curl}\,}}({S }^1(\mathcal {T})/\mathbb {R})\) if \(\Gamma _{N }=\emptyset \). In this case, the decomposition (3.10) coincides with the first discrete Helmholtz decomposition in the literature that has been invented by Arnold and Falk in [2, Thm. 4.1].

Remark 3.5

In 2D, the gradient and the Curl are the same up to a change of coordinates and, therefore, the discrete Helmholtz decomposition (3.10) also proves the discrete Helmholtz decomposition

Analogously, it follows that

with

$$\begin{aligned} \widehat{{CR }}^1_{N }(\mathcal {T}) \mathrel {{:}{=}}\left\{ v_{CR }\in {CR }^1(\mathcal {T}): \begin{aligned}&\forall k \in \{1,\dots ,K\} \, \exists c_k \in \mathbb {R}\\&\forall F \in \mathcal {F}(\Gamma _{{N }, k}), \, \int _F v_{CR }\;d s\equiv c_k \end{aligned} \right\} . \end{aligned}$$

Proof of Theorem 3.3

The proof of (3.9) in the case \(\Gamma _{N }=\emptyset \) follows from a 2D analogue of the discrete exact sequence (2.24) and would also follow from discrete exact sequences for other boundary conditions. Since it seems that the case of mixed boundary conditions is not considered explicitly in the literature, the proof is carried out here for the ease of comprehensive reading. It is divided into five steps.

Step 1 (inclusion\(\supseteq \)”). The definition of the \({{\,\textrm{Curl}\,}}\) in 2D as the rotated gradient and the continuity of \(\beta _h \in {\widehat{{S }}}^1_{N }(\mathcal {T})\) verify \( [{{\,\textrm{Curl}\,}}\beta _h \cdot \nu _F]_F = [\nabla \beta _h \cdot \tau _F]_F = 0 \) for all \(F \in \mathcal {F}(\Omega )\). Hence, \({{\,\textrm{Curl}\,}}\beta _h \in H({{\,\textrm{div}\,}}, \Omega )\cap P_0(\mathcal {T};\mathbb {R}^2) \subseteq {RT }^0(\mathcal {T})\). Since \((\beta _h)|_{\Gamma _{{N }, k}} \equiv c_k \in \mathbb {R}\) for all \(k \in \{1,\dots ,K\}\), the arc-length derivative vanishes

$$\begin{aligned} ({{\,\textrm{Curl}\,}}\beta _h \cdot \nu )|_{\Gamma _{N }} = (\nabla \beta _h \cdot \tau )|_{\Gamma _{N }} = 0. \end{aligned}$$

This and \({{\,\textrm{div}\,}}{{\,\textrm{Curl}\,}}\beta _h = 0\) imply \({{\,\textrm{Curl}\,}}\beta _h \in {RT }^0_{N }({{\,\textrm{div}\,}}^0, \mathcal {T})\).

Step 2 (dimension of \({\widehat{{S }}}^1_{N }(\mathcal {T})\)). The boundary conditions of \({\widehat{{S }}}^1_{N }(\mathcal {T})\) imply that \( \dim ({\widehat{{S }}}^1_{N }(\mathcal {T})) = \#\mathcal {V}- \#\mathcal {V}({{\overline{\Gamma }}}_{N }) + K \). Since the operator \({{\,\textrm{Curl}\,}}: {\widehat{{S }}}^1_{N }(\mathcal {T}) \rightarrow P_0(\mathcal {T}; \mathbb {R}^2)\) has the one-dimensional kernel \(P_0(\Omega )\) in 2D,

$$\begin{aligned} \dim ({{\,\textrm{Curl}\,}}{\widehat{{S }}}^1_{N }(\mathcal {T})) = \#\mathcal {V}- \#\mathcal {V}({{\overline{\Gamma }}}_{N }) + K - 1. \end{aligned}$$
(3.11)

Step 3 (dimension argument in the case \(\Gamma _{N }= \partial \Omega \)). If \(\Gamma _{N }= \partial \Omega \), then \(K = 1\) and \(\mathcal {V}({{\overline{\Gamma }}}_{N }) = \mathcal {V}(\partial \Omega )\). Hence, the combination of the equalities (3.11) and (3.3) and the Euler formulas (2.3)–(2.4) from Lemma 2.2 result in

$$\begin{aligned} \dim ({RT }^0_{N }({{\,\textrm{div}\,}}^0,\mathcal {T}) )&= \#\mathcal {F}- \#\mathcal {V}(\partial \Omega ) - \#\mathcal {T}+ 1 = \#\mathcal {V}(\Omega ) = \dim ( {{\,\textrm{Curl}\,}}{\widehat{{S }}}^1_{N }(\mathcal {T}) ). \end{aligned}$$

Step 4 (dimension argument in the case \(\mathcal {F}(\Gamma _{N }) \subsetneq \mathcal {F}(\partial \Omega )\)). Since \(\Omega \) is simply connected, every \(\Gamma _{{N }, k}\), \(k \in \{1, \dots , K\}\), belongs to the single connectivity component of \(\partial \Omega \). This shows that \( \#\mathcal {V}({{\overline{\Gamma }}}_{{N },k}) = \#\mathcal {F}(\Gamma _{{N },k}) + 1 \) for all \(k \in \{1, \dots , K\}\) and the sum over those k results in \(\#\mathcal {F}(\Gamma _{N }) = \#\mathcal {V}({{\overline{\Gamma }}}_{N }) - K\). This, the Euler formula (2.3) from Lemma 2.2, and the equalities (3.6) and (3.11) conclude the dimension argument

$$\begin{aligned} \dim ({RT }^0_{N }({{\,\textrm{div}\,}}^0,\mathcal {T}) )&= \#\mathcal {F}- \#\mathcal {F}(\Gamma _{N }) - \#\mathcal {T}\\&= \#\mathcal {V}- \#\mathcal {V}({{\overline{\Gamma }}}_{N }) - 1 + K = \dim ({{\,\textrm{Curl}\,}}{\widehat{{S }}}^1_{N }(\mathcal {T})). \end{aligned}$$

Step 5 (discrete Helmholtz decomposition).   The decomposition (3.10) follows from the application of Theorem 3.1. \(\square \)

4 Decompositions of Piecewise Constant Vector Fields in 3D

In the two-dimensional case, the operators \(\nabla \) and \({{\,\textrm{Curl}\,}}\) are the same up to a rotation and, therefore, the decompositions in Theorem 3.3 and Remark 3.5 are equivalent. For \(d = 3\) however, the discrete decompositions need to reflect the different nature of the differential operators. The following theorem proves a discrete Helmholtz decomposition with a nonconforming space in the rotational part of the decomposition, while Theorem 4.3 below proves a discrete Helmholtz decomposition with a nonconforming space in the gradient part.

Theorem 4.1

Let \(\Omega \subseteq \mathbb {R}^3\) be a bounded and contractible polygonal Lipschitz domain. The following \(L^2\)-orthogonal decomposition holds

Proof

Given any \(q_h \in P_0(\mathcal {T};\mathbb {R}^3)\), there exists \(\beta _{CR }\in {CR }^1(\mathcal {T}; \mathbb {R}^3)\) minimizing the quadratic functional

$$\begin{aligned} {CR }^1(\mathcal {T}; \mathbb {R}^3) \rightarrow \mathbb {R},\, \gamma _{CR }\mapsto \frac{1}{2} \Vert {{\,\textrm{rot}\,}}_{NC }\gamma _{CR }- q_h \Vert _{L^2(\Omega )}^2. \end{aligned}$$

The minimizer \(\beta _{CR }\) satisfies

$$\begin{aligned} ( {{\,\textrm{rot}\,}}_{NC }\beta _{CR }, {{\,\textrm{rot}\,}}_{NC }\gamma _{CR })_{L^2(\Omega )} = (q_h, {{\,\textrm{rot}\,}}_{{NC }} \gamma _{CR })_{L^2(\Omega )} \text { for all } \gamma _{CR }\in {CR }^1(\mathcal {T}; \mathbb {R}^3)\nonumber \\ \end{aligned}$$
(4.1)

and is unique only up to elements in the kernel of \({{\,\textrm{rot}\,}}_{NC }: {CR }^1(\mathcal {T}; \mathbb {R}^3) \rightarrow P_0(\mathcal {T}; \mathbb {R}^3)\). Set \(p_h:= q_h - {{\,\textrm{rot}\,}}_{{NC }} \beta _{CR }\).

Since the boundary \(\partial \Omega \) is connected, for every \(\gamma \in H({{\,\textrm{rot}\,}}, \Omega )\) there exists a \(\phi \in H^1(\Omega ; \mathbb {R}^3)\) such that \({{\,\textrm{rot}\,}}\gamma = {{\,\textrm{rot}\,}}\phi \) [37, Lem. 1]. Recall that the Crouzeix–Raviart interpolation operator \({\text {I}}_{{NC }}: H^1(\Omega ) \rightarrow {CR }^1(\mathcal {T})\) and the \(L^2\)-orthogonal projection \(\Pi _0: L^2(\Omega ; \mathbb {R}^3) \rightarrow P_0(\mathcal {T}; \mathbb {R}^3)\) satisfy the commuting diagram property \(\Pi _0 \nabla = \nabla _{NC }{\text {I}}_{NC }\). Since this equality holds componentwise, it follows that \(\Pi _0 {{\,\textrm{rot}\,}}= {{\,\textrm{rot}\,}}_{NC }{\text {I}}_{NC }\). The combination with (4.1) shows, for all \(\gamma \in H({{\,\textrm{rot}\,}}, \Omega )\),

$$\begin{aligned} ({{\,\textrm{rot}\,}}\gamma , p_h )_{L^2(\Omega )} = ({{\,\textrm{rot}\,}}\phi , p_h )_{L^2(\Omega )} = ( {{\,\textrm{rot}\,}}_{{NC }} {\text {I}}_{{NC }} \phi , p_h )_{L^2(\Omega )} = 0. \end{aligned}$$
(4.2)

The continuous Helmholtz decomposition [1, Sect. 3.5] guarantees the existence of \(\alpha \in H^1_0(\Omega )\) and \(\beta \in H({{\,\textrm{rot}\,}}, \Omega )\) such that \(p_h = \nabla \alpha + {{\,\textrm{rot}\,}}\beta \). The orthogonalities \((\nabla \alpha , {{\,\textrm{rot}\,}}\beta )_{L^2(\Omega )} = 0\) and (4.2) imply

$$\begin{aligned} \Vert {{\,\textrm{rot}\,}}\beta \Vert _{L^2(\Omega )}^2 = ({{\,\textrm{rot}\,}}\beta , p_h)_{L^2(\Omega )} = 0. \end{aligned}$$

Hence, \({{\,\textrm{rot}\,}}\beta = 0\) and the identity \(p_h = \nabla \alpha \in P_0(\mathcal {T}; \mathbb {R}^3)\) proves \(\alpha \in P_1(\mathcal {T})\). This shows \(\alpha \in {S }^1_0(\mathcal {T})\) and concludes the proof. \(\square \)

Remark 4.2

(change of boundary conditions) The discrete Helmholtz decomposition with boundary conditions on the Crouzeix–Raviart space, i.e.,

(4.3)

can be proved along the same lines as for Theorem 4.1. The argument with [37, Lem. 1] has to be replaced by [41, Prop. A.1], which proves an analogous result with boundary conditions.

The decomposition of piecewise constant vector fields of the following theorem is nonconforming in the gradient part. It covers the case of mixed boundary conditions and is a direct consequence of the basic decomposition from Theorem 3.1 and Lemma 2.5.

Theorem 4.3

Let \(\Omega \subseteq \mathbb {R}^3\) be a bounded and contractible polygonal Lipschitz domain and let \(\Gamma _{{N }, 1}, \dots , \Gamma _{{N },K}\) denote the connectivity components of the polyhedral boundary patch \(\Gamma _{N }\). Assume that each component \(\Gamma _{{N }, 1}, \dots , \Gamma _{{N },K}\) is simply connected. Then the following \(L^2\)-orthogonal decomposition holds

(4.4)

Remark 4.4

(generalization to non-connected boundary) The discrete Helmholtz decomposition of Theorem 4.3 was also proved in [49, Lem. 5.4] in the case \(\Gamma _{N }=\emptyset \) for domains with possibly non-connected boundary \(\partial \Omega = \Gamma _0 \cup \dots \cup \Gamma _L\) for \(L> 0\) as introduced in Sect. 2.1. Using the space

$$\begin{aligned} {CR }^1_{L}(\mathcal {T}) \mathrel {{:}{=}}\left\{ v_{CR }\in {CR }^1(\mathcal {T}) :\; \begin{aligned}&\forall F \in \mathcal {F}(\Gamma _0),\, v_{CR }({{\,\textrm{mid}\,}}(F)) = 0 \text { and } \forall \ell = 1,\dots , L \\&\exists c_{\ell } \in \mathbb {R}\, \forall F \in \mathcal {F}(\Gamma _{\ell }),\, v_{CR }({{\,\textrm{mid}\,}}(F)) = c_{\ell } \end{aligned} \right\} , \end{aligned}$$

the following \(L^2\)-orthogonal decomposition holds

An analogous decomposition holds in the 2D case.

Remark 4.5

(multiply connected domains) Assume that \(\Omega \) is multiply connected (\(M > 0\)) with connected boundary (\(L = 0\)). In the case of full Dirichlet boundary \(\Gamma _{D }= \partial \Omega \), the discrete Helmholtz decomposition (4.4) remains true. This follows from Theorem 3.1 and the equality \({RT }^0({{\,\textrm{div}\,}}^0,\mathcal {T}) = {{\,\textrm{rot}\,}}N ^0(\mathcal {T})\) for all domains with Betti number \(b_2 = L = 0\), see [39, Example 9].

However, in the case of full Neumann boundary \(\Gamma _{N }= \partial \Omega \), additional nonconforming loop fields \(\nabla _{NC }\phi _{{CR },m}\) have to be added in the gradient part for each cut \(\Sigma _m\) for \(m = 1, \dots , M\) as denoted in Sect. 2.1. This results in

(4.5)

The construction of \(\phi _{{CR },1}\) is illustrated on a torus \(\Omega \) with a single cut \(\Sigma _1\): Then let \(\phi _{{CR },1}\) be a Crouzeix–Raviart finite element function on the cut domain that is one at the faces’ midpoints on \(\Sigma \) considered as the boundary at one side, minus one at the faces’ midpoints on \(\Sigma \) considered as the boundary from the other side, and arbitrarily extended by fixed values on all other degrees of freedoms (e.g., by the minimal norm extension). This function, considered as a function on the (non-cut) torus, does not belong to \({CR }^1_0(\mathcal {T})\) because of the discontinuity. Moreover, a piecewise integration by parts and the Stokes theorem on the closed boundary \(\partial \Omega \cap {\overline{\Sigma }}_1\) of the cut prove, for \(\beta _N \in N ^0_0(\mathcal {T})\),

$$\begin{aligned} (\nabla _{NC }\phi _{{CR },1},{{\,\textrm{rot}\,}}\beta _N )_{L^2(\Omega )}&= \sum _{F\in \mathcal {F}(\Sigma _{1})} \int _F [\phi _{{CR },1}]_F \, ({{\,\textrm{rot}\,}}\beta _N \cdot \nu _F) \;d s\\&= 2 \int _{\Sigma _1} ({{\,\textrm{rot}\,}}\beta _N \cdot \nu _F) \;d s= 0. \end{aligned}$$

This construction can be carried out for each of the cuts \(\Sigma _1, \dots , \Sigma _M\) and a discrete Poincaré inequality proves \( \dim (\nabla _{NC }({CR }^1(\mathcal {T}) + {{\,\textrm{span}\,}}\{ \phi _{{CR },m}: m = 1,\dots , M\})) = \#\mathcal {F}+ M \). In the case of homogeneous boundary conditions, the roles of the Betti numbers change [39, Example 9] and \( \dim ( N ^0_0({{\,\textrm{rot}\,}}^0, \mathcal {T}) / \nabla S^1_0(\mathcal {T}) ) = L = 0 \). This yields \( N ^0_0({{\,\textrm{rot}\,}}^0, \mathcal {T}) = \nabla S^1_0(\mathcal {T}) \) and \( \dim ({{\,\textrm{rot}\,}}N ^0_0(\mathcal {T})) = \#\mathcal {E}(\Omega )-\#\mathcal {V}(\Omega ) \). This and the generalized Euler formulas (2.9)–(2.10) verify (4.5).

5 Decompositions of Piecewise Affine Vector Fields

This section is devoted to novel discrete Helmholtz decompositions of piecewise affine vector fields. They employ the Fortin–Soulie spaces and the nonconforming element and face bubble functions from Sect. 2.5. While Theorem 5.1 below proves a discrete Helmholtz decomposition for \(d=2\), the subsequent Theorems 5.5 and 5.7 cover the case of \(d=3\).

Theorem 5.1

Let \(\Omega \subseteq \mathbb {R}^2\) be a bounded and simply connected polygonal Lipschitz domain. The following \(L^2\)-orthogonal decomposition holds

Proof

Step 1 (orthogonality). According to the characterizations (2.20)–(2.21), let \(\alpha _{FS }= \alpha _h + \alpha _{b } \in {FS }_0(\mathcal {T})\) and \(\beta _{FS }= \beta _h + \beta _{b } \in {FS }(\mathcal {T})\) with \(\alpha _h \in {S }^2_0(\mathcal {T})\), \(\beta _h \in {S }^2(\mathcal {T})\), and \(\alpha _{b }, \beta _{b } \in \mathcal {B}^{NC }(\mathcal {T})\). For any edge \(E \in \mathcal {E}\), the product rule (2.14) of the jump and the fact that \(b^{NC }_T\) vanishes in the two Gauß points of E verify

$$\begin{aligned}&\int _E [ \beta _{b } \nabla _{NC }\alpha _{FS }\cdot \tau _E ]_E \;d s\\ {}&\qquad = \int _E [\beta _{b }]_E \langle \nabla _{NC }\alpha _{FS }\cdot \tau _E \rangle _E \;d s+ \int _E \langle \beta _{b } \rangle _E [\nabla _{NC }\alpha _{FS }\cdot \tau _E]_E \;d s = 0. \end{aligned}$$

Analogously

$$\begin{aligned} \int _E [\alpha _{b } {{\,\textrm{Curl}\,}}\beta _h \cdot \nu _E]_E \;d s= \int _E [\alpha _{b } \nabla \beta _h \cdot \tau _E]_E \;d s= 0. \end{aligned}$$

The \(L^2\)-orthogonality \(\nabla {S }^2_0(\mathcal {T}) \mathrel {\bot } {{\,\textrm{Curl}\,}}{S }^2(\mathcal {T})\) ensures

$$\begin{aligned} \int _\Omega \nabla \alpha _h \cdot {{\,\textrm{Curl}\,}}\beta _h \;d x= 0. \end{aligned}$$

A piecewise integration by parts and the three previously displayed formulas conclude the proof of the \(L^2\)-orthogonality

Step 2 (dimension argument). Since \(\ker ({{\,\text {Curl}\,}}_{\textrm{NC} }\vert _{\textrm{FS }(\mathcal {T}) }) = P_0(\Omega )\), the representations (2.20)–(2.21) of the Fortin–Soulie space verify the following formulas

$$\begin{aligned} \dim (\nabla _{NC }{FS }_0(\mathcal {T}))&= \# \mathcal {V}(\Omega ) + \# \mathcal {E}(\Omega ) + \# \mathcal {T}, \\ \dim ({{\,\textrm{Curl}\,}}_{NC }({FS }(\mathcal {T})))&= \dim ({{\,\textrm{Curl}\,}}_{NC }({FS }(\mathcal {T}) / \mathbb {R})) = \# \mathcal {V}+ \# \mathcal {E}+ \# \mathcal {T}- 2. \end{aligned}$$

Counting the three degrees of freedom per component on each triangle leads to \(\dim (P_1(\mathcal {T}; \mathbb {R}^2)) = 6 \# \mathcal {T}\). These dimensions and the Euler formulas (2.2)–(2.4) from Lemma 2.2 conclude the proof

$$\begin{aligned}&\hspace{-2em} \dim (\nabla _{NC }{FS }_0(\mathcal {T})) + \dim ({{\,\textrm{Curl}\,}}_{NC }({FS }(\mathcal {T}) / \mathbb {R})) \\&= 2 \# \mathcal {T}+ \# \mathcal {V}+ \# \mathcal {V}(\Omega ) + \# \mathcal {E}+ \# \mathcal {E}(\Omega ) - 2 = 2 \# \mathcal {T}+ 2 \# \mathcal {V}+ 2 \# \mathcal {E}(\Omega ) - 2 \\&= 2 \# \mathcal {E}+ 2 \# \mathcal {E}(\Omega ) = 6 \# \mathcal {T}= \dim (P_1(\mathcal {T}; \mathbb {R}^2)). \end{aligned}$$

\(\square \)

Remark 5.2

(generalization to non-contractible domain) In order to generalize Theorem 5.1 to domains \(\Omega \) with non-connected boundary, the gradient part of the discrete Helmholtz decomposition needs to be enriched by two types of functions for each connectivity component \(\Gamma _1, \dots , \Gamma _L\) inside of \(\Omega \) as denoted in Sect. 2.1. First, for every \(\ell = 1, \dots , L\), define \(\phi _{\ell , 1} \in S^2(\mathcal {T})\) by the boundary values \( \phi _{\ell ,1}|_{\partial \Omega {\setminus } \Gamma _\ell } = 0 \) and \(\phi _{\ell ,1}|_{\Gamma _\ell } = 1\) and by an arbitrary, but fixed extension of \(\phi _{\ell , 1}\) inside the domain \(\Omega \) (e.g., by the minimal norm extension). This definition relates to the enrichment of the discrete decomposition for the piecewise constant case (cf. Remark 4.4) as well as of the continuous decomposition of \(L^2(\Omega ; \mathbb {R}^2)\). In the piecewise affine case however, recall the global conforming bubble function \({\widetilde{b}}_h \in \mathcal {B}^{NC }(\mathcal {T}) \cap C^0(\Omega )\) from (2.19) and for \(\ell = 1, \dots , L\), define \(\phi _{\ell , 2} \in S^2(\mathcal {T})\) by an arbitrary, but fixed extension inside of \(\Omega \) of the boundary values \( \phi _{\ell , 2}|_{\partial \Omega {\setminus } \Gamma _\ell } = 0 \) and \( \phi _{\ell , 2}|_{\Gamma _\ell } = {\widetilde{b}}_h|_{\Gamma _\ell } \). The resulting discrete Helmholtz decomposition reads

The orthogonality of the spaces follows analogously to Theorem 5.1 together with the fact that the tangential derivative of \(\phi _{\ell ,1}\) vanishes and that the first moments of \(\phi _{\ell ,2}\vert _F\) vanish on every \(F\in \mathcal {F}(\partial \Omega )\). The inhomogeneous boundary conditions of \(\phi _{\ell , 1}\) imply \(\phi _{\ell , 1} \not \in {FS }_0(\mathcal {T})\). Furthermore, the assumption that there exist \( v_{FS }= v_h + v_b \in {FS }_0(\mathcal {T}) = S^2_0(\mathcal {T}) + \mathcal {B}^{NC }(\mathcal {T}) \) according to (2.20) and \(\alpha \in \mathbb {R}\) with \(\phi _{\ell ,2}=v_{FS }+\alpha \phi _{\ell ,1}\) leads to \( v_b = \phi _{\ell ,2} - \alpha \phi _{\ell ,1} - v_h \in S^2(\mathcal {T}) \). Since \( \mathcal {B}^{NC }(\mathcal {T}) \cap S^2(\mathcal {T}) = {{\,\textrm{span}\,}}\{{\widetilde{b}}_h\} \), the boundary conditions on the outer boundary \(\Gamma _0\) prove \(v_b=0\). However, the boundary conditions on \(\Gamma _\ell \) then lead to \(v_{FS }=0\) and \(\alpha =0\), which shows \( \phi _{\ell ,2} \not \in {FS }_0(\mathcal {T}) \oplus {{\,\textrm{span}\,}}\{\phi _{\ell , 1}\} \). Consequently,

$$\begin{aligned}&\dim ( \nabla _{NC }({FS }_{0}(\mathcal {T}) + {{\,\textrm{span}\,}}\{\phi _{\ell , j}: \ell = 1,\dots , L, j=1,2\} ) ) \\&\qquad = \#\mathcal {V}(\Omega )+\#\mathcal {E}(\Omega )+\#\mathcal {T}(\Omega ) + 2L. \end{aligned}$$

and the asserted generalized decomposition follows by a dimension argument analogous to Step 2 in the proof of Theorem 5.1 with the modified Euler formula (2.8) replacing (2.3).

Remark 5.3

(nonconformity of spaces in affine decompositions) The decomposition of affine vector fields from Theorem 5.1 consists of nonconforming spaces only. Indeed, it is impossible that a Helmholtz decomposition of the form

(5.1)

contains a conforming space \(X \subseteq H^1(\Omega )\). To prove this, consider the nonconforming quadratic volume bubble function \(b_T^{NC }\in P_2(\mathcal {T})\) from (2.17). A piecewise integration by parts proves, for any \(v_h \in P_2(\mathcal {T})\), that

$$\begin{aligned} \int _\Omega \nabla _{NC }v_h \cdot {{\,\textrm{Curl}\,}}_{NC }b_T^{NC }\;d x&= \int _{\partial T} b_T^{NC }\, \nabla _{NC }v_h \cdot \tau _T \;d s= 0. \end{aligned}$$

Since \(\nabla _{NC }X_{NC }\subseteq P_1(\mathcal {T}; \mathbb {R}^2)\), it holds that \(X_{{NC }} \subseteq P_2(\mathcal {T})\) and, hence, \({{\,\textrm{Curl}\,}}_{NC }b_T^{NC }\) is orthogonal to \(\nabla _{NC }X_{NC }\subseteq \nabla _{NC }P_2(\mathcal {T})\). Moreover, the assumption \({{\,\textrm{Curl}\,}}_{NC }b_T^{NC }\in {{\,\textrm{Curl}\,}}X\) would imply \({{\,\textrm{Curl}\,}}_{NC }(b_T^{NC }- \beta _h) = 0\) for some \(\beta _h \in H^1(\Omega )\). Since only constant functions belong to the kernel of the \({{\,\textrm{Curl}\,}}\) operator, this contradicts \(b_T^{NC }\not \in H^1(\Omega )\). Altogether,

Consequently, the decomposition (5.1) cannot hold. An analogous argumentation shows that there also exists no Helmholtz decomposition of \(P_1(\mathcal {T}; \mathbb {R}^2)\) of the form with a conforming subspace \(Y \subseteq H^1_0(\Omega )\).

Remark 5.4

(higher polynomial degrees) A straightforward extension to higher polynomial degrees of Theorem 5.1 is not possible. For instance for \(k=2\), let \({CR }^3_0(\mathcal {T})\) (resp. \({CR }^3(\mathcal {T})\)) denote the Crouzeix-Falk finite elements [24] with (resp. without) boundary conditions. The Euler formula (2.2) reveals

$$\begin{aligned} \dim (\nabla _{NC }{CR }^3_0(\mathcal {T}) + {{\,\textrm{Curl}\,}}_{NC }{CR }^3(\mathcal {T}))&\le \dim (\nabla _{NC }{CR }^3_0(\mathcal {T})) + \dim ({{\,\textrm{Curl}\,}}_{NC }{CR }^3(\mathcal {T}))\\&= \# \mathcal {T}+ 3 \# \mathcal {E}(\Omega ) + \# \mathcal {T}+ 3 \# \mathcal {E}-1\\&= 11 \# \mathcal {T}-1 < 12 \# \mathcal {T}= \dim (P_2(\mathcal {T};\mathbb {R}^2)). \end{aligned}$$

Therefore, \(\nabla {CR }^3_0(\mathcal {T}) + {{\,\textrm{Curl}\,}}{CR }^3(\mathcal {T}) \subsetneq P_2(\mathcal {T}; \mathbb {R}^2).\)

The following result generalizes the discrete Helmholtz decomposition for piecewise affine vector fields to 3D. As in 2D, the discrete spaces of both the gradient and the rotational part have to include the nonconforming element bubbles. However, in contrast to the two-dimensional situation, one of the spaces has also to include nonconforming face bubbles (see (2.22) for the definition of the face bubbles). In the first version in Theorem 5.5 this is the case for the gradient part, while in Theorem 5.7, the rotational part contains the nonconforming face bubble functions.

Theorem 5.5

Let \(\Omega \subseteq \mathbb {R}^3\) be a bounded and contractible polyhedral Lipschitz domain. Abbreviate the space \( Y_{NC }(\mathcal {T}) \mathrel {{:}{=}}N ^1(\mathcal {T}) + \mathcal {B}^{NC }(\mathcal {T};\mathbb {R}^3) \) of Nédélec vector fields enriched with the nonconforming bubble functions from (2.18). The following \(L^2\)-orthogonal decomposition holds

Proof

Step 1 (orthogonality). For any \(v_{FS }\in {FS }_0(\mathcal {T})\) and \(\alpha _{Nd }\in N ^1(\mathcal {T})\), a piecewise integration by parts and the product rule (2.14) of the jump show

$$\begin{aligned}&\int _\Omega \nabla _{NC }v_{FS }\cdot {{\,\textrm{rot}\,}}_{NC }\alpha _{Nd }\;d x\\&\qquad \qquad = \sum _{F\in \mathcal {F}} \left( \int _F [v_{FS }]_F \langle {{\,\textrm{rot}\,}}_{NC }\alpha _{Nd }\cdot \nu _F \rangle _F \;d s+ \int _F \langle v_{FS }\rangle _F [{{\,\textrm{rot}\,}}_{NC }\alpha _{Nd }\cdot \nu _F]_F \;d s\right) . \end{aligned}$$

Since \({{\,\textrm{rot}\,}}_{NC }\alpha _{Nd }\) is piecewise affine, the first term on the right-hand side vanishes. Lemma 2.1 guarantees that \({{\,\textrm{rot}\,}}_{NC }\alpha _{Nd }\cdot \nu _F\) consists of tangential derivatives of tangential components of \(\alpha _{Nd }\) only. This and the tangential continuity of \(\alpha _{Nd }\) lead to \([{{\,\textrm{rot}\,}}_{NC }\alpha _{Nd }\cdot \nu _F]_F = 0\) and, hence, \(\nabla _{NC }{FS }_0(\mathcal {T})\) is \(L^2\)-orthogonal to \({{\,\textrm{rot}\,}}N ^1(\mathcal {T})\).

For \(\alpha _\mathcal {T}\in \mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3)\), the application of another piecewise integration by parts and the product rule (2.14) of the jump prove

$$\begin{aligned}&\int _\Omega \nabla _{NC }v_{FS }\cdot {{\,\text {rot}\,}}_{NC }\alpha _\mathcal {T}\;d x\\ {}&\qquad \qquad = \sum _{F\in \mathcal {F}} \left( \int _F [\alpha _\mathcal {T}]_F \langle \nabla _{NC }v_{FS } \wedge \nu _F \rangle _F \;d s+ \int _F \langle \alpha _\mathcal {T}\rangle _F [ \nabla _{NC }v_{FS } \wedge \nu _F ]_F \;d s\right) . \end{aligned}$$

Since \(\alpha _\mathcal {T}\) is a (multiple of the) nonconforming bubble function on each element, the first moments of \([\alpha _\mathcal {T}]_F\) and \(\langle \alpha _\mathcal {T}\rangle _F\) vanish. Since \(\nabla _{NC }v_{FS }\) is piecewise affine, this proves the remaining orthogonality of \(\nabla _{NC }{FS }_0(\mathcal {T})\) and \({{\,\textrm{rot}\,}}_{NC }(\mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3))\).

Step 2 (characterization of \({{\,\textrm{rot}\,}}(N ^1(\mathcal {T})) \cap {{\,\textrm{rot}\,}}_{NC }(\mathcal {B}^{NC }(\mathcal {T};\mathbb {R}^3))\)). Given a discrete function \(v_{b }\in \mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3)\), there exists \(\beta _\mathcal {T}\in P_0(\mathcal {T};\mathbb {R}^3)\) such that \(v_{b }= {\widetilde{b}}_h \beta _\mathcal {T}\), where \({\widetilde{b}}_h \in \mathcal {B}^{NC }(\mathcal {T}) \cap C^0(\Omega )\) is the global conforming bubble function defined in (2.19). For \(v_{Nd }\in N ^1(\mathcal {T})\), assume that \({{\,\textrm{rot}\,}}_{NC }({\widetilde{b}}_h \beta _\mathcal {T}) = {{\,\textrm{rot}\,}}(v_{Nd })\). A product rule and the exact sequence (2.24) guarantees

$$\begin{aligned} \nabla {\widetilde{b}}_h \wedge \beta _\mathcal {T}= {{\,\textrm{rot}\,}}_{NC }({\widetilde{b}}_h \beta _\mathcal {T}) = {{\,\textrm{rot}\,}}v_{Nd }\in {RT }^1(\mathcal {T}). \end{aligned}$$

In particular, \([(\nabla _{NC }{\widetilde{b}}_h \wedge \beta _\mathcal {T}) \cdot \nu _F]_F = 0\) for all \(F\in \mathcal {F}(\Omega )\). Since \(\nabla {\widetilde{b}}_h \in \nabla S^2(\mathcal {T})\subseteq N ^1(\mathcal {T})\) and, hence, \(\nabla {\widetilde{b}}_h\wedge \nu _F\) is continuous, the wedge-product identity \((x \wedge y) \cdot z = (z \wedge x) \cdot y\) for all \(x, y, z \in \mathbb {R}^3\) implies

$$\begin{aligned} 0= & {} [(\nabla {\widetilde{b}}_h \wedge \beta _\mathcal {T}) \cdot \nu _F]_F = [(\nu _F \wedge \nabla {\widetilde{b}}_h) \cdot \beta _\mathcal {T}]_F = (\nu _F \wedge \nabla {\widetilde{b}}_h) \cdot [\beta _\mathcal {T}]_F \\ {}= & {} (\nabla {\widetilde{b}}_h \wedge [\beta _\mathcal {T}]_F) \cdot \nu _F. \end{aligned}$$

For any \(F \in \mathcal {F}(\Omega )\), a straightforward calculation reveals that \({\widetilde{b}}_h|_F\) vanishes in the midpoints of the edges \(E \in \mathcal {E}(F)\). As a consequence, the zero set \(N \mathrel {{:}{=}}\{x \in F \;:\; {\widetilde{b}}_h(x) = 0\}\) is the Steiner inellipse of the triangle F. Its center coincides with the barycenter of F. Let \(\tau _1 \in \mathbb {R}^3\) be a unit vector in the direction of the major semi-axis of N and \(\tau _2 \in \mathbb {R}^3\) a unit vector in the direction of the minor semi-axis such that \(\tau _1\), \(\tau _2\) and \(\nu _F\) are positively oriented, i.e., \((\tau _1 \wedge \tau _2)\cdot \nu _F = 1\). In particular, \(\tau _1\) and \(\tau _2\) are tangential to F and \(\tau _1\cdot \tau _2 = 0\). Let G denote the line through the midpoint of F that is parallel to \(\tau _2\), see Fig. 1 for an illustration of this definition. The line G crosses the level sets of \({\widetilde{b}}_h\vert _F\) orthogonally. This ensures that the affine term \(\nabla {\widetilde{b}}_h \cdot \tau _1\) vanishes along G, i.e., \((\nabla {\widetilde{b}}_h \cdot \tau _1)\vert _G \equiv 0\).

Fig. 1
figure 1

Illustration of face tangentials \(\tau _1\) and \(\tau _2\) in the direction of the major and minor semi-axes of the inellipse N in the triangle F

Consider the decompositions

$$\begin{aligned} \nabla {\widetilde{b}}_h&= (\nabla {\widetilde{b}}_h \cdot \tau _1) \tau _1 + (\nabla {\widetilde{b}}_h \cdot \tau _2) \tau _2 + (\nabla {\widetilde{b}}_h \cdot \nu _F) \nu _F,\\ [\beta _\mathcal {T}]_F&= ([\beta _\mathcal {T}]_F \cdot \tau _1) \tau _1 + ([\beta _\mathcal {T}]_F \cdot \tau _2) \tau _2 + ([\beta _\mathcal {T}]_F \cdot \nu _F) \nu _F. \end{aligned}$$

Since \(y \wedge y = 0\) and \((x \wedge y) \cdot y=0\) for all \(x,y\in \mathbb {R}^3\), the bilinearity and the anti-commutativity of the cross product and the positive orientation \((\tau _1\wedge \tau _2)\cdot \nu _F=1\) lead to

$$\begin{aligned} 0&= (\nabla {\widetilde{b}}_h \wedge [\beta _\mathcal {T}]_F)\cdot \nu _F = (\nabla {\widetilde{b}}_h \cdot \tau _1) ([\beta _\mathcal {T}]_F\cdot \tau _2) + (\nabla {\widetilde{b}}_h \cdot \tau _2) ([\beta _\mathcal {T}]_F \cdot \tau _1). \end{aligned}$$

In the restriction to G, the first summand vanishes due to the definition of G (see above). Hence,

$$\begin{aligned} 0 = (\nabla {\widetilde{b}}_h \cdot \tau _2)\vert _G\, ([\beta _\mathcal {T}]_F \cdot \tau _1)\vert _G. \end{aligned}$$

However, \((\nabla {\widetilde{b}}_h \cdot \tau _2)\vert _G\) is an affine function vanishing solely in the midpoint of F. Since \([\beta _\mathcal {T}]\) is constant on F, this implies that \([\beta _\mathcal {T}]_F \cdot \tau _1\) vanishes. The same arguments show that \([\beta _\mathcal {T}]_F \cdot \tau _2 = 0\) and, hence, \(\beta _\mathcal {T}\in H({{\,\textrm{rot}\,}}, \Omega )\). Since \(\Omega \) is contractible, the exactness of the sequence (2.24) results in

$$\begin{aligned} \beta _\mathcal {T}\in P_0(\mathcal {T}; \mathbb {R}^3) \cap H({{\,\textrm{rot}\,}}, \Omega ) \subseteq N ^0({{\,\textrm{rot}\,}}^0, \mathcal {T}) = \nabla {S }^1(\mathcal {T}). \end{aligned}$$

Consequently, \({{\,\textrm{rot}\,}}(N ^1(\mathcal {T})) \cap {{\,\textrm{rot}\,}}_{NC }(\mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3))\) consists (at most) of functions of the form \({\widetilde{b}}_h \nabla v_h\) for some \(v_h \in {S }^1(\mathcal {T})\). Therefore,

$$\begin{aligned} \dim ({{\,\textrm{rot}\,}}(N ^1(\mathcal {T})) \cap {{\,\textrm{rot}\,}}_{NC }(\mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3))) \le \dim (\nabla ({S }^1(\mathcal {T})/\mathbb {R})) = \#\mathcal {V}- 1. \end{aligned}$$
(5.2)

Step 3 (dimension argument). Since \(\Omega \) is contractible, the exactness of the sequence (2.24) means that the kernel of \({{\,\textrm{rot}\,}}: N ^1(\mathcal {T}) \rightarrow {RT }^1(\mathcal {T})\) equals \(\nabla ({S }^2(\mathcal {T})/\mathbb {R})\). This shows

$$\begin{aligned} \dim ({{\,\textrm{rot}\,}}(N ^1(\mathcal {T}))) = 2\#\mathcal {E}+ 2\#\mathcal {F}- (\#\mathcal {V}+ \#\mathcal {E}- 1) = 2\#\mathcal {F}+ \#\mathcal {E}- \#\mathcal {V}+ 1. \end{aligned}$$
(5.3)

The (piecewise) rot operator has the trivial kernel on \(\mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3)\) [38] and, hence,

$$\begin{aligned} \dim ({{\,\textrm{rot}\,}}_{NC }(\mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3))) = 3\#\mathcal {T}. \end{aligned}$$

The sum of the two previously displayed formulas and estimate (5.2) from Step 2 result in

(5.4)

Since the piecewise gradient has the trivial kernel on \({FS }_0(\mathcal {T})\), the dimension formula from [29, Prop. 3.1] shows

$$\begin{aligned} \dim (\nabla _{NC }{FS }_0(\mathcal {T})) = \dim ({FS }_0(\mathcal {T})) = \#\mathcal {T}+ \#\mathcal {F}(\Omega ) + \#\mathcal {E}(\Omega ). \end{aligned}$$

The combination of the two previously displayed formulas leads to

$$\begin{aligned}&\dim (\nabla _{NC }{FS }_0(\mathcal {T})) + \dim ({{\,\textrm{rot}\,}}_{NC }Y_{NC }(\mathcal {T})) \\&\qquad \qquad \ge 4\#\mathcal {T}+ 2\#\mathcal {F}+\#\mathcal {F}(\Omega ) + \#\mathcal {E}+ \#\mathcal {E}(\Omega ) - 2\#\mathcal {V}+ 2. \end{aligned}$$

The consecutive application of the Euler formulas (2.5), (2.2), and (2.7) from Lemma 2.2 proves

$$\begin{aligned}&4\#\mathcal {T}+ 2\#\mathcal {F}+ \#\mathcal {F}(\Omega ) + \#\mathcal {E}+ \#\mathcal {E}(\Omega ) - 2\#\mathcal {V}+ 2 \\&\qquad \qquad = 2\#\mathcal {T}+ 4\#\mathcal {F}+\#\mathcal {F}(\Omega )-\#\mathcal {E}(\partial \Omega )\\&\qquad \qquad = 2\#\mathcal {T}+ 5(\#\mathcal {F}+\#\mathcal {F}(\Omega ))/2 +3\#\mathcal {F}(\partial \Omega )/2 -\#\mathcal {E}(\partial \Omega )\\&\qquad \qquad =12\#\mathcal {T}=\dim (P_1(\mathcal {T};\mathbb {R}^3)). \end{aligned}$$

The obvious inclusion concludes the proof. \(\square \)

Remark 5.6

The work [38] proves a local version of the Helmholtz decomposition of Theorem 5.5, namely

While in 2D the discrete Helmholtz decomposition of piecewise affine vector fields consists of the Fortin–Soulie space in both the gradient and the rotation part, the situation is different for 3D. In Theorem 5.5, the rotational part is conforming up to the nonconforming element bubbles. The following theorem proves a discrete Helmholtz decomposition where the gradient part is conforming up to nonconforming element bubbles. The enrichment by a nonconforming element bubble in both spaces is necessary, see Remark 5.3.

Theorem 5.7

Let \(\Omega \subseteq \mathbb {R}^3\) be a bounded and contractible polyhedral Lipschitz domain. Recall the abbreviation \( Y_{NC }(\mathcal {T}) = N ^1(\mathcal {T})+\mathcal {B}^{NC }(\mathcal {T};\mathbb {R}^3) \) from Theorem 5.5, The following \(L^2\)-orthogonal decomposition holds

Proof

The proof is divided into six steps.

Step 1 (orthogonality). The \(L^2\)-orthogonality of \(\nabla _{NC }(S^2_0(\mathcal {T})+\mathcal {B}^{NC }(\mathcal {T}))\) and \({{\,\textrm{rot}\,}}_{NC }(N ^1(\mathcal {T})+\mathcal {B}^{NC }(\mathcal {T};\mathbb {R}^3))\) follows from Theorem 5.5. Let \(\alpha _\mathcal {F}\in \mathcal {B}^{NC }_{\mathcal {F}}(\mathcal {T};\mathbb {R}^3)\) and \(v_h\in S^2_0(\mathcal {T})\). A piecewise integration by parts and the facts that the first moments of \([\alpha _\mathcal {F}]_F\) vanish and \(\nabla v_h\wedge \nu _F\) is a tangential derivative of the continuous function \(v_h\) prove

$$\begin{aligned} \int _\Omega \nabla v_h\cdot {{\,\textrm{rot}\,}}_{NC }\alpha _\mathcal {F}\;d x= \sum _{F\in \mathcal {F}} \int _F \langle \alpha _\mathcal {F}\rangle _F [\nabla v_h\wedge \nu _F]_F\;d s=0. \end{aligned}$$

For \(v_\mathcal {T}\in \mathcal {B}^{NC }(\mathcal {T})\), the first moments of \([v_\mathcal {T}]_F\) and \(\langle v_\mathcal {T}\rangle _F\) vanish. Hence, a piecewise integration by parts proves the remaining \(L^2\)-orthogonality

$$\begin{aligned} \int _\Omega \nabla v_\mathcal {T}\cdot {{\,\textrm{rot}\,}}_{NC }\alpha _\mathcal {F}\;d x= \sum _{F\in \mathcal {F}} \int _F \langle v_\mathcal {T}\rangle _F [{{\,\textrm{rot}\,}}_{NC }\alpha _\mathcal {F}\cdot \nu _F]_F\;d s=0. \end{aligned}$$

Step 2 (split of piecewise rotation-free function). Let \(q_h\in P_1(\mathcal {T};\mathbb {R}^3)\) such that \((q_h,{{\,\textrm{rot}\,}}_{NC }\beta _h)_{L^2(\Omega )}=0\) for all \( \beta _h\in Y_{NC }(\mathcal {T}) +\mathcal {B}^{NC }_{\mathcal {F}}(\mathcal {T};\mathbb {R}^3) \). Theorem 5.5 and the characterization (2.23) guarantee the existence of \(v_h\in S^2_0(\mathcal {T})\), \(v_\mathcal {T}\in \mathcal {B}^{NC }(\mathcal {T})\), and \(v_\mathcal {F}\in \mathcal {B}^{NC }_{\mathcal {F},0}(\mathcal {T})\) with \(q_h=\nabla _{NC }(v_h+v_\mathcal {T}+v_\mathcal {F})\). Let \(F\in \mathcal {F}\) and \(\beta _h=b^{NC }_F c\) with the nonconforming face bubble \(b^{NC }_F\) defined in (2.22) and some \(c\in \mathbb {R}^3\). Since the first moments of \(b^{NC }_F\) vanish on all faces except F and \(b_F^{NC }\) is continuous along F, a piecewise integration by parts leads to

$$\begin{aligned} \begin{aligned} 0&= \int _\Omega q_h\cdot {{\,\textrm{rot}\,}}_{NC }\beta _h\;d x= \sum _{{\tilde{F}}\in \mathcal {F}} \int _{{\tilde{F}}} \langle \beta _h\rangle _{{\tilde{F}}} \cdot [q_h\wedge \nu _{{\tilde{F}}}]_{{\tilde{F}}}\;d s\\&= \int _{F} \langle \beta _h\rangle _{F} \cdot [q_h\wedge \nu _{F}]_{F}\;d s= \int _{F} \beta _F^{NC }\, (c \cdot [q_h\wedge \nu _{F}]_{F}) \;d s. \end{aligned} \end{aligned}$$
(5.5)

Abbreviate \( w_h \mathrel {{:}{=}}c \cdot [q_h \wedge \nu _F]_F \in P_1(F) \). Straightforward computations with the integrals of the barycentric coordinates \(\lambda _z\) for \(z \in \mathcal {V}(F)\) reveal that

$$\begin{aligned} \int _F b_F^{NC }\;d s= \frac{\vert F \vert }{2} \quad \text {and}\quad \int _F b_F^{NC }\lambda _z \;d s= \frac{\vert F \vert }{6} = \Big (\int _F b_F^{NC }\;d s\Big ) \Big ( \frac{1}{\vert F \vert } \int _F \lambda _z \;d s\Big ). \end{aligned}$$

This and the equality (5.5) show

$$\begin{aligned} 0&= \int _F \beta _F^{NC }\, w_h \;d s= \sum _{z \in \mathcal {V}(F)} \Big ( \int _F \beta _F^{NC }\, \lambda _z \;d s\Big )\; w_h(z) \\ {}&= \Big ( \int _F \beta _F^{NC }\;d s\Big ) \Big ( \frac{1}{\vert F \vert } \int _F w_h \;d s\Big ). \end{aligned}$$

Hence, the second factor must vanish and the affine function \(w_h\) satisfies

$$\begin{aligned} 0 = \frac{1}{\vert F \vert } \int _F w_h \;d s= w_h({{\,\textrm{mid}\,}}(F)) = c \cdot [q_h({{\,\textrm{mid}\,}}(F)) \wedge \nu _F]_F. \end{aligned}$$

The fact that this holds for arbitrary \(c \in \mathbb {R}^3\) implies that \([q_h({{\,\textrm{mid}\,}}(F)) \wedge \nu _{F}]_{F} = 0\). Since \(v_h\) is continuous, \([\nabla v_h(\textrm{mid}(F))\wedge \nu _{F}]_{F}=0\). Furthermore, the nonconforming element bubble \(b^{NC }_T\vert _F\) attains its maximum at \(\textrm{mid}(F)\), and therefore \([\nabla _{NC }v_\mathcal {T}(\textrm{mid}(F))\wedge \nu _{F}]_{F}=0\). The combination of the aforementioned identities leads, for all \(F\in \mathcal {F}\), to

$$\begin{aligned}{}[\nabla _{{NC }} v_\mathcal {F}(\textrm{mid}(F))\wedge \nu _{F}]_{F} = [q_h(\textrm{mid}(F))\wedge \nu _{F}]_{F}=0. \end{aligned}$$

Step 3 (local representation of \(v_\mathcal {F}\)). Let \({\tilde{F}}\in \mathcal {F}(\Omega )\) be fixed and let \(T\in \mathcal {T}\) with \({\tilde{F}}\subseteq T\). Let \(b^{NC }_{{\tilde{F}}}\) be the nonconforming face bubble defined in (2.22) with \(j,k,\ell ,m\) as in (2.22). A direct computation reveals

$$\begin{aligned} \nabla _{NC }b^{NC }_{{\tilde{F}}}\vert _T = -4(1-\lambda _m)\nabla \lambda _m -6(\lambda _j\nabla \lambda _j + \lambda _k\nabla \lambda _k + \lambda _\ell \nabla \lambda _\ell ). \end{aligned}$$

Note that \(b^{NC }_{{\tilde{F}}}\) is continuous on \({\tilde{F}}\). Let now \(F\in \mathcal {F}(T)\setminus {\{{\tilde{F}}\}}\). Without loss of generality, assume that F is opposite to the vertex of index \(\ell \). Note that \(\lambda _\ell \vert _{F}=0\) and \(\lambda _n(\textrm{mid}(F))=1/3\) for \(n\in \{j,k,m\}\) and \((\nabla \lambda _j + \nabla \lambda _k + \nabla \lambda _m)\vert _{F}\wedge \nu _{F}=0\). Hence,

$$\begin{aligned} (\nabla _{NC }b^{NC }_{{\tilde{F}}}\vert _T) (\textrm{mid}(F)) \wedge \nu _{F} = \Big ( -\frac{8}{3}\nabla \lambda _m - 2(\nabla \lambda _j + \nabla \lambda _k) \Big ) \wedge \nu _{F} = -\frac{2}{3}\nabla \lambda _m\wedge \nu _{F}. \end{aligned}$$

Recall \(v_\mathcal {F}\) from Step 2 and let \(c_F\in \mathbb {R}\) for \(F\in \mathcal {F}\) such that \(v_\mathcal {F}=\sum _{F\in \mathcal {F}} c_F b^{NC }_F\). For \(T \in \mathcal {T}\) and \(z \in \mathcal {V}(T)\) with opposite face \(F \in \mathcal {F}(T)\), define \(b^{NC }_{T, z} \in P_2(\mathcal {T})\) by \(b^{NC }_{T,z}\vert _T=b^{NC }_F\) and \(b^{NC }_{T,z}\vert _K=0\) for \(K \in \mathcal {T}{\setminus } \{T\}\). Using the coefficients \(c_{T,z} = c_F\), the function \(v_\mathcal {F}\) can be written as

$$\begin{aligned} v_\mathcal {F}= \sum _{T\in \mathcal {T}}\sum _{z\in \mathcal {V}(T)} c_{T,z} b^{NC }_{T,z}. \end{aligned}$$

Let \(F\in \mathcal {F}\) with adjacent tetrahedra \(T_+\) and \(T_-\) (with \(T_-=\emptyset \), if \(F\in \mathcal {F}(\partial \Omega )\)). Since \(b^{NC }_{F}\) is continuous along F, the barycentric coordinates \(\lambda _z\) of z on \(T_+\) satisfy

$$\begin{aligned} (\nabla v_\mathcal {F}(\textrm{mid}(F)) \wedge \nu _{F})\vert _{T_+}&= \sum _{z\in \mathcal {V}(F)} c_{T_+,z} \nabla _{NC }b^{NC }_{T_+,z}(\textrm{mid}(F)) \wedge \nu _{F}\\ {}&= -\frac{2}{3}\sum _{z\in \mathcal {V}(F)} c_{T_+,z} \nabla \lambda _z\wedge \nu _{F}. \end{aligned}$$

Since \(\nabla \lambda _z\wedge \nu _{F}\) coincides on \(T_+\) and \(T_-\), this and Step 2 lead to

$$\begin{aligned} 0&= [\nabla v_\mathcal {F}(\textrm{mid}(F)) \wedge \nu _{F}]_{F} = -\frac{2}{3} \sum _{z\in \mathcal {V}(F)} [c_{T,z}]_{F} \nabla \lambda _z \wedge \nu _{F}. \end{aligned}$$

Since two of the three vectors \(\nabla \lambda _z\wedge \nu _F\) for \(z\in \mathcal {V}(F)\) are linearly independent and \(\sum _{z\in \mathcal {V}(F)} \nabla \lambda _z\wedge \nu _F=0\), this implies that the coefficients for the nodes displayed in Fig. 2 coincide, i.e., for \(y,z\in \mathcal {V}(F)\),

$$\begin{aligned}{}[c_{T,z}]_{F} = [c_{T,y}]_{F}. \end{aligned}$$
(5.6)
Fig. 2
figure 2

Illustration of jumps. Here, \(F = T_+ \cap T_-\) and \([c_{T,z}]_F\) is the jump of the coefficient of \(b_{T_+,z}\) and \(b_{T_-,z}\), i.e., the face bubbles of the red (lined) and the green (dotted) faces. The equation (5.6) states that the three illustrated jumps coincide (Color figure online)

Step 4 (jump of \(v_\mathcal {F}\)). Let \(F\in \mathcal {F}(\Omega )\) and let \(T_+,T_-\in \mathcal {T}\) be the two adjacent tetrahedra. Note that \(b_{T_+,z}^{NC }\vert _F = b_{T_-,z}^{NC }\vert _F\) for all \(z\in \mathcal {V}(F)\) and

$$\begin{aligned}{}[b_{T,z}^{NC }]_F \mathrel {{:}{=}}b_{T_+,z}^{NC }- b_{T_-,z}^{NC }= 0 \end{aligned}$$

for the remaining nodes \(z \in (\mathcal {V}(T_+) \cup \mathcal {V}(T_-)) {\setminus } \mathcal {V}(F)\) opposite to F. This proves

$$\begin{aligned} \left[ v_\mathcal {F}\right] _F = \left[ \sum _{z\in \mathcal {V}(T)} c_{T,z} b_{T,z}^{NC }\right] _F = \sum _{z\in \mathcal {V}(F)} [c_{T,z}]_F \,b_{T_+,z}^{NC }\vert _F. \end{aligned}$$

Step 3 shows that \([c_{T,z}]_{F}= [c_{T,y}]_{F}\) for all \(y,z\in \mathcal {V}(F)\) and, therefore, for some \({\widetilde{z}}\in \mathcal {V}(F)\),

$$\begin{aligned} \left[ v_\mathcal {F}\right] _F = [c_{T,{\widetilde{z}}}]_F \sum _{z\in \mathcal {V}(F)} \,b_{T_+,z}^{NC }\vert _F. \end{aligned}$$

Let \(y\in \mathcal {V}(T)\) be the vertex opposite to F. The definitions (2.22) of \(b_{T_+,z}\) and (2.17) of the nonconforming volume bubble lead to

$$\begin{aligned} \begin{aligned} \sum _{z\in \mathcal {V}(F)} \,b_{T_+,z}^{NC }&= 2 \sum _{z\in \mathcal {V}(F)} (1-\lambda _z)^2 - 6\sum _{z\in \mathcal {V}(F)} \lambda _z^2 -9 \lambda _y^2 \\&= 2 - 4 \sum _{z\in \mathcal {V}(F)}\lambda _z^2 - 9\lambda _y^2 +4\lambda _y = b_{T_+}^{NC }- 5\lambda _y^2 +4\lambda _y. \end{aligned} \end{aligned}$$
(5.7)

Since \(\lambda _y\) vanishes on F, the combination of the previously displayed formulas proves

$$\begin{aligned} \left[ v_\mathcal {F}\right] _F = [c_{T,{\widetilde{z}}}]_F\, b_{T_+}^{NC }\vert _F. \end{aligned}$$

The same arguments show that this also holds for boundary faces.

Fig. 3
figure 3

The equation (5.7) is the sum of the face bubbles of the three marked faces. It shows that this is a nonconforming volume bubble up to a function only dependent on \(\lambda _y\)

Step 5 (volume bubble part of \(v_\mathcal {F}\)). Let \(T\in \mathcal {T}\) and define

$$\begin{aligned} \alpha _T:=\frac{1}{3}\sum _{z\in \mathcal {V}(T)} c_{T,z} \quad \text {and}\quad \beta _\mathcal {T}:=\sum _{T\in \mathcal {T}} \alpha _T b^{NC }_T \in \mathcal {B}^{NC }(\mathcal {T}). \end{aligned}$$

The goal is to prove that \(v_\mathcal {F}-\beta _\mathcal {T}\in S^2_0(\mathcal {T})\). To this end, let \({\widetilde{b}}_h\in \mathcal {B}^{NC }(\mathcal {T}) \cap {S }^2(\mathcal {T})\) be the global conforming bubble function from (2.19). Then \({\widetilde{b}}_h\) is continuous and, therefore, \( \left[ \beta _\mathcal {T}\right] _F = [\alpha _T]_F \,{\widetilde{b}}_h\vert _F \). Since \(c_{T_+,z}=c_{T_-,x}\) for \(z\in \mathcal {V}(T_+)\) and \(x\in \mathcal {V}(T_-)\) both opposite to \(F=T_+\cap T_-\), the corresponding coefficients can be omitted in the jump, i.e.,

$$\begin{aligned}{}[\alpha _T]_F = \frac{1}{3}\sum _{z\in \mathcal {V}(F)} [c_{T,z}]_F. \end{aligned}$$

Step 3 proves \( [c_{T,z}]_F =[c_{T,y}]_F\) for \(y,z\in \mathcal {V}(F)\) and, hence, the combination with Step 4 leads to \([v_\mathcal {F}-\beta _\mathcal {T}]_F=0\). Since this holds for all \(F \in \mathcal {F}(\Omega )\), \(v_\mathcal {F}-\beta _\mathcal {T}\in S^2_0(\mathcal {T})\).

Step 6 (conclusion of the proof). Recall \(q_h=\nabla _{NC }(v_h+v_\mathcal {T}+v_\mathcal {F})\) from Step 2. Steps 3–5 prove \(v_\mathcal {F}\in S^2_0(\mathcal {T})+\mathcal {B}^{NC }(\mathcal {T})\) and, hence, \(q_h \in \nabla _{NC }(S^2_0(\mathcal {T})+\mathcal {B}^{NC }(\mathcal {T}))\). Since \(q_h\in P_1(\mathcal {T};\mathbb {R}^3)\) was an arbitrary function in the orthogonal complement of \( {{\,\textrm{rot}\,}}_{NC }( Y_{NC }(\mathcal {T}) +\mathcal {B}^{NC }_{\mathcal {F}}(\mathcal {T};\mathbb {R}^3) )\), this concludes the proof. \(\square \)

Remark 5.8

(multiply connected domains) The discrete Helmholtz decompositions of Theorems 5.5 and 5.7 also hold true on multiply connected domains with connected boundary. To see this, recall from [48, Thm. 3] that the kernel \(N ^0({{\,\textrm{rot}\,}}^0, \mathcal {T})\) is spanned by gradients and one additional loop field per cut \(\Sigma _1, \dots , \Sigma _M\). This justifies replacing the upper bound in (5.2) by

$$\begin{aligned} \dim ( {{\,\textrm{rot}\,}}(N ^1(\mathcal {T})) \cap {{\,\textrm{rot}\,}}_{NC }(\mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^3)) ) \le \dim (N ^0({{\,\textrm{rot}\,}}^0, \mathcal {T})) = \#\mathcal {V}- 1 + M. \end{aligned}$$

The same applies for one polynomial degree higher and the Betti number

$$\begin{aligned} \dim (N ^1({{\,\textrm{rot}\,}}^0, \mathcal {T}) / \nabla S^2(\mathcal {T})) = b_1 = M \end{aligned}$$

from [39, Example 9] results in \( \dim ({{\,\textrm{rot}\,}}(N ^1(\mathcal {T}))) = 2 \#\mathcal {F}+ \#\mathcal {E}- \#\mathcal {V}+ 1 - M \) replacing (5.3). The proof of Theorem 5.5 then follows with the modified Euler formula (2.9). The proof of Theorem 5.7 employs the decomposition of Theorem 5.5 in Step 1 of the proof. All remaining steps are independent of the topology of the domain.

Remark 5.9

(non-connected boundary) As in the 2D case for domains with non-connected boundary in Remark 5.2, two functions per boundary connectivity component \(\Gamma _1, \dots , \Gamma _L\) inside of \(\Omega \) have to be added in the gradient part of the discrete decomposition. For \(\ell = 1, \dots , L\), define \( \phi _{\ell , 1} \in S^2(\mathcal {T}) \) by an arbitrary, but fixed extension (e.g., by the minimal norm extension) of the boundary values \( \phi _{\ell , 1} \vert _{\partial \Omega {\setminus }\Gamma _\ell } = 0 \) and \( \phi _{\ell , 1}\vert _{\Gamma _\ell } = 1 \). Furthermore, use the nodal basis functions \(\varphi _z\) of \(S^2(\mathcal {T})\) to define

$$\begin{aligned} \phi _{\ell , 2} = -2\sum _{z \in \mathcal {V}(\Gamma _\ell )} \varphi _z \in S^2(\mathcal {T}). \end{aligned}$$

As in 2D, these functions satisfy \( \phi _{\ell ,2} \vert _{\partial \Omega {\setminus }\Gamma _\ell } = 0 \) and \( \phi _{\ell ,2} \vert _{\Gamma _\ell } = {\tilde{b}}_h\vert _{\Gamma _\ell } \) with the global conforming bubble function \({\tilde{b}}_h\in \mathcal {B}^{NC }(\mathcal {T})\cap C^0(\Omega )\) from (2.19). Then the modified discrete Helmholtz decompositions of Theorems 5.5 and 5.7 read

(5.8)
(5.9)

The orthogonalities follow analogously to the 2D case. Let \(\varphi _E\) denote the \(S^2(\mathcal {T})\) basis functions for the edge E. The identity \(\varphi _z=\sum _{T\in \mathcal {T},z\in T} b^{NC }_T -\sum _{F\in \mathcal {F},z\in F} b^{NC }_F +\frac{3}{4}\sum _{E\in \mathcal {E},z\in E} \varphi _E\) from [29, p. 276] (with corrected sign) then proves

$$\begin{aligned} -\frac{1}{2} \phi _{\ell ,2}&= \sum _{T\in \mathcal {T}} \#(\mathcal {V}(T)\cap \mathcal {V}(\Gamma _\ell )) \; b^{NC }_T - \sum _{F\in \mathcal {F}} \#(\mathcal {V}(F)\cap \mathcal {V}(\Gamma _\ell )) \; b^{NC }_F\\&\quad +\frac{3}{4} \sum _{E\in \mathcal {E}} \#(\mathcal {V}(E)\cap \mathcal {V}(\Gamma _\ell )) \; \varphi _E. \end{aligned}$$

Since the functions \(b^{NC }_T\), \(b^{NC }_F\), and \(\varphi _E\) form a basis of \({FS }(\mathcal {T})\) [29, Prop. 3.2], this representation is unique. But \(\#(\mathcal {V}(E)\cap \mathcal {V}(\Gamma _\ell ))\ne 0\) for boundary edges \(E\in \mathcal {E}(\Gamma _\ell )\) and, therefore, \(\phi _{\ell ,2} \not \in {FS }_0(\mathcal {T})\). While the \(P_1\) moments of \(\phi _{\ell ,2}\) and functions in \({FS }_0(\mathcal {T})\) vanish for all boundary faces, the \(P_1\) moments of \(\phi _{\ell ,1}\) do not vanish for faces on \(\Gamma _\ell \). This shows \( \phi _{\ell ,1} \not \in {FS }_0(\mathcal {T}) \cap {{\,\textrm{span}\,}}\{ \phi _{\ell ,2}: \ell = 1, \dots , L \} \) and, hence,

$$\begin{aligned}&\dim ( \nabla _{NC }(S^2_0(\mathcal {T})+\mathcal {B}^{NC }(\mathcal {T}) + {{\,\textrm{span}\,}}\{ \phi _{\ell , j} : \ell = 1, \dots , L, j=1,2 \}) )\\&\qquad = \#\mathcal {T}+\#\mathcal {F}(\Omega )+\#\mathcal {E}(\Omega ) + 2 L, \end{aligned}$$

The proof of (5.8) then follows the lines of the proof of Theorem 5.5 with the modified Euler formula (2.9).

The proof of (5.9) follows analogous to the proof of Theorem 5.7 with the modification that in Step 2 (multiples of) the functions \(\phi _{\ell ,j}\) have to be included in the representation of \(q_h\). However, it turns out that the conclusion \( [ \nabla _{{NC }} v_\mathcal {F}(\textrm{mid}(F)) \wedge \nu _{F} ]_{F} = [q_h(\textrm{mid}(F))\wedge \nu _{F}]_{F} = 0 \) holds true in this situation as well. All remaining steps of that proof are independent of the topology of the domain.

6 Decompositions for Stokes Equations

The stress of the velocity in the context of the Stokes equations leads to deviatoric (or trace-free) matrices. Let \(I_{d \times d} \in \mathbb {R}^{d \times d}\) denote the identity matrix and \({{\,\textrm{tr}\,}}: \mathbb {R}^{d \times d} \rightarrow \mathbb {R}\) the trace operator \({{\,\textrm{tr}\,}}(A) \mathrel {{:}{=}}A_{11} + \dots + A_{dd}\). The space \(\mathbb {R}^{d \times d}_{{{\,\textrm{dev}\,}}} \mathrel {{:}{=}}\{A \in \mathbb {R}^{d \times d} \,:\, {{\,\textrm{tr}\,}}(A) = 0\}\) is the image of the self-adjoint operator \({{\,\textrm{dev}\,}}: \mathbb {R}^{d \times d} \rightarrow \mathbb {R}^{d \times d}\) with \({{\,\textrm{dev}\,}}M \mathrel {{:}{=}}M - {{\,\textrm{tr}\,}}(M)/d\; I_{d \times d}\) called the deviatoric (or trace-free) part of a matrix. Recall from Sect. 2.2 that the differential operators \({{\,\textrm{rot}\,}}\) and \({{\,\textrm{rot}\,}}_{{NC }}\) apply row-wise to matrix-valued functions.

The following theorem shows that a discrete Helmholtz decomposition for deviatoric matrices follows from the discrete Helmholtz decompositions from Sects. 35.

Theorem 6.1

(abstract discrete Helmholtz decomposition for the Stokes equations) For \(d = 3\) and \(k \in \mathbb {N}_0\), let the finite-dimensional spaces \(X_h\) and \(Y_h\) satisfy the \(L^2\)-orthogonal discrete Helmholtz decomposition

(6.1)

Abbreviate \( Z_h \mathrel {{:}{=}}\{v_h\in X_h^d :\, {{\,\textrm{div}\,}}_{NC }v_h = 0\}\). If \(\Gamma _{N }\ne \emptyset \), then let \({\widetilde{Y}}_h \mathrel {{:}{=}}Y_h^d\) and else, if \(\Gamma _{N }= \emptyset \), let

$$\begin{aligned} {\widetilde{Y}}_h \mathrel {{:}{=}}\left\{ \beta _h\in Y_h^d :\; \int _\Omega {{\,\textrm{tr}\,}}({{\,\textrm{rot}\,}}_{NC }\beta _h)\;d x= 0 \right\} . \end{aligned}$$

Then, the following \(L^2\)-orthogonal discrete Helmholtz decomposition of deviatoric matrices holds

The same decomposition holds for \(d = 2\) and \({{\,\textrm{Curl}\,}}_{NC }\) replacing \({{\,\textrm{rot}\,}}_{NC }\) for a scalar valued function space \(Y_h\).

Proof

Since \({{\,\textrm{dev}\,}}\) is self-adjoint and the tensor fields in \({\text {D}}\hspace{-1.66656pt}_{NC }Z_h\) are trace-free, the orthogonality follows componentwise from the orthogonality in (6.1).

Let \(\sigma _h\in P_k(\mathcal {T};\mathbb {R}^{3 \times 3}_{{{\,\textrm{dev}\,}}})\) and \(\alpha _h\in {\widetilde{Y}}_h\) be a (possibly not unique) solution of

$$\begin{aligned} \int _\Omega {{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\alpha _h:{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\beta _h\;d x= \int _\Omega \sigma _h:{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\beta _h\;d x\qquad \text {for all }\beta _h\in {\widetilde{Y}}_h. \end{aligned}$$

If \(\Gamma _{N }=\emptyset \), define

$$\begin{aligned} \phi (x) \mathrel {{:}{=}}\begin{pmatrix} (e_1\wedge x)^\top \\ (e_2\wedge x)^\top \\ (e_3\wedge x)^\top \end{pmatrix} \end{aligned}$$

satisfying \({{\,\textrm{rot}\,}}\phi = I_{3 \times 3}\). If \(\Gamma _{N }\ne \emptyset \), let \(\phi \mathrel {{:}{=}}0\). Given \(\gamma _h \in Y_h^d\) arbitrary, set

$$\begin{aligned} \beta _h \mathrel {{:}{=}}\gamma _h - \frac{1}{d} \bigg ( \int _\Omega {{\,\textrm{tr}\,}}({{\,\textrm{rot}\,}}_{NC }\gamma _h)\;d x\bigg ) \,\phi \in {\widetilde{Y}}_h. \end{aligned}$$

Since \({{\,\textrm{dev}\,}}\) is self-adjoint and the identity matrix belongs to the kernel of the deviatoric part, it follows that

$$\begin{aligned} 0&= \int _\Omega (\sigma _h-{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\alpha _h) :{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\beta _h\;d x\\&= \int _\Omega (\sigma _h-{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\alpha _h) :{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\gamma _h\;d x\\&= \int _\Omega (\sigma _h-{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\alpha _h) :{{\,\textrm{rot}\,}}_{NC }\gamma _h\;d x\end{aligned}$$

The discrete Helmholtz decomposition (6.1) therefore guarantees the existence of \(u_h\in X_h^3\) with \(\sigma _h-{{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\alpha _h={\text {D}}\hspace{-1.66656pt}_{NC }u_h\). Since the left-hand side is trace-free, so is the right-hand side, which means that \({{\,\textrm{div}\,}}_{NC }u_h={{\,\textrm{tr}\,}}({\text {D}}\hspace{-1.66656pt}_{NC }u_h)=0\). This concludes the proof in the case \(d = 3\). An analogous argumentation proves the assertion for \(d = 2\) with \( \phi (x) \mathrel {{:}{=}}(-x_2, x_1)^\top \) in the case \(\Gamma _{N }= \emptyset \). \(\square \)

The following lemma characterizing the kernel of \({{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\) precedes the formulation of specific discrete Helmholtz decompositions for deviatoric matrices.

Lemma 6.2

(discrete tr-dev-div lemma for rotations) Let the finite-dimensional spaces \(X_h, Y_h \subseteq L^2(\Omega )\) with norm \(\Vert \nabla _{NC }{}\cdot {} \Vert _{L^2(\Omega )}\) on \(X_h\) satisfy the \(L^2\)-orthogonality

$$\begin{aligned} \nabla _{NC }X_h \mathrel {\bot } {{\,\textrm{rot}\,}}_{NC }Y_h. \end{aligned}$$
(6.2)

Let \({\widetilde{Y}}_h\subseteq Y_h^d\) fulfill the discrete inf-sup condition

$$\begin{aligned} \left\| p_h\right\| _{L^2(\Omega )} \lesssim \sup _{v_h\in X_h^d\setminus \{0\}} \frac{\int _\Omega p_h{{\,\textrm{div}\,}}_{NC }v_h\;d x}{\left\| {\text {D}}\hspace{-1.66656pt}_{NC }v_h\right\| _{L^2(\Omega )}} \qquad \text {for all }p_h\in {{\,\textrm{tr}\,}}({{\,\textrm{rot}\,}}_{NC }{\widetilde{Y}}_h). \end{aligned}$$
(6.3)

Then any \(\beta _h\in {\widetilde{Y}}_h\) satisfies

$$\begin{aligned} \left\| {{\,\textrm{tr}\,}}({{\,\textrm{rot}\,}}_{NC }\beta _h)\right\| _{L^2(\Omega )} \lesssim \left\| {{\,\textrm{dev}\,}}({{\,\textrm{rot}\,}}_{NC }\beta _h)\right\| _{L^2(\Omega )}. \end{aligned}$$

Remark 6.3

Note that the trace-dev-div lemma from the literature [19, Lem. 3.3] bounds the \(L^2\)-norm of the trace by the \(L^2\)-norm of the deviatoric part plus the \(H^{-1}\)-norm of the divergence. In the situation from Lemma 6.2, the \(H^{-1}\)-norm of \({{\,\textrm{Curl}\,}}_{NC }\beta _h\) does not vanish in general due to the possible nonconformity of \(\beta _h\).

Proof of Lemma 6.2

Let \(\beta _h\in {\widetilde{Y}}_h\) and set \(\sigma _h\mathrel {{:}{=} }{{\,\textrm{rot}\,}}_{NC }\beta _h\). The discrete inf-sup condition (6.3) guarantees the existence of \(v_h\in X_h^d\) with \(\left\| {\text {D}}\hspace{-1.66656pt}_{NC }v_h\right\| _{L^2(\Omega )}= 1\) and

$$\begin{aligned} \left\| {{\,\textrm{tr}\,}}(\sigma _h)\right\| _{L^2(\Omega )} \lesssim \int _\Omega {{\,\textrm{tr}\,}}(\sigma _h)\,{{\,\textrm{div}\,}}_{NC }v_h\;d x. \end{aligned}$$
(6.4)

Since \({{\,\textrm{tr}\,}}(\sigma _h)=\sigma _h:I_{d\times d}\) and \({{\,\textrm{dev}\,}}({\text {D}}\hspace{-1.66656pt}_{NC }v_h)={\text {D}}\hspace{-1.66656pt}_{NC }v_h-({{\,\textrm{div}\,}}_{NC }v_h/d) I_{d\times d}\), it follows

$$\begin{aligned} \int _\Omega {{\,\textrm{tr}\,}}(\sigma _h)\,{{\,\textrm{div}\,}}_{NC }v_h\;d x= d \int _\Omega \sigma _h:({\text {D}}\hspace{-1.66656pt}_{NC }v_h - {{\,\textrm{dev}\,}}({\text {D}}\hspace{-1.66656pt}_{NC }v_h))\;d x. \end{aligned}$$

The orthogonality (6.2) proves

$$\begin{aligned} d \int _\Omega \sigma _h:({\text {D}}\hspace{-1.66656pt}_{NC }v_h - {{\,\textrm{dev}\,}}({\text {D}}\hspace{-1.66656pt}_{NC }v_h))\;d x= -d\int _\Omega \sigma _h:{{\,\textrm{dev}\,}}({\text {D}}\hspace{-1.66656pt}_{NC }v_h)\;d x. \end{aligned}$$

Since \({{\,\textrm{dev}\,}}\) is self-adjoint, a Cauchy inequality implies

$$\begin{aligned} -d\int _\Omega \sigma _h:{{\,\textrm{dev}\,}}({\text {D}}\hspace{-1.66656pt}_{NC }v_h)\;d x&= -d\int _\Omega {{\,\textrm{dev}\,}}\sigma _h:{\text {D}}\hspace{-1.66656pt}_{NC }v_h\;d x\\&\le d \left\| {{\,\textrm{dev}\,}}\sigma _h\right\| _{L^2(\Omega )} \left\| {\text {D}}\hspace{-1.66656pt}_{NC }v_h\right\| _{L^2(\Omega )} = d \left\| {{\,\textrm{dev}\,}}\sigma _h\right\| _{L^2(\Omega )}. \end{aligned}$$

This and (6.4) prove the assertion. \(\square \)

Using the abbreviation \( Z \mathrel {{:}{=}}\{ v_h \in P_2(\mathcal {T}; \mathbb {R}^d): {{\,\textrm{div}\,}}_{NC }v_h = 0 \} \), define the spaces of solenoidal Crouzeix–Raviart and Fortin–Soulie vector fields

$$\begin{aligned} Z_{CR }(\mathcal {T})&\mathrel {{:}{=}}{CR }^1_0(\mathcal {T}; \mathbb {R}^d) \cap Z, \quad Z_{{CR }, {D }}(\mathcal {T}) \mathrel {{:}{=}}{CR }^1_{D }(\mathcal {T}; \mathbb {R}^d) \cap Z,\\ Z_{FS }(\mathcal {T})&\mathrel {{:}{=}}{FS }_0(\mathcal {T}; \mathbb {R}^d) \cap Z. \end{aligned}$$

Furthermore, let

$$\begin{aligned} Y_{NC }(\mathcal {T};\mathbb {R}^{3\times 3}) \mathrel {{:}{=}}N ^1(\mathcal {T}; \mathbb {R}^{3\times 3}) + \mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^{3\times 3}) \end{aligned}$$
(6.5)

be the space of row-wise Nédélec tensor fields enriched with the nonconforming bubble functions from equation (2.18). Recall \({\widehat{{S }}}^1_{N }(\mathcal {T})\) from (3.8) for \(d=2\) and define

$$\begin{aligned} \Sigma \mathrel {{:}{=}}\bigg \{ \tau _h\in P_2(\mathcal {T}; \mathbb {R}^{d\times d}) \;:\; \int _\Omega \tau _h\;d x=0 \text { and } \int _\Omega {{\,\textrm{tr}\,}}({{\,\textrm{rot}\,}}_{NC }\tau _h)\;d x=0 \bigg \}. \end{aligned}$$

The following corollary summarizes the resulting discrete Helmholtz decompositions for deviatoric matrices. The first decomposition has been established in [19, Thm. 3.2] for the convergence analysis of adaptive Crouzeix–Raviart FEM for the Stokes equations.

Corollary 6.4

Let \(\Omega \subseteq \mathbb {R}^d\) be a bounded and contractible polyhedral Lipschitz domain with polyhedral boundary patch \(\Gamma _{N }\). If \(d=3\), assume that each component \(\Gamma _{{N }, 1}, \dots , \Gamma _{{N },K}\) of \(\Gamma _{N }\) is simply connected. The following \(L^2\)-orthogonal decompositions hold

and the operator \({{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\) has the same kernel as \({{\,\textrm{rot}\,}}_{NC }\), in particular \({{\,\textrm{dev}\,}}{{\,\textrm{Curl}\,}}_{NC }\) is injective on \({S }^1(\mathcal {T}; \mathbb {R}^2)\cap \Sigma \) and \({FS }(\mathcal {T}; \mathbb {R}^2)\cap \Sigma \).

Proof

The decompositions follow from the combination of Theorem 6.1 with Theorems 3.3, 4.3, 5.1, and 5.5. The discrete inf-sup conditions for the Crouzeix–Raviart FEM [25] and the Fortin–Soulie FEM [29, 30] for the Stokes equations show, together with Lemma 6.2 and the decomposition

$$\begin{aligned} {{\,\textrm{rot}\,}}_{NC }v_h = {{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }v_h + {{\,\textrm{tr}\,}}({{\,\textrm{rot}\,}}_{NC }v_h)/d\; I_{d \times d} \end{aligned}$$

for \(v_h \in {\widetilde{Y}}_h^d\) in one of the spaces from the Curl/rot part, that \({{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }v_h = 0\) implies \({{\,\textrm{rot}\,}}_{NC }v_h = 0\). Hence, the kernel of \({{\,\textrm{dev}\,}}{{\,\textrm{rot}\,}}_{NC }\) equals the kernel of \({{\,\textrm{rot}\,}}_{NC }\). \(\square \)

7 Two Further Applications: Linear Elasticity and Biharmonic Equation

This section is devoted to discrete versions of the following two continuous Helmholtz decompositions.

The first one was proved in the context of linear elasticity. Assume that the polygonal boundary of the bounded Lipschitz domain \(\Omega \subseteq \mathbb {R}^2\) is partitioned into two disjoint components \(\partial \Omega = \Gamma _{D }\cup \Gamma _{N }\) such that \(\Gamma _{D }\) is connected and \(\Gamma _{D }\) and \(\Gamma _{N }\) have positive distance. Let \(\Gamma _{{N },1}, \dots , \Gamma _{{N },L}\) denote the connectivity components of \(\Gamma _{N }\). Using

$$\begin{aligned} Y \mathrel {{:}{=}} \left\{ v \in H^2(\Omega )/\mathbb {R} \;: \begin{aligned}&{{\,\text {Curl}\,}}v\vert _{\Gamma _{{N },1}} = 0 \text{ and } \\ {}&\,\forall \ell = 2, \dots , L\, \exists c_\ell \in \mathbb {R}^2,\, {{\,\text {Curl}\,}}v \vert _{\Gamma _{{N }, \ell }} = c_\ell \end{aligned} \right\} , \end{aligned}$$

the following \(L^2\)-orthogonal decomposition holds [14, Lem. 3.2]

(7.1)

where \(\varepsilon (v):=({\text {D}}\hspace{-1.66656pt}v+{\text {D}}\hspace{-1.66656pt}v^\top )/2\) denotes the linear Green strain of a displacement field \(v\in H^1_{D }(\Omega ; \mathbb {R}^2)\) and \(\text {Curl}^2\) the second-order \({{\,\textrm{Curl}\,}}\) operator from Sect. 2.2.

The second Helmholtz decomposition stems from the analysis of the biharmonic equation and reads, for bounded and simply connected polygonal Lipschitz domains \(\Omega \subseteq \mathbb {R}^2\), [7, Lem. 1]

$$\begin{aligned} L^2(\Omega ;\mathbb {R}^{2\times 2}) = \mathbb {C}\varepsilon (\nabla H^2_0(\Omega )) + {{\,\textrm{Curl}\,}}(H^1(\Omega ;\mathbb {R}^2)/\mathbb {R}^2) + L^2_0(\Omega ;\mathbb {R}^{2\times 2}_{{{\,\textrm{asym}\,}}}), \end{aligned}$$

where

$$\begin{aligned} L^2(\Omega ; \mathbb {R}^{2 \times 2}_{{{\,\textrm{asym}\,}}})&= \left\{ \rho \in L^2(\Omega ; \mathbb {R}^{2 \times 2}) \;:\; \exists q \in L^2(\Omega ),\, \rho = \begin{pmatrix} 0 &{} q \\ -q &{} 0 \end{pmatrix} \right\} ,\\ L^2_0(\Omega ; \mathbb {R}^{2 \times 2}_{{{\,\textrm{asym}\,}}})&= L^2(\Omega ; \mathbb {R}^{2 \times 2}_{{{\,\textrm{asym}\,}}}) \cap L^2_0(\Omega ; \mathbb {R}^{2 \times 2}) \end{aligned}$$

and \(\mathbb {C}\) is the elasticity tensor acting on matrices \(A\in \mathbb {R}^{2\times 2}\) as \(\mathbb {C}A=2\mu A+\lambda {{\,\textrm{tr}\,}}(A) I_{2\times 2}\) for positive Lamé parameters \(\mu \) and \(\lambda \). Taking only tensor fields with values in the symmetric matrices, one can see that this is equivalent to the Helmholtz decomposition

$$\begin{aligned} L^2(\Omega ;\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}}) = \mathbb {C}\varepsilon (\nabla H^2_0(\Omega )) + {{\,\textrm{sym}\,}}{{\,\textrm{Curl}\,}}(H^1(\Omega ;\mathbb {R}^2)/\mathbb {R}^2). \end{aligned}$$
(7.2)

Note that for \(d=2\), the operators \(\nabla \) and \({{\,\textrm{Curl}\,}}\) are the same up to a change of variables and therefore the Helmholtz decompositions (7.1) and (7.2) are the same up to the boundary configuration.

Remark 7.1

(weighted decompositions) For brevity, the following discrete decompositions are presented without any weighting. However, any \(L^2\)-orthogonal decomposition can be generalized to a weighted decomposition as follows. Let \(A \in L^\infty (\Omega ; \mathbb {R}^{d \times d}_{{{\,\textrm{sym}\,}}})\) be uniformly elliptic almost everywhere, i.e., there exists \(\alpha > 0\) such that \(\alpha \vert \xi \vert ^2 \le \xi ^\top A(x) \xi \) for every \(\xi \in \mathbb {R}^d\) and almost every \(x \in \Omega \). Then, the tensor field A leads to the weighted decomposition

These decompositions are orthogonal with respect to the weighted scalar product \((\cdot , A^{-1}\,\cdot \,)_{L^2(\Omega )}\). The elasticity tensor in the above Helmholtz decomposition can be understood in this way.

The ideas from [14, Lem. 3.2] generalize the discrete Helmholtz decompositions of Theorems 3.3, 4.1, 5.1, and 5.5 to the situation of linear elasticity and lead to the following discrete Helmholtz decompositions. The first decomposition of the following theorem has also been established by Falk and Morley in [28] in the context of linear elasticity. If \(d=3\), recall the definition \( Y_{NC }(\mathcal {T};\mathbb {R}^{3\times 3}) \mathrel {{:}{=}}N ^1(\mathcal {T}; \mathbb {R}^{3\times 3}) + \mathcal {B}^{NC }(\mathcal {T}; \mathbb {R}^{3\times 3}) \) from (6.5).

Theorem 7.2

Let \(\Omega \subseteq \mathbb {R}^d\) be a bounded and contractible polyhedral Lipschitz domain. Assume that its boundary is partitioned into two disjoint connected components \(\partial \Omega = \Gamma _{D }\cup \Gamma _{N }\). The following \(L^2\)-orthogonal decomposition holds

(7.3)

and, if \(\Gamma _{N }=\emptyset \),

Proof

The first decomposition has been proved in [28, Thm. 3.1] and, therefore, the proof given here is carried out for the second decomposition following the ideas of [14, Lem. 3.2]. The proof applies analogously to the remaining two decompositions with the discrete Helmholtz decompositions from Theorems 4.1 and 5.5 replacing the one from Theorem 5.1.

Step 1 (orthogonality). The orthogonality follows from the self-adjointness of \({{\,\textrm{sym}\,}}\) and the orthogonality of Theorem 5.1: Given \(v_{FS }\in {FS }_0(\mathcal {T};\mathbb {R}^2)\) and \(\beta _{FS }\in {FS }(\mathcal {T};\mathbb {R}^2)\) with \({{\,\textrm{Curl}\,}}_{NC }\beta _{FS }\in P_1(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}})\), it follows

$$\begin{aligned} \int _\Omega \varepsilon _{NC }(v_{FS }) : {{\,\textrm{Curl}\,}}_{NC }\beta _{FS }\;d x= \int _\Omega {\text {D}}\hspace{-1.66656pt}_{NC }v_{FS }: {{\,\textrm{Curl}\,}}_{NC }\beta _{FS }\;d x= 0. \end{aligned}$$

Step 2 (decomposition).   Given \(p_h\in P_1(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}})\), let \(u_{FS }\in {FS }_0(\mathcal {T};\mathbb {R}^2)\) solve

$$\begin{aligned} \int _\Omega \varepsilon _{NC }(u_{FS }):\varepsilon _{NC }(v_{FS })\;d x= \int _\Omega p_h:\varepsilon _{NC }(v_{FS })\;d x\quad \text {for all }v_{FS }\in {FS }_0(\mathcal {T};\mathbb {R}^2). \end{aligned}$$
(7.4)

For \(q_h:=p_h-\varepsilon _{NC }(u_{FS })\), the discrete Helmholtz decomposition from Theorem 5.1 guarantees the existence of \(w_{FS }\in {FS }_0(\mathcal {T};\mathbb {R}^2)\) and \(\alpha _{FS }\in {FS }(\mathcal {T};\mathbb {R}^{2})\) such that

$$\begin{aligned} q_h = {\text {D}}\hspace{-1.66656pt}_{NC }w_{FS }+ {{\,\textrm{Curl}\,}}_{NC }\alpha _{FS }. \end{aligned}$$

Using \(v_{FS }=w_{FS }\) as a test function in (7.4) and the symmetry of \(q_h\), it follows that

$$\begin{aligned} 0 = \int _\Omega q_h:\varepsilon _{NC }(w_{FS })\;d x&= \int _\Omega q_h:{\text {D}}\hspace{-1.66656pt}_{NC }w_{FS }\;d x\\&= \Vert {\text {D}}\hspace{-1.66656pt}_{NC }w_{FS }\Vert _{L^2(\Omega )}^2 + \int _\Omega {{\,\textrm{Curl}\,}}_{NC }\alpha _{FS }: {\text {D}}\hspace{-1.66656pt}_{NC }w_{FS }\;d x. \end{aligned}$$

The orthogonality of Theorem 5.1 proves that the last term vanishes and, therefore, \(w_{FS }=0\). This proves \(p_h= \varepsilon _{NC }(u_{FS })+{{\,\textrm{Curl}\,}}_{NC }\alpha _{FS }\) and the symmetry of \({{\,\textrm{Curl}\,}}_{NC }\alpha _{FS }= p_h- \varepsilon _{NC }(u_{FS }) \in P_1(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}})\) concludes the proof. \(\square \)

Remark 7.3

Another discrete decomposition in the context of linear elasticity has been established by Carstensen and Schedensack in [21, Thm. 3.1] employing the space of Kouhia-Stenberg functions defined by \({KS }(\mathcal {T}) \mathrel {{:}{=}}{S }^1(\mathcal {T}) \times {CR }^1(\mathcal {T})\). Analogous definitions apply to the space including partial homogeneous boundary conditions \({KS }_{D }(\mathcal {T})\). Let \(\Omega \subseteq \mathbb {R}^2\) be a bounded polygonal Lipschitz domain with boundary partitioned into two disjoint components \(\partial \Omega = \Gamma _{D }\cup \Gamma _{N }\) such that \(\Gamma _{D }\) belongs to the boundary of the unbounded connectivity component of \(\mathbb {R}^2 \setminus {{\overline{\Omega }}}\), and let \(\Gamma _{{N },1}, \dots , \Gamma _{{N },L}\) denote the connectivity components of \(\Gamma _{N }\). For

$$\begin{aligned} {CR }^1_{{N }, L}(\mathcal {T})&\mathrel {{:}{=}}\left\{ v_{CR }\in {CR }^1(\mathcal {T}) \;:\; \begin{aligned}&\forall \ell = 1,\dots , L \; \exists c_\ell \in \mathbb {R}, \, \\&\forall E \in \mathcal {F}(\Gamma _{{N }, \ell }),\, v_{CR }({{\,\textrm{mid}\,}}(E)) = c_\ell \end{aligned} \right\} \\ {S }^1_{{N }, L}(\mathcal {T})&\mathrel {{:}{=}}\big \{ v_h \in {S }^1(\mathcal {T}) \;:\; \forall \ell = 1, \dots , L,\, v_h \text { is constant on } \Gamma _{{N }, \ell } \big \}, \end{aligned}$$

set \( {KS }^*_{N }(\mathcal {T}) \mathrel {{:}{=}}{CR }^1_{{N }, L}(\mathcal {T}) \times {S }^1_{{N }, L}(\mathcal {T}) \). Then [21, Thm. 3.1] proves the \(L^2\)-orthogonal decomposition

Similar as for the linear elasticity, the discrete Helmholtz decompositions from Theorems 3.3, 4.1, 5.1, and 5.5 can be generalized to the situation of the biharmonic equation. Recall the definitions of the Morley finite element spaces \({M }_0(\mathcal {T})\) and \({M }^3_0(\mathcal {T})\) from Sect. 2 and recall \( Y_{NC }(\mathcal {T};\mathbb {R}^{3\times 3}) \mathrel {{:}{=}}N ^1(\mathcal {T};\mathbb {R}^{3\times 3}) + \mathcal {B}^{NC }(\mathcal {T};\mathbb {R}^{3\times 3}) \). For \(d=2\), define

$$\begin{aligned} {S }^1(\mathcal {T}; \mathbb {R}^2) / \mathbb {R}^3&\mathrel {{:}{=}}\left\{ v_h\in {S }^1(\mathcal {T}; \mathbb {R}^2) \;:\; \int _\Omega v_h\,dx=0\text { and } \int _\Omega {{\,\textrm{div}\,}}v_h\,dx =0 \right\} ,\\ {FS }(\mathcal {T}; \mathbb {R}^2) / \mathbb {R}^3&\mathrel {{:}{=}}\left\{ \beta _{FS }\in {FS }(\mathcal {T}; \mathbb {R}^2) \;:\; \int _\Omega \beta _{FS }\;d x= 0 \text { and } \int _\Omega {{\,\textrm{div}\,}}_{NC }\beta _{FS }\;d x= 0 \right\} . \end{aligned}$$

The first decomposition of the following theorem is proved in [15, Thm. 3.1, Cor. 3.4-\(-\)3.5] and [31, Thm. 4.5].

Theorem 7.4

Let \(\Omega \subseteq \mathbb {R}^d\) be a bounded and contractible polyhedral Lipschitz domain. The following \(L^2\)-orthogonal decompositions hold

Remark 7.5

In 2D, the gradient and the rotation are the same up to a change of coordinates and, therefore, the first decomposition in Theorem 7.4 is the same as (7.3).

Remark 7.6

A generalization of the Morley finite element space to cubic polynomials in 3D is not known so far. Therefore, the characterization of \({\text {D}}\hspace{-1.66656pt}_{NC }{FS }_0(\mathcal {T};\mathbb {R}^3) \cap P_1(\mathcal {T};\mathbb {R}^{3\times 3}_{{{\,\textrm{sym}\,}}})\) as second derivatives of nonconforming functions is left for future research.

Remark 7.7

Let \(e_1,e_2\) denote the first and second standard basis vectors of \(\mathbb {R}^2\). Define the space of rigid body motions

$$\begin{aligned} \textrm{RM}(\Omega ) \mathrel {{:}{=}}{{\,\textrm{span}\,}}\{ e_1, e_2, (x,y)^\top \}. \end{aligned}$$

Then \({FS }(\mathcal {T}; \mathbb {R}^2)/\mathbb {R}^3 = {FS }(\mathcal {T}; \mathbb {R}^2) / \textrm{RM}(\Omega )\).

Remark 7.8

There are no non-trivial finite element spaces \(X_{h,k} \subseteq H^2_0(\Omega )\cap P_k(\mathcal {T})\) with \(k=2,3\) and, therefore, there exist no discrete Helmholtz decompositions of the form

with conforming spaces \(X_{h,k}\subseteq H^2_0(\Omega )\).

Remark 7.9

The decompositions of Theorem 7.4 can be easily generalized to decompositions of matrices without the symmetry condition in the form

for the corresponding spaces \({M }\) and \(Y_{NC }\) for \(d=2,3\) and \(k=1,2\) from Theorem 7.4, see also [15, Thm. 3.1, Cor. 3.4\(-\)3.5] and [31, Thm. 4.5] with \(P_k(\mathcal {T};\mathbb {R}^{d\times d}_{{{\,\textrm{asym}\,}}})=P_k(\mathcal {T};\mathbb {R}^{d\times d}) \cap L^2(\Omega ;\mathbb {R}^{d\times d}_{{{\,\textrm{asym}\,}}})\). In the latter decomposition, the spaces \({\text {D}}\hspace{-1.66656pt}^2_{NC }{M }\) and \({{\,\textrm{rot}\,}}_{NC }Y_{NC }\) and the spaces \({\text {D}}\hspace{-1.66656pt}^2_{NC }{M }\) and \(P_k(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{asym}\,}}})\) are pairwise orthogonal.

Remark 7.10

The work [31, Thm. 4.5] generalizes the first decomposition of Theorem 7.4 to the relevant boundary conditions for Kirchhoff plates, i.e., the boundary can be decomposed into a clamped, a simply supported, and a free boundary. The corresponding boundary conditions in the space \(S^1(\mathcal {T};\mathbb {R}^2)/\mathbb {R}^3\) are quite technical and we therefore refer to [31, Thm. 4.5] for details.

Proof of Theorem 7.4

The first decomposition is proved in the publications [15, Thm. 3.1, Cor. 3.4\(-\)3.5] and [31, Thm. 4.5]. The following proof focuses on the other three decompositions. It is divided into four steps.

Step 1 (orthogonality). The proof follows the lines of the proof of the orthogonality in Theorem 7.2 together with \(\nabla _{NC }{M }^3_0(\mathcal {T})\subseteq {FS }_0(\mathcal {T}; \mathbb {R}^2)\) [54, Lem. 2.8] and \(\nabla _{NC }M _0(\mathcal {T})\subseteq {CR }^1_0(\mathcal {T};\mathbb {R}^3)\) [42, Lem. 1].

Step 2 (auxiliary decompositions). Interchanging the gradient and the rotational part, the arguments from Step 2 in the proof of Theorem 7.2 lead to the decompositions

Note that the proof of Theorem 7.2 does not require uniqueness of the solution \(u_{Nd }\in N ^0(\mathcal {T};\mathbb {R}^{3\times 3})\) (resp. \(u_{Nd }\in Y_{NC }(\mathcal {T};\mathbb {R}^{3\times 3})\)) to

$$\begin{aligned} \int _\Omega {{\,\textrm{sym}\,}}{{\,\textrm{rot}\,}}_{NC }u_{Nd }:{{\,\textrm{sym}\,}}{{\,\textrm{rot}\,}}_{NC }v_{Nd }\;d x= \int _\Omega p_h :{{\,\textrm{sym}\,}}{{\,\textrm{rot}\,}}_{NC }v_{Nd }\;d x\end{aligned}$$
(7.5)

for all \(v_{Nd }\in N ^0(\mathcal {T};\mathbb {R}^{3\times 3})\) (resp. \(u_{Nd }\in Y_{NC }(\mathcal {T};\mathbb {R}^{3\times 3})\)).

Step 3 (characterization of \({\text {D}}\hspace{-1.66656pt}_{NC }{FS }_0(\mathcal {T};\mathbb {R}^2)\cap P_1(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}})\)). The inclusion

$$\begin{aligned} {\text {D}}\hspace{-1.66656pt}^2_{NC }{M }_0^3(\mathcal {T}) \subseteq ({\text {D}}\hspace{-1.66656pt}_{NC }{FS }_0(\mathcal {T};\mathbb {R}^2)) \cap P_{1}(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}}) \end{aligned}$$
(7.6)

follows from [54, Lem. 2.8]. Since the asymmetric part of \({\text{ D }}\hspace{-1.66656pt}_{NC }\) contains the same entries as \({{\,\textrm{curl}\,}}_{NC }\), it holds

$$\begin{aligned} {\text {D}}\hspace{-1.66656pt}_{NC }{FS }_0(\mathcal {T}; \mathbb {R}^2) \cap P_{1}(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}}) = {\text {D}}\hspace{-1.66656pt}_{NC }\{w_{FS }\in {FS }_0(\mathcal {T}; \mathbb {R}^2) : {{\,\textrm{curl}\,}}_{NC }w_{FS }=0\}. \end{aligned}$$

The differential operators \({{\,\textrm{curl}\,}}\) and \({{\,\textrm{div}\,}}\) are the same in 2D up to a change of coordinates, and therefore, \({{\,\textrm{curl}\,}}_{NC }:{FS }_0(\mathcal {T};\mathbb {R}^2)\rightarrow P_1(\mathcal {T})/\mathbb {R}\) is surjective [30, Eqn. (42)]. The decomposition (2.21) and the Euler formulas (2.3)–(2.4) therefore prove

$$\begin{aligned} \begin{aligned}&\hspace{-2em} \dim ({\text {D}}\hspace{-1.66656pt}_{NC }{FS }_0(\mathcal {T};\mathbb {R}^2) \cap P_1(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}}))\\&= 2\#\mathcal {T}+ 2\#\mathcal {E}(\Omega )+2\#\mathcal {V}(\Omega ) - (3\#T-1)\\&= \#\mathcal {E}(\Omega )+3\#\mathcal {V}(\Omega ). \end{aligned} \end{aligned}$$
(7.7)

Since \(\nabla _{NC }{M }^3_0(\mathcal {T}) \subseteq {FS }_0(\mathcal {T}; \mathbb {R}^2)\) [54, Lem. 2.8], the continuity and boundary restrictions in the definition of \({M }_0^3(\mathcal {T})\) prove that \({\text {D}}\hspace{-1.66656pt}_{NC }^2\) has the trivial kernel on \({M }_0^3(\mathcal {T})\). This and [54, Lem. 4.9] show that (7.7) equals the dimension of \({\text {D}}\hspace{-1.66656pt}^2 {M }_0^3(\mathcal {T})\). Hence,

$$\begin{aligned} \nabla _{NC }{FS }_0(\mathcal {T};\mathbb {R}^2)\cap P_1(\mathcal {T};\mathbb {R}^{2\times 2}_{{{\,\textrm{sym}\,}}}) = {\text {D}}\hspace{-1.66656pt}^2_{NC }{M }_0^3(\mathcal {T}), \end{aligned}$$

which concludes the proof of the second decomposition of Theorem 7.4.

Step 4 (characterization of \({\text {D}}\hspace{-1.66656pt}_{NC }{CR }^1_0(\mathcal {T}; \mathbb {R}^3) \cap P_0(\mathcal {T};\mathbb {R}^{3\times 3}_{{{\,\textrm{sym}\,}}})\)). The inclusion

$$\begin{aligned} {\text {D}}\hspace{-1.66656pt}^2_{NC }{M }_0(\mathcal {T}) \subseteq ({\text {D}}\hspace{-1.66656pt}_{NC }{CR }^1_0(\mathcal {T};\mathbb {R}^3)) \cap P_0(\mathcal {T};\mathbb {R}^{3\times 3}_{{{\,\textrm{sym}\,}}}) \end{aligned}$$
(7.8)

follows from an integration by parts on the faces [42, Lem. 1]. Since the asymmetric part of \({\text {D}}\hspace{-1.66656pt}_{NC }\) contains the same entries as \({{\,\textrm{rot}\,}}_{NC }\), it holds

$$\begin{aligned} {\text {D}}\hspace{-1.66656pt}_{NC }{CR }^1_0(\mathcal {T}; \mathbb {R}^3) \cap P_0(\mathcal {T};\mathbb {R}^{3\times 3}_{{{\,\textrm{sym}\,}}}) = {\text {D}}\hspace{-1.66656pt}_{NC }\{w_{CR }\in {CR }^1_0(\mathcal {T}; \mathbb {R}^3) : {{\,\textrm{rot}\,}}_{NC }w_{CR }=0\}. \end{aligned}$$

The discrete Helmholtz decomposition of (4.3) shows that the dimension of the range of \({{\,\textrm{rot}\,}}_{NC }:{CR }^1_0(\mathcal {T};\mathbb {R}^3)\rightarrow P_0(\mathcal {T};\mathbb {R}^3)\) equals \(3\#\mathcal {T}-(\#\mathcal {V}-1)\). This and the Euler formulas (2.5), (2.2), and (2.7) from Lemma 2.2 lead to

$$\begin{aligned}&\!\! \dim (\ker ({{\,\textrm{rot}\,}}_{NC }\vert _{{CR }^1_0(\mathcal {T};\mathbb {R}^3)}))\\&= 3\#\mathcal {F}(\Omega ) - (3\#\mathcal {T}- \#\mathcal {V}+ 1) = -2\#\mathcal {T}+ 2\#\mathcal {F}(\Omega ) - \#\mathcal {F}(\partial \Omega ) + \#\mathcal {E}\\&= \#\mathcal {F}(\Omega ) + \#\mathcal {E}(\Omega ) + \#\mathcal {E}(\partial \Omega ) -(3/2) \#\mathcal {F}(\partial \Omega ) = \#\mathcal {F}(\Omega )+\#\mathcal {E}(\Omega ) = \dim ({M }_0(\mathcal {T})). \end{aligned}$$

This and the inclusion (7.8) prove \(({\text {D}}\hspace{-1.66656pt}_{NC }{CR }^1_0(\mathcal {T};\mathbb {R}^3)) \cap P_0(\mathcal {T};\mathbb {R}^{3\times 3}_{{{\,\textrm{sym}\,}}}) = {\text {D}}\hspace{-1.66656pt}^2_{NC }{M }_0(\mathcal {T})\) and conclude the proof.\(\square \)