1 Introduction

In [19], we introduced the TDNNS method for treating the problem of linear elasticity. The TDNNS method is a finite element method that uses tangential-continuous elements for the displacements and symmetric normal-normal continuous finite elements for the stresses. We showed that the TDNNS method is capable of overcoming shear locking [20] and volume locking [22].

However, the TDNNS method is slightly nonconforming, as the stress finite elements are not in the infinite-dimensional distributional space \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\), which was introduced in [19]. The analysis of TDNNS finite elements provided in our former work [19, 20] is based on discrete, broken norms rather than the natural norms of the infinite-dimensional spaces \({{\mathbf {H}}}(\mathbf {curl})\) and \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\). In the present paper, we want to provide an analysis based on the natural norms of the Sobolev spaces. This analysis takes the fact that the stress space is nonconforming into account, and leads to optimal order a-priori error estimates.

The necessity of this new framework becomes evident in the analysis of problems in structural mechanics. In [21], the authors use the new technique to analyze the Reissner–Mindlin plate problem. There, we present finite elements based on the TDNNS formulation, which can be seen as an extension of the Hellan–Herrmann–Johnson formulation [9, 10, 13] to moderately thick plates. In the Reissner–Mindlin plate problem, the unknowns are the deflection and the rotation of the cross-section. As the plate approaches the limit of zero thickness, the rotation tends to the gradient of the deflection. One speaks of the Kirchhoff constraint, which leads to locking if the gradient of the deflection is not contained in the rotation space. However, this inclusion is satisfied (also for the discrete spaces) if one searches for the deflection in \(H^1\) and the cross-section rotation in \(H(\mathbf {curl})\). Compared to the TDNNS formulation, the rotation takes the role of the displacement, while the symmetric stress tensor in \(H({\text {div}}\,{\text {div}})\) is replaced by the tensor of bending and twisting moments.

1.1 Notation

We shortly present the notation used throughout the paper: Vectors shall be denoted as boldface (e.g. \({\mathbf {u}}\)), while tensors are boldface and underlined (e.g. \(\underline{\varvec{\sigma }}\)). On the boundary of some domain A, we use the outer normal vector \({\mathbf {n}}\). For a vector field \({\mathbf {u}}\), \(u_n = {\mathbf {u}}\cdot {\mathbf {n}}\) is the normal component, and \({\mathbf {u}}_{{\mathbf {t}}}= {\mathbf {u}}- u_n {\mathbf {n}}\) is the tangential component. For a tensor field \(\underline{\varvec{\sigma }}\), let \(\varvec{\sigma }_{{\mathbf {n}}} = \underline{\varvec{\sigma }}{\mathbf {n}}\) be the normal component, which is further split into its normal-normal component \(\sigma _{nn} = (\underline{\varvec{\sigma }}{\mathbf {n}}) \cdot {\mathbf {n}}\) and its normal-tangential component \(\varvec{\sigma }_{{\mathbf {n}}{{\mathbf {t}}}} = \varvec{\sigma }_{\mathbf {n}}- \sigma _{nn} {\mathbf {n}}\).

Gradient, curl and divergence operators \(\nabla \), \(\mathbf {curl}\) and \({\text {div}}\) operators are defined in the usual way. The gradient \(\underline{\nabla }\) of a vector field is a tensor containing in each row the gradient of the corresponding vector component. The divergence \(\mathbf {{div}}\) of a tensor field is a vector, where each component is the divergence of the corresponding row of the tensor.

On some domain A, we use the Lebesgue space \(L^2(A)\) and the standard Sobolev space \(H^1(A)\) of weakly differentiable \(L^2\) functions with gradient in \(L^2(A)\). To indicate vector or tensor valued spaces, we use \({{\mathbf {L}}}^2(A)\), \({{\mathbf {H}}}^1(A)\) and \({\underline{{\mathbf {L}}}}^2(A), {\underline{{\mathbf {H}}}}^1(A)\), respectively. The space of tensor-valued symmetric functions with components in \(L^2(A)\) is denoted as \({\underline{{\mathbf {L}}}}^2_{sym}(A)\). The space of smooth functions on the closure \({\bar{A}}\) is denoted as \(C^\infty ({\bar{A}})\), and \(C^\infty _{0,{\varGamma }}({\bar{A}})\) is the subspace where all derivatives vanish on the boundary part \({\varGamma }\) of A. If the domain of interest \({\varOmega }\) is concerned, it may be omitted, writing e.g. \(H^1\) for \(H^1({\varOmega })\).

On the boundary of a domain we use differential operators and spaces as introduced in the work of Buffa and Ciarlet [5, 6]. For the exact definitions, we refer to their work. We will mostly need the rather well-known trace space \(H^{1/2}(\partial A)\) and the spaces \(H^{1/2}({\varGamma }), H^{1/2}_{00}({\varGamma })\) on a part \({\varGamma }\) of the boundary, where the latter can be extended by zero to the whole boundary space \(H^{1/2}(\partial A)\).

1.2 Problem geometry

Throughout the paper, we assume the domain of interest \({\varOmega } \subset {\mathbb {R}}^3\) to be a bounded, connected, polyhedral domain with Lipschitz boundary \(\partial {\varOmega }\). Note that all results can directly be transferred to the two-dimensional case.

The (closed) polygonal faces of the polyhedral domain \({\varOmega }\) shall be denoted by \({\varGamma }_i\) with \(i \in {\mathcal {I}}\) and \({\mathcal {I}}\) a suitable index set. Different boundary conditions will be prescribed different parts of the boundary \(\partial {\varOmega }\). To this end, the boundary is divided into two closed parts \({\varGamma }_D\) and \({\varGamma }_N = \partial {\varOmega } \backslash \mathrm {int}({\varGamma }_D)\). The boundary part \({\varGamma }_D\), where the displacement will be prescribed (Dirichlet boundary condition), shall be non-trivial, whereas the boundary part \({\varGamma }_N\), where surface tractions are given (Neumann boundary condition), may vanish.

We assume that both \({\varGamma }_D\) and \({\varGamma }_N\) are aligned with the boundary faces \({\varGamma }_i\), such that they each are a union of boundary faces,

$$\begin{aligned} {\varGamma }_D = \bigcup _{i \in {\mathcal {I}}_D} {\varGamma }_i,\qquad {\varGamma }_N = \bigcup _{i \in {\mathcal {I}}_N} {\varGamma }_i. \end{aligned}$$
(1)

In accordance with [12] we assume that for each connected component of the Dirichlet boundary \({\varGamma }_{D,i}\) we can find an open Lipschitz domain \({\varOmega }_{D,i} \subset {\mathbb {R}}^3\) such that

$$\begin{aligned} {\overline{{\varOmega }}}_{D,i} \cap {\overline{{\varOmega }}} = {\varGamma }_{D,i},\qquad {\varOmega }_{D,i} \cap {\varOmega } = \emptyset . \end{aligned}$$
(2)

Moreover, \({\varOmega }_{D,i}\) and \({\varOmega }_{D,j}\) have positive distance for \(i\not = j\), and the interior of \({\overline{{\varOmega }}} \cup \bigcup {\overline{{\varOmega }}}_{D,i}\) is Lipschitz.

1.3 Linear elasticity

Let \({\mathbf {u}}: {\varOmega } \rightarrow {\mathbb {R}}^3\) be the displacement vector. In linear elasticity, we use the linearized strain tensor

$$\begin{aligned} \underline{\varvec{\varepsilon }}({\mathbf {u}}) = \frac{1}{2} \left( \underline{\nabla }{\mathbf {u}}+ \underline{\nabla }{\mathbf {u}}^T\right) . \end{aligned}$$
(3)

We are interested in finding displacement vector \({\mathbf {u}}\) and symmetric stress tensor \(\underline{\varvec{\sigma }}\) satisfying

$$\begin{aligned} {\underline{{\mathbf {C}}}^{-1}}\underline{\varvec{\sigma }}&= \underline{\varvec{\varepsilon }}({\mathbf {u}})&\mathrm {in}\ {\varOmega }, \end{aligned}$$
(4)
$$\begin{aligned} -\mathbf {{div}}\underline{\varvec{\sigma }}&= {\mathbf {f}}&\mathrm {in}\ {\varOmega }. \end{aligned}$$
(5)

Hooke’s law (4) connects strain and stress tensor by the compliance tensor \({\underline{{\mathbf {C}}}^{-1}}\), which is the inverse of the standard elasticity tensor \(\underline{{\mathbf {C}}}\) depending on Young’s modulus E and the Poisson ratio \(\nu \). We assume that Young’s modulus E is bounded, and the Poisson ratio \(\nu \) is bounded away from 1/2, such that both \(\underline{{\mathbf {C}}}\) and \({\underline{{\mathbf {C}}}^{-1}}\) exist and lie in \({\underline{{\mathbf {L}}}}^{\infty }({\varOmega })\). Equation (5) is the equilibrium condition.

We assume that all boundary conditions are prescribed on the boundary parts \({\varGamma }_D\) and \({\varGamma }_N\) introduced above. The displacement shall be given on \({\varGamma }_D\), while tractions are given on \({\varGamma }_N\),

$$\begin{aligned} {\mathbf {u}}&= {\mathbf {u}}_D&\mathrm {on}\ {\varGamma }_D, \end{aligned}$$
(6)
$$\begin{aligned} \varvec{\sigma }_{\mathbf {n}}&= {\mathbf {t}}_N&\mathrm {on}\ {\varGamma }_N. \end{aligned}$$
(7)

1.4 Motivation of the TDNNS method

Two different variational formulations are widely known for the partial differential equations (4), (5). Most standard finite element methods rely on a primal formulation, where the stress tensor \(\underline{\varvec{\sigma }}\) is eliminated. In this formulation, the displacement boundary condition on \({\varGamma }_D\) is essential, and usually treated by a homogenization approach. To this end, it is necessary to have the existence of an extension \({{\tilde{{\mathbf {u}}}}}_D \in {{\mathbf {H}}}^1({\varOmega })\) of the boundary displacement \({\mathbf {u}}_D\) to the whole domain \({\varOmega }\). Then one searches for \({\mathbf {u}}\in {{\tilde{{\mathbf {u}}}}}_D + {{\mathbf {H}}}^1_{0,{\varGamma }_D}({\varOmega })\) with the space \({{\mathbf {H}}}^1_{0,{\varGamma }_D}({\varOmega }) = \{ {\mathbf {v}}\in {{\mathbf {H}}}^1({\varOmega }): {\mathbf {v}}= 0\ \text{ on }\ {\varGamma }_D\}\) satisfying the homogeneous displacement boundary condition,

$$\begin{aligned} \int _{\varOmega } \underline{{\mathbf {C}}}\underline{\varvec{\varepsilon }}({\mathbf {u}}) : \underline{\varvec{\varepsilon }}({\mathbf {v}}) \, d{\mathbf {x}}= \int _{\varOmega } {\mathbf {f}}\cdot {\mathbf {v}}\, d{\mathbf {x}}+ \int _{{\varGamma }_N} {\mathbf {t}}_N \cdot {\mathbf {v}}\,ds\qquad \forall {\mathbf {v}}\in {{\mathbf {H}}}^1_{0,{\varGamma }_D}({\varOmega }). \end{aligned}$$
(8)

To be conforming, the displacement finite element space has to be continuous.

On the other hand, a dual Hellinger-Reissner formulation can be obtained from system (4), (5). Integration by parts puts all continuity assumptions to the stress tensor. It has to allow for a weak divergence, while only \({{\mathbf {L}}}^2\) regularity is required for \({\mathbf {u}}\). In this case, the traction boundary conditions are essential. One needs an extension of the surface tractions \({\mathbf {t}}_N\) to the domain, a tensor field \({{\tilde{\underline{\varvec{\sigma }}}}}_N \in {\underline{{\mathbf {H}}}}_{sym}(\mathbf {{div}})\) with \({\tilde{\varvec{\sigma }}}_{N,{\mathbf {n}}} = {\mathbf {t}}_N\) on \({\varGamma }_N\). Inhomogeneous displacement boundary conditions can be included in weak form into the right hand side of equation (9).

One searches for \(\underline{\varvec{\sigma }}\in {\tilde{\underline{\varvec{\sigma }}}}_N + {\underline{{\mathbf {H}}}}_{sym,0,{\varGamma }_N}(\mathbf {{div}})\) with the space \( {\underline{{\mathbf {H}}}}^{sym}_{0,{\varGamma }_N}(\mathbf {{div}}) = \{\underline{\varvec{\sigma }}\in {\underline{{\mathbf {L}}}}^2_{sym}({\varOmega }): \mathbf {{div}}\underline{\varvec{\sigma }}\in {{\mathbf {L}}}^2({\varOmega }), \varvec{\sigma }_{\mathbf {n}}= 0 \ \text{ on }\ {\varGamma }_N\}\) satisfying the homogeneous traction boundary condition and \({\mathbf {u}}\in {{\mathbf {L}}}^2({\varOmega })\) such that

$$\begin{aligned} \int _{\varOmega } {\underline{{\mathbf {C}}}^{-1}}\underline{\varvec{\sigma }}: \underline{\varvec{\tau }}\, d{\mathbf {x}}+ \int _{\varOmega } \mathbf {{div}}\underline{\varvec{\tau }}\cdot {\mathbf {u}}\, d{\mathbf {x}}&= \int _{{\varGamma }_D} {\mathbf {u}}_D \cdot \varvec{\tau }_{\mathbf {n}}\,ds&\forall \underline{\varvec{\tau }}\in {\underline{{\mathbf {H}}}}^{sym}_{0,{\varGamma }_N}(\mathbf {{div}}), \end{aligned}$$
(9)
$$\begin{aligned} \int _{\varOmega } \mathbf {{div}}(\underline{\varvec{\sigma }}) \cdot {\mathbf {v}}\, d{\mathbf {x}}&= -\int _{\varOmega } {\mathbf {f}}\cdot {\mathbf {v}}\, d{\mathbf {x}}&\forall {\mathbf {v}}\in {{\mathbf {L}}}^2({\varOmega }). \end{aligned}$$
(10)

To define a conforming finite element method, one has to provide stress elements which are symmetric and normal continuous. Such elements have been found [1,2,3], but come only at high computational costs, as they involve at least 24 degrees of freedom per element in two dimensions or 162 in three dimensions.

The TDNNS formulation is in between the primal and the dual concept. We want to design a formulation, where the tangential component \({\mathbf {u}}_{{\mathbf {t}}}\) of the displacement and the normal component \(\sigma _{nn}\) of the normal stress vector are essential boundary conditions on the respective boundary parts \({\varGamma }_D\) and \({\varGamma }_N\). In other words, the displacement space has to allow for the definition of a tangential trace, while the stress space allows a normal-normal trace. It will turn out that the displacement space is the space \({{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) satisfying zero tangential boundary conditions on \({\varGamma }_D\).

Below, we formally write the variational formulation. It is of the standard mixed form treated in [4]. We use the stress space \(\underline{\varvec{{\Sigma }}}\) and displacement space \({\mathbf {V}}\), which will be rigorously defined in Sect. 2. Currently, we only state that \({\mathbf {v}}\in {\mathbf {V}}\) implies \({\mathbf {v}}_{{\mathbf {t}}}= 0\) on \({\varGamma }_D\) and \(\underline{\varvec{\tau }}\in \underline{\varvec{{\Sigma }}}\) implies \(\tau _{nn} = 0\) on \({\varGamma }_N\). Accordingly, we need two extensions, one for the tangential component of the displacement and one for the normal-normal component of the stress: on the Dirichlet boundary \({\varGamma }_D\) some \({\tilde{{\mathbf {u}}}}_{D}\) with \({\tilde{{\mathbf {u}}}}_{D,{{\mathbf {t}}}} = {\mathbf {u}}_{D,{{\mathbf {t}}}}\) and on the Neumann boundary \({\varGamma }_N\) some \({\tilde{\underline{\varvec{\sigma }}}}_N\) with \({\tilde{\sigma }}_{N,nn} = t_{N,n}\). We want to find \({\mathbf {u}}\) in \({\tilde{{\mathbf {u}}}}_D + {\mathbf {V}}\) and \(\underline{\varvec{\sigma }}\in {\tilde{\underline{\varvec{\sigma }}}}_N + \underline{\varvec{{\Sigma }}}\) such that

$$\begin{aligned} a(\underline{\varvec{\sigma }},\underline{\varvec{\tau }}) + b(\underline{\varvec{\tau }}, {\mathbf {u}})&= \int _{{\varGamma }_D} u_{D,n} \tau _{nn}\,ds&\forall \underline{\varvec{\tau }}\in \underline{\varvec{{\Sigma }}}, \end{aligned}$$
(11)
$$\begin{aligned} b(\underline{\varvec{\sigma }}, {\mathbf {v}})&= -\int _{\varOmega } {\mathbf {f}}\cdot {\mathbf {v}}\, d{\mathbf {x}}- \int _{{\varGamma }_N} {\mathbf {t}}_{N,{{\mathbf {t}}}} \cdot {\mathbf {v}}_{{\mathbf {t}}}\,ds&\forall {\mathbf {v}}\in {\mathbf {V}}. \end{aligned}$$
(12)

For smooth functions, the bilinear forms \(a(\cdot ,\cdot )\) and \(b(\cdot ,\cdot )\) are given by

$$\begin{aligned} a(\underline{\varvec{\sigma }},\underline{\varvec{\tau }})&= \int _{\varOmega } {\underline{{\mathbf {C}}}^{-1}}\underline{\varvec{\sigma }}: \underline{\varvec{\tau }}\, d{\mathbf {x}}, \end{aligned}$$
(13)
$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathbf {v}})&= - \int _{{\varOmega }} \underline{\varvec{\varepsilon }}({\mathbf {v}}) : \underline{\varvec{\tau }}\, d{\mathbf {x}}+ \int _{\partial {\varOmega }} \tau _{nn} v_n\, ds. \end{aligned}$$
(14)
$$\begin{aligned}&= \int _{{\varOmega }} \mathbf {{div}}\underline{\varvec{\tau }}\cdot vv\, d{\mathbf {x}}- \int _{\partial {\varOmega }} \varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}}{\mathbf {v}}_{{\mathbf {t}}}\, ds. \end{aligned}$$
(15)

In Sect. 2 we will define the function spaces and give a precise meaning to the arising integrals and bilinear forms in a distributional setting. We will determine in which way the boundary terms have to be understood. We will see that the bilinear form \(b(\cdot ,\cdot )\) corresponds to a distributional divergence operator.

2 The variational formulation of the TDNNS method

We shall specify the spaces, in which the variational formulation (11)–(12) is posed. While the displacement space is well-known, the stress space was introduced in [19] and shall be analysed in detail in this work.

2.1 The displacement space \({{\mathbf {H}}}(\mathbf {curl})\)

We use the space

$$\begin{aligned} {{\mathbf {H}}}(\mathbf {curl}) = \left\{ {\mathbf {v}}\in {{\mathbf {L}}}^2({\varOmega }): \mathbf {curl}{\mathbf {v}}\in {{\mathbf {L}}}^2({\varOmega })\right\} . \end{aligned}$$
(16)

This is a Hilbert space equipped with inner product and induced norm

$$\begin{aligned} ({\mathbf {u}},{\mathbf {v}})_{{{\mathbf {H}}}(\mathbf {curl})} = \int _{{\varOmega }} ({\mathbf {u}}\cdot {\mathbf {v}}+ \mathbf {curl}{\mathbf {u}}\cdot \mathbf {curl}{\mathbf {v}})\, d{\mathbf {x}},\ \Vert {\mathbf {u}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}^2 = ({\mathbf {u}},{\mathbf {u}})_{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(17)

It is well known, that the space \({{\mathbf {H}}}(\mathbf {curl})\) allows for the definition of a tangential trace. According to [6], we may define the subspace of \({{\mathbf {H}}}(\mathbf {curl})\) satisfying homogeneous tangential boundary conditions on \({\varGamma }_D\), which is our TDNNS displacement space

$$\begin{aligned} {\mathbf {V}}:= {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl}) = \left\{ {\mathbf {v}}\in {{\mathbf {L}}}^2({\varOmega }): \mathbf {curl}{\mathbf {v}}\in {{\mathbf {L}}}^2({\varOmega }), {\mathbf {v}}_{{\mathbf {t}}}= 0\ \text{ on }\ {\varGamma }_D\right\} . \end{aligned}$$
(18)

The following theorem is taken, with notation adapted to our work, from [6, Theorem 6.6, Remark 6.7]:

Theorem 1

The tangential trace operator \({\mathbf {v}}\rightarrow {\mathbf {v}}_{{\mathbf {t}}}\) is bounded and surjective as a mapping

$$\begin{aligned} {{\mathbf {H}}}(\mathbf {curl}) \rightarrow {{\mathbf {H}}}^{-1/2}_{\bot ,00}(\mathbf {curl},{\varGamma }_D) \end{aligned}$$
(19)

and

$$\begin{aligned} {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl}) \rightarrow {{\mathbf {H}}}^{-1/2}_{\bot }\left( \mathbf {curl}^0,{\varGamma }_N\right) . \end{aligned}$$
(20)

The first statement of Theorem 1 ensures the existence of an extension \({\tilde{{\mathbf {u}}}}_D\) of a given tangential-displacement boundary value. Additionally, Theorem 1 tells that the surface integral in (12) can be understood as a duality product. We will elaborate on this matter in Sect. 3.

A conforming finite element space for \({{\mathbf {H}}}(\mathbf {curl})\) has to be tangential continuous, such as the Nédélec spaces introduced in [16, 17].

An essential tool in the analysis of the TDNNS formulation is the regular decomposition. Decompositions satisfying homogeneous Dirichlet or Neumann boundary conditions have been shown by [18] and [11], respectively. The case of mixed boundary conditions can be found in [12].

Theorem 2

(regular decomposition) For \({\mathbf {u}}\in {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) there exists a decomposition

$$\begin{aligned} {\mathbf {v}}= {\mathbf {z}}+ \nabla \phi , \end{aligned}$$
(21)

where \({\mathbf {z}}\in {{\mathbf {H}}}^1_{0,{\varGamma }_D}({\varOmega })\) and \(\phi \in H^1_{0,{\varGamma }_D}({\varOmega })\). The respective parts can be bounded by

$$\begin{aligned} \Vert \phi \Vert _{H^1({\varOmega })} \le c \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})} \qquad \text{ and } \qquad \Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1({\varOmega })} \le c \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}, \end{aligned}$$
(22)

with a generic constant c.

2.2 The stress space \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\)

We still need to specify the stress space. Roughly, it is a subspace of \({\underline{{\mathbf {L}}}}^2\) where the (scalar-valued) divergence of the (vector-valued) divergence of the stress tensor lies in the dual space of \(H^1_{0,{\varGamma }_D}\). In (23), the norm of the desired space is stated for smooth functions. We will proceed as follows: first, we formally define the space \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) as the closure of smooth functions, and give an interpretation of the norm which rectifies the name \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\). Then, we show that the normal-normal trace can be bounded in this norm in the appropriate setting. Thus we can define the subspace \({\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\) satisfying zero normal-normal boundary conditions on \({\varGamma }_N\) as the closure of smooth functions vanishing on \({\varGamma }_N\). Last, we provide an inverse trace theorem, which allows to extend normal-normal stress distributions from the boundary to the whole space \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\).

The norm \(\Vert \cdot \Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}\) shall be defined for smooth \(\underline{\varvec{\tau }}\in C^{\infty }({\bar{{\varOmega }}})\) by

$$\begin{aligned} \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}^2 = \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2}^2 + \left( \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{\int _{{\varOmega }} \underline{\varvec{\tau }}:\underline{\varvec{\varepsilon }}(\nabla \varphi )\,d{\mathbf {x}}- \int _{\partial {\varOmega }} \tau _{nn} \frac{\partial \varphi }{\partial n}}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2({\varOmega })}}\right) ^2 . \end{aligned}$$
(23)

Note that, due to the symmetry of the Hessian \(\underline{\nabla }^2\varphi \), the symmetric expression \(\underline{\varvec{\varepsilon }}(\nabla \varphi )\) is the same as the conventional notation \(\underline{\nabla }^2\varphi \). We use \(\underline{\varvec{\varepsilon }}(\nabla \varphi )\), as it shows the relation to linear elasticity.

We define the space \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) as

$$\begin{aligned} {\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}}) := \overline{\underline{{\mathbf {C}}}^\infty _{sym}}^{\Vert \cdot \Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}}. \end{aligned}$$
(24)

The second term in the definition of the norm (23) is a seminorm and can be interpreted as the norm of \({\text {div}}\,{\text {div}}\underline{\varvec{\tau }}\) in the dual space of \(H^{1}_{0,{\varGamma }_D}\). Integration by parts of the denominator gives for smooth \(\underline{\varvec{\tau }}\), using that \(\varphi \) and \(\partial \varphi /\partial {{\mathbf {t}}}\) vanish on \({\varGamma }_D\),

$$\begin{aligned}&\int _{\varOmega } \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi )\, d{\mathbf {x}}- \int _{\partial {\varOmega }}\tau _{nn} \frac{\partial \varphi }{\partial n}\, ds \end{aligned}$$
(25)
$$\begin{aligned}&\quad = -\int _{{\varOmega }} \mathbf {{div}}\underline{\varvec{\tau }}\cdot \nabla \varphi \, dx + \int _{{\varGamma }_N} \varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}} \cdot \frac{\partial \varphi }{\partial {{\mathbf {t}}}}\, ds \end{aligned}$$
(26)
$$\begin{aligned}&\quad = \int _{{\varOmega }} {\text {div}}\,\mathbf {{div}}\underline{\varvec{\tau }}\,\varphi \, dx - \int _{{\varGamma }_N} (\mathbf {{div}}\underline{\varvec{\tau }})_n\varphi \,ds + \int _{{\varGamma }_N} \varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}} \cdot \frac{\partial \varphi }{\partial {{\mathbf {t}}}}\, ds \end{aligned}$$
(27)

The supremum in (23) can be interpreted as a dual norm: in the interior, \({\text {div}}\,\mathbf {{div}}\underline{\varvec{\tau }}\) is in the dual space of \(H^1_{0,{\varGamma }_D}\). On \({\varGamma }_N\) we have \((\mathbf {{div}}\underline{\varvec{\tau }})_n\) in the dual of the trace space \(H^{1/2}_{00}({\varGamma }_N)\). In the last term, the tangential derivative \(\partial \varphi /\partial {{\mathbf {t}}}\) appears. Since the gradient of \(H^1\) lies in \({{\mathbf {H}}}(\mathbf {curl})\), this tangential derivative is in \(H^{-1/2}_{\bot }(\mathbf {curl}^0,{\varGamma }_N)\), see Theorem 1. The normal-tangential stress \(\varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}}\) is thus in the dual of this space, which means [6]

$$\begin{aligned} \varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}} \in [{{\mathbf {H}}}^{-1/2}_{\bot }(\mathbf {curl}^0,{\varGamma }_N)]^* = {{\mathbf {H}}}^{-1/2}_{\parallel ,00}({\text {div}},{\varGamma }_N). \end{aligned}$$
(28)

We will comment on this restriction in Sect. 4, as it our finite element space is not conforming in this term.

We will now define a space for the normal-normal trace, and show that the normal-normal trace is bounded in the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) norm. To this end, we need the space of traces of the normal derivative of \(H^2\cap H^1_{0,{\varGamma }_D}\),

$$\begin{aligned} H^{1/2}_n(\partial {\varOmega }) := \left\{ w = \frac{\partial {\tilde{w}} }{\partial n}: {\tilde{w}} \in H^2\cap H^1_{0,{\varGamma }_D}\right\} . \end{aligned}$$
(29)

For a polyhedral domain and \({\varGamma }_D = \emptyset \), \(H^{1/2}_n(\partial {\varOmega })\) consists of piecewise \(H^{1/2}({\varGamma }_i)\) without continuity assumptions on the polyhedron edges or vertices, see e.g. [7]. For \({\varGamma }_D = \partial {\varOmega }\), \(H^{1/2}_n(\partial {\varOmega })\) is the subspace of the piecewise \(H^{1/2}_{00}({\varGamma }_i)\) spaces without continuity assumptions on the polyhedron edges or vertices, see e.g. [8]. To the best knowledge of the authors, this space has not been analyzed so far for general, nontrivial \({\varGamma }_D\). In this work, we only use that the space can be defined piecewise on each polyhedral face.

The normal-normal trace space of \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) is then given by

$$\begin{aligned} H^{-1/2}_n(\partial {\varOmega }):= & {} [H^{1/2}_n(\partial {\varOmega })]^*. \end{aligned}$$
(30)

An appropriate norm on \(H^{-1/2}_n(\partial {\varOmega })\) is given by

$$\begin{aligned} \Vert g\Vert _{H^{-1/2}_n(\partial {\varOmega })} = \sup _{{\tilde{w}} \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{\left\langle g, \frac{\partial {\tilde{w}}}{\partial n}\right\rangle }{\Vert \nabla {\tilde{w}}\Vert _{H^1}}. \end{aligned}$$
(31)

Note that due to the piecewise nature of \(H^{1/2}_n(\partial {\varOmega })\), the trace space can be restricted to each polyhedral face \({\varGamma }_i\), and extended from each face to the whole boundary by zero.

Theorem 3

The normal-normal trace operator is bounded from \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) to \(H^{-1/2}_n({\varGamma }_i)\) for each boundary face \({\varGamma }_i \subset \partial {\varOmega }\). Thus, it is well defined on \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) as the extension from \({\underline{{\mathbf {C}}}}^{\infty }_{sym}\). For \(\underline{\varvec{\tau }}\in {\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) there holds the bound

$$\begin{aligned} \Vert \tau _{nn}\Vert _{H^{-1/2}_n({\varGamma }_i)} \le c \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})} \end{aligned}$$
(32)

with the constant c independent of \(\underline{\varvec{\tau }}\).

Proof

Let \(\underline{\varvec{\tau }}\in {\underline{{\mathbf {C}}}}^{\infty }_{sym}\) be fixed. We first show that the normal-normal trace on a boundary face \({\varGamma }_i\) can be bounded by the normal-normal trace on the whole boundary. Since \(H^{1/2}_n(\partial {\varOmega })\) is a piecewise defined space without continuity assumptions between polyhedron faces, any \(\varphi \in H^{1/2}_n({\varGamma }_i)\) can be extended by zero to \(\phi \in H^{1/2}_n(\partial {\varOmega })\). By definition of the dual norm we see

$$\begin{aligned} \Vert \tau _{nn}\Vert _{H^{-1/2}_n({\varGamma }_i)}= & {} \sup _{\varphi \in H^{1/2}_n({\varGamma }_i)} \frac{\int _{{\varGamma }_i} \tau _{nn}\varphi \,ds}{\Vert \varphi \Vert _{H^{1/2}_n({\varGamma }_i)}} \end{aligned}$$
(33)
$$\begin{aligned}= & {} \sup _{\begin{array}{c} \varphi \in H^{1/2}_n(\partial {\varOmega })\\ \varphi =0\ \mathrm {on}\ \partial {\varOmega }\backslash {\varGamma }_i \end{array}} \frac{\int _{\partial {\varOmega }} \tau _{nn}\varphi \,ds}{\Vert \varphi \Vert _{H^{1/2}_n(\partial {\varOmega })}} \end{aligned}$$
(34)
$$\begin{aligned}\le & {} \sup _{\varphi \in H^{1/2}_n(\partial {\varOmega })} \frac{\int _{\partial {\varOmega }} \tau _{nn}\varphi \,ds}{\Vert \varphi \Vert _{H^{1/2}_n(\partial {\varOmega })}} = \Vert \tau _{nn}\Vert _{H^{-1/2}_n(\partial {\varOmega })}. \end{aligned}$$
(35)

We proceed showing the actual trace inequality, where we use that \(H^{1/2}_n(\partial {\varOmega })\) is defined as the trace space of \(H^2\cap H^1_{0,{\varGamma }_D}\),

$$\begin{aligned}&\Vert \tau _{nn}\Vert _{H^{-1/2}_n(\partial {\varOmega })} \end{aligned}$$
(36)
$$\begin{aligned}&\quad = \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{\int _{\partial {\varOmega }} \tau _{nn} \frac{\partial \varphi }{\partial n}\,d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{{\mathbf {H}}}^1}} \end{aligned}$$
(37)
$$\begin{aligned}&\quad \le \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{-\int _{\varOmega } \underline{\varvec{\tau }}:\underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}+\int _{\partial {\varOmega }} \tau _{nn} \frac{\partial \varphi }{\partial n}\,d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} \end{aligned}$$
(38)
$$\begin{aligned}&\qquad + \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{ \int _{\varOmega } \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi )\,d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{{\mathbf {H}}}^1}} \end{aligned}$$
(39)

We see that the supremum from Eq. (38) is already contained in the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\)-norm. For the supremum from Eq. (39), we use that

$$\begin{aligned} \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{ \int _{\varOmega } \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi )\,d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{{\mathbf {H}}}^1}} \le \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{ \int _{\varOmega } \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi )\,d{\mathbf {x}}}{\Vert \underline{\varvec{\varepsilon }}(\nabla \varphi )\Vert _{{\underline{{\mathbf {L}}}}^2}} \le \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2}. \end{aligned}$$
(40)

Therefore, we arrive at the desired result

$$\begin{aligned}&\Vert \tau _{nn}\Vert _{H^{-1/2}_n(\partial {\varOmega })} \end{aligned}$$
(41)
$$\begin{aligned}&\quad \le \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{-\int _{\varOmega } \underline{\varvec{\tau }}:\underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}+\int _{\partial {\varOmega }} \tau _{nn} \frac{\partial \varphi }{\partial n}\,d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} + \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2} \end{aligned}$$
(42)
$$\begin{aligned}&\quad \le \sqrt{2}\Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}. \end{aligned}$$
(43)

\(\square \)

The trace theorem above allows to define the space

$$\begin{aligned} {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}}) := \overline{{\underline{{\mathbf {C}}}}^\infty _{sym,0,{\varGamma }_N}}^{\Vert \cdot \Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}}. \end{aligned}$$
(44)

Any \(\underline{\varvec{\tau }}\in {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\) has a well-defined normal-normal trace in \(H^{-1/2}_n(\partial {\varOmega })\), and it holds that \(\tau _{nn} = 0\) in \(H^{-1/2}_n({\varGamma }_N)\).

Finally, we provide an inverse trace theorem for the space \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\), before we proceed to the analysis of the TDNNS elasticity problem. The inverse trace theorem allows to find an extension of a given (scalar) normal-normal stress on the boundary to a (tensor-valued) stress field on the domain.

Theorem 4

For any boundary face \({\varGamma }_i\), and \(g \in H^{-1/2}_n({\varGamma }_i)\), there exists a tensor field \(\underline{\varvec{\tau }}\in {\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) with \(g = \tau _{nn}\) in the sense of \(H^{-1/2}_n({\varGamma }_i)\) and

$$\begin{aligned} \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})} \le c \Vert g\Vert _{H^{-1/2}_n({\varGamma }_i)}, \end{aligned}$$
(45)

with constant c independent of g.

Proof

For boundary face \({\varGamma }_i\), let \(g \in H^{-1/2}_n({\varGamma }_i)\) be given. The extension of g by zero lies in \(H^{-1/2}_n(\partial {\varOmega })\), which is the dual of the trace space of \(H^2 \cap H^1_{0,{\varGamma }_D}\). This allows to pose the following problem in \(H^2 \cap H^1_{0,{\varGamma }_D}\) with well-defined right hand side: find \(w \in H^2 \cap H^1_{0,{\varGamma }_D}\) such that

$$\begin{aligned} \int \underline{\varvec{\varepsilon }}(\nabla w): \underline{\varvec{\varepsilon }}(\nabla v)\, d{\mathbf {x}}+ \int _{\varOmega } \nabla w \nabla v\, dx = \left\langle g, \frac{\partial v}{\partial n}\right\rangle&v \in H^2 \cap H^1_{0,{\varGamma }_D}. \end{aligned}$$
(46)

Solvability of (46) is clear, as we note that \(\underline{\varvec{\varepsilon }}(\nabla w) = \nabla ^2w\) due to the symmetry of the Hessian. By the standard theory of Lax and Milgram we obtain the stability estimate

$$\begin{aligned} \Vert \underline{\varvec{\varepsilon }}(\nabla w)\Vert _{{\underline{{\mathbf {L}}}}^2}^2 + \Vert \nabla w\Vert _{{{\mathbf {L}}}^2}^2 \le c \Vert g\Vert _{H^{-1/2}_n({\varGamma }_i)}^2. \end{aligned}$$
(47)

We choose \(\underline{\varvec{\tau }}= \underline{\varvec{\varepsilon }}(\nabla w)\), which is clearly symmetric and bounded in \({\underline{{\mathbf {L}}}}^2\):

$$\begin{aligned} \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2}^2 \le c \Vert g\Vert _{H^{-1/2}_n({\varGamma }_i)}^2. \end{aligned}$$
(48)

Additionally, it satisfies the natural boundary condition \(\tau _{nn} = g\) in \(H^{-1/2}_n({\varGamma }_i)\). It remains to show that our choice of \(\underline{\varvec{\tau }}\) lies actually in \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\), and satisfies the estimate (45). To this end, we still need to bound the supremum term in the definition of the norm. Any \(\varphi \in C^{\infty }\cap H^1_{0,{\varGamma }_D}\) is a valid test function for the variational equation (46). This implies

$$\begin{aligned}&\sup _{\varphi \in C^{\infty }\cap H^1_{0,{\varGamma }_D}} \frac{\int _{\varOmega } \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}- \left\langle \tau _{nn}, \frac{\partial \varphi }{\partial n} \right\rangle }{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} \end{aligned}$$
(49)
$$\begin{aligned}&\quad = \sup _{\varphi \in C^{\infty }\cap H^1_{0,{\varGamma }_D}} \frac{\int _{\varOmega } \underline{\varvec{\varepsilon }}(\nabla w) : \underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}- \left\langle g, \frac{\partial \varphi }{\partial n} \right\rangle }{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} \end{aligned}$$
(50)
$$\begin{aligned}&\quad = \sup _{\varphi \in C^{\infty }\cap H^1_{0,{\varGamma }_D}} \frac{ \int _{\varOmega } \nabla w \cdot \nabla \varphi \, d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{\underline{{\mathbf {L}}}}^2}} \end{aligned}$$
(51)
$$\begin{aligned}&\quad \le \Vert \nabla w\Vert _{{{\mathbf {L}}}^2} \le c \Vert g\Vert _{H^{-1/2}_n({\varGamma }_i)}. \end{aligned}$$
(52)

Adding up (48) and (49)–(52) leads to the desired bound (45). \(\square \)

With tools concerning \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) now at hand, we can proceed to the analysis of the variational problem (11)–(12).

3 Analysis of the TDNNS problem

In the current section, we show existence and uniqueness of a solution to the TDNNS elasticity problem (11)–(12). We specify the variational spaces \(\underline{\varvec{{\Sigma }}}\) and \({\mathbf {V}}\) foreshadowed in Sect. 2,

$$\begin{aligned} \underline{\varvec{{\Sigma }}}:= & {} {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}}), \end{aligned}$$
(53)
$$\begin{aligned} {\mathbf {V}}:= & {} {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl}). \end{aligned}$$
(54)

We shall use the theory on mixed problem treated in detail in [4]. First, we concentrate on boundary conditions, then we show stability estimates for the bilinear forms \(a(\cdot ,\cdot )\) and \(b(\cdot ,\cdot )\). These results allow us to derive existence, uniqueness and stability of a solution to the TDNNS elasticity problem.

3.1 Boundary conditions

We assumed boundary conditions \({\mathbf {u}}_D\) on \({\varGamma }_D\) and \({\mathbf {t}}_{N}\) on \({\varGamma }_N\) to be given. We shall comment on the regularity necessary for these boundary conditions, such that the variational problem is well-defined. We treat the essential boundary conditions on tangential displacement and normal-normal stress first, and proceed to the natural boundary conditions on the normal displacement and normal-tangential stress afterwards.

In the variational formulation (11)–(12), we used extensions \({\tilde{{\mathbf {u}}}}_D\) and \({\tilde{\underline{\varvec{\sigma }}}}_N\) of the given boundary data. The trace theorems for \({{\mathbf {H}}}(\mathbf {curl})\) and \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) ensure that, given \({\mathbf {u}}_{D,{{\mathbf {t}}}} \in {{\mathbf {H}}}^{-1/2}_{\bot ,00}(\mathbf {curl},{\varGamma }_D)\) and \(t_{N,n} \in H^{-1/2}_n({\varGamma }_N)\), extensions can be found satisfying

$$\begin{aligned} {\tilde{{\mathbf {u}}}}_{D,{{\mathbf {t}}}}&= {\mathbf {u}}_{D,{{\mathbf {t}}}},&\Vert {\tilde{{\mathbf {u}}}}_{D}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}&\le c \Vert {\mathbf {u}}_{D,{{\mathbf {t}}}}\Vert _{{{\mathbf {H}}}^{-1/2}_{\bot ,00}(\mathbf {curl},{\varGamma }_D)}, \end{aligned}$$
(55)
$$\begin{aligned} {\tilde{\sigma }}_{N,nn}&= t_{N,n},&\Vert {\tilde{\underline{\varvec{\sigma }}}}_N\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}&\le c \Vert t_{N,n}\Vert _{H^{-1/2}_n({\varGamma }_N)}. \end{aligned}$$
(56)

Natural boundary conditions on normal displacement and tangential component of normal stress are included into the right hand side of the variational problem (11)–(12). For smooth functions, they are included as surface integrals

$$\begin{aligned} \int _{{\varGamma }_D} u_{D,n}\, \tau _{nn}\, ds\quad \text{ and }\quad \int _{{\varGamma }_N} {\mathbf {t}}_{N,{{\mathbf {t}}}}\cdot {\mathbf {v}}_{{\mathbf {t}}}\,ds \end{aligned}$$
(57)

We will see that both boundary integrals can be understood in the sense of duality products in the respective trace spaces, which makes them well-defined on the whole variational spaces.

The trace theorem on \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\), Theorem 3, ensures that

$$\begin{aligned} \left\langle u_{D,n}, \tau _{nn}\right\rangle _{H^{1/2}_n({\varGamma }_D)\times H^{-1/2}_n({\varGamma }_D)} \le c \Vert u_n\Vert _{H^{1/2}_n({\varGamma }_D)}\Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}. \end{aligned}$$
(58)

Thus, it is necessary to have the normal displacement \(u_{D,n} \in H^{1/2}_n({\varGamma }_D)\).

The second statement from Theorem 1, (20) ensures that for \({\mathbf {v}}\in {\mathbf {V}}\) the tangential trace \({\mathbf {v}}_{{\mathbf {t}}}\) allows for a surface curl, \({\mathbf {v}}_{{\mathbf {t}}}\in {{\mathbf {H}}}^{-1/2}_{\bot }(\mathbf {curl}^0,{\varGamma }_N)\). Therefore, the normal-tangential trace of the given surface tractions has to lie in its dual space, which is by [6] \([{{\mathbf {H}}}^{-1/2}_{\bot }(\mathbf {curl}^0,{\varGamma }_N)]^* = {{\mathbf {H}}}^{-1/2}_{\parallel ,00}({\text {div}},{\varGamma }_N)\). The trace theorem in \({{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) ensures the bound

$$\begin{aligned} \left\langle {\mathbf {t}}_{N,{{\mathbf {t}}}}, {\mathbf {v}}_{{\mathbf {t}}}\right\rangle _{ {{\mathbf {H}}}^{-1/2}_{\parallel ,00}({\text {div}},{\varGamma }_N)\times {{\mathbf {H}}}^{-1/2}_{\bot }(\mathbf {curl}^0,{\varGamma }_N)} \le c \Vert {\mathbf {t}}_{N,{{\mathbf {t}}}}\Vert _{ {{\mathbf {H}}}^{-1/2}_{\parallel ,00}({\text {div}},{\varGamma }_N)} \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(59)

Let us shortly comment on the condition \(\varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}} = {\mathbf {t}}_{N,{{\mathbf {t}}}} \in {{\mathbf {H}}}^{-1/2}_{\parallel ,00}({\text {div}},{\varGamma }_N)\). This means that the given normal-tangential (shear) stress has to allow for a distributional surface divergence of some kind, which includes a continuity assumption on the in-plane normal across boundary edges. As the normal-tangential (shear) component of the proposed stress finite elements does not satisfy this condition, the finite element method is nonconforming, see Sect. 4. Similarly, also the given shear stress \({\mathbf {t}}_{N,{{\mathbf {t}}}}\) does not need to satisfy any continuity assumptions in the finite element setting.

3.2 Stability of bilinear forms

To apply the theory on mixed systems by [4], we have to show

  • boundedness of \(a(\cdot ,\cdot )\) and \(b(\cdot ,\cdot )\),

  • coercivity of \(a(\cdot ,\cdot )\) on the kernel space \({\text {Ker}}(B)\), and

  • inf-sup stability of \(b(\cdot ,\cdot )\).

There, the kernel space \({\text {Ker}}(B)\) is defined by

$$\begin{aligned} {\text {Ker}}(B) := \{ \underline{\varvec{\tau }}\in \underline{\varvec{{\Sigma }}}: b(\underline{\varvec{\tau }}, {\mathbf {v}}) = 0\quad \forall {\mathbf {v}}\in {\mathbf {V}}\}. \end{aligned}$$
(60)

The conditions on \(a(\cdot ,\cdot )\) will follow rather quickly, assuming the elasticity matrix \({\underline{{\mathbf {C}}}^{-1}}\) to be regular, which is true for compressible materials with \(\nu< \nu _0 < 1/2\). In the case of nearly incompressible materials with \(\nu \rightarrow 1/2\), a refined analysis comparable to [22, Chapter 5] has to be carried out, which is not done in the scope of the present work. The estimates on \(b(\cdot ,\cdot )\) are more involved.

Lemma 1

The bilinear form \(a(\cdot ,\cdot )\) is bounded on \(\underline{\varvec{{\Sigma }}}= {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\). Moreover, it is coercive on the kernel space \({\text {Ker}}(B)\) from (60), there exists a constant \(c_a\) independent of \(\underline{\varvec{\tau }}\) such that

$$\begin{aligned} a(\underline{\varvec{\tau }},\underline{\varvec{\tau }}) \ge c_a \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}^2 \qquad \forall \underline{\varvec{\tau }}\in {\text {Ker}}(B). \end{aligned}$$
(61)

Proof

Boundedness of \(a(\cdot ,\cdot )\) in \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) is clear, since \(a(\cdot ,\cdot )\) is a (\({\underline{{\mathbf {C}}}^{-1}}\)-scaled) inner product on \({\underline{{\mathbf {L}}}}^2\) and \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) is a subspace of \({\underline{{\mathbf {L}}}}^2\). Obviously, \(a(\cdot ,\cdot )\) is also coercive with respect to the \({\underline{{\mathbf {L}}}}^2\) norm,

$$\begin{aligned} a(\underline{\varvec{\tau }},\underline{\varvec{\tau }}) \ge c_a \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2}^2 \qquad \forall \underline{\varvec{\tau }}\in {\text {Ker}}(B). \end{aligned}$$
(62)

To get coercivity with respect to the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) norm, we need to show that the additional supremum term in (23) vanishes for \(\underline{\varvec{\tau }}\in {\text {Ker}}(B)\). Since for \(\varphi \in H^1_{0,{\varGamma }_D}\) we have \(\nabla \varphi \in {\mathbf {V}}= {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\), we directly see from the definition of the kernel space (60),

$$\begin{aligned} \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{\int _{\varOmega } \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}- \left\langle \tau _{nn}, \frac{\partial \varphi }{\partial n} \right\rangle }{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} = \sup _{\varphi \in H^2\cap H^1_{0,{\varGamma }_D}} \frac{b(\underline{\varvec{\tau }}, \nabla \varphi )}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} = 0. \end{aligned}$$
(63)

This concludes the proof. \(\square \)

Next, we treat boundedness of the bilinear form \(b(\cdot ,\cdot )\).

Lemma 2

The bilinear form \(b: {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}}) \times {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) is bounded.

Proof

Let \(\underline{\varvec{\tau }}\in \underline{\varvec{{\Sigma }}}= {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\) and \({\mathbf {v}}\in {\mathbf {V}}= {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) be smooth, such that the integrals in (14) are well defined. We use the regular decomposition (22) \({\mathbf {v}}= {\mathbf {z}}+ \nabla p\) with \({\mathbf {z}}\in {{\mathbf {H}}}^1_{0,{\varGamma }_D}\) and \(p \in H^1_{0,{\varGamma }_D}\), then

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathbf {v}})= & {} -\int _{{\varOmega }} \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}({\mathbf {z}})\, d{\mathbf {x}}+ \int _{{\varGamma }_D} \tau _{nn} \underbrace{z_n}_{=0}\, ds \end{aligned}$$
(64)
$$\begin{aligned}&\quad \int _{{\varOmega }} {\text {div}}\underline{\varvec{\tau }}\cdot \nabla p\, d{\mathbf {x}}- \int _{{\varGamma }_N} \tau _{n{{\mathbf {t}}}} \frac{\partial p}{\partial {{\mathbf {t}}}}\, ds . \end{aligned}$$
(65)

Cauchy’s inequality in \({\underline{{\mathbf {L}}}}^2\) and density ensure

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathbf {v}})\le & {} \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2} \Vert \underline{\varvec{\varepsilon }}({\mathbf {z}})\Vert _{{\underline{{\mathbf {L}}}}^2} \end{aligned}$$
(66)
$$\begin{aligned}&+ \sup _{\varphi \in H^2 \cap H^1_{0,{\varGamma }_D}} \frac{ \int _{{\varOmega }} {\text {div}}\underline{\varvec{\tau }}\cdot \nabla \varphi \, d{\mathbf {x}}- \int _{{\varGamma }_N} \tau _{n{{\mathbf {t}}}} \frac{\partial \varphi }{\partial {{\mathbf {t}}}}\, ds}{\Vert \nabla \varphi \Vert _{{\underline{{\mathbf {L}}}}^2}} \Vert \nabla p\Vert _{{\underline{{\mathbf {L}}}}^2} \end{aligned}$$
(67)
$$\begin{aligned}= & {} \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2} \Vert \underline{\varvec{\varepsilon }}({\mathbf {z}})\Vert _{{\underline{{\mathbf {L}}}}^2} \end{aligned}$$
(68)
$$\begin{aligned}&+ \sup _{\varphi \in H^2 \cap H^1_{0,{\varGamma }_D}} \frac{ \int _{{\varOmega }} \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}(\nabla \varphi )\, d{\mathbf {x}}- \int _{{\varGamma }_D} \tau _{nn} \frac{\partial \varphi }{\partial n}\, ds}{\Vert \nabla \varphi \Vert _{{\underline{{\mathbf {L}}}}^2}} \Vert \nabla p\Vert _{{\underline{{\mathbf {L}}}}^2} . \end{aligned}$$
(69)

We use the bound \(\Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1} + \Vert \nabla p\Vert _{{\underline{{\mathbf {L}}}}^2} \le c \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}\), and arrive at

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathbf {v}}) \le c \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})} \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(70)

\(\square \)

This continuity result allows us to extend the bilinear form from smooth functions to the whole of \({\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}}) \times {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) in the sense of a distributional divergence operator.

Lemma 3

The bilinear form \(b: {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}}) \times {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) is inf-sup stable, for any \({\mathbf {v}}\in {\mathbf {V}}= {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) there exists some \(\underline{\varvec{\sigma }}\in \underline{\varvec{{\Sigma }}}= {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\) such that

$$\begin{aligned} b(\underline{\varvec{\sigma }}, {\mathbf {v}}) \ge c_b \Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})} \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(71)

The constant \(c_b > 0\) is independent of \({\mathbf {v}}\).

Proof

Let \({\mathbf {v}}\in {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) be fixed. Find \({\mathbf {u}}\in {{\mathbf {H}}}^1 \cap {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) as a solution to the primal elasticity problem that for all \({\tilde{{\mathbf {v}}}} \in {{\mathbf {H}}}^1 \cap {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\)

$$\begin{aligned} \int _{{\varOmega }} \underline{\varvec{\varepsilon }}({\mathbf {u}}):\underline{\varvec{\varepsilon }}({\tilde{{\mathbf {v}}}})\,dx + \int _{{\varGamma }_D} u_n {\tilde{v}}_n \,d{\mathbf {x}}= \int _{{\varOmega }} \mathbf {curl}{\mathbf {v}}\cdot \mathbf {curl}{\tilde{{\mathbf {v}}}} + {\mathbf {v}}\cdot {\tilde{{\mathbf {v}}}}\,dx. \end{aligned}$$
(72)

This solution satisfies the following “classical” boundary conditions: On \({\varGamma }_N\), we have a free boundary, with \((\underline{\varvec{\varepsilon }}({\mathbf {u}}))_{\mathbf {n}}= 0\), on \({\varGamma }_D\), the tangential displacement \({\mathbf {u}}_{{\mathbf {t}}}= 0\) is fixed, while the normal displacement satisfies \(u_n = -(\underline{\varvec{\varepsilon }}({\mathbf {u}}))_{nn}\). In the variational setting, we have the combined boundary condition

$$\begin{aligned} \int _{{\varGamma }_D} u_n {\tilde{v}}_n\,ds = -\int _{\partial {\varOmega }} (\underline{{\mathbf {C}}}\underline{\varvec{\varepsilon }}({\mathbf {u}}))_{nn} {\tilde{v}}_n\,ds \qquad \forall {\tilde{{\mathbf {v}}}} \in {{\mathbf {H}}}^1 \cap {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl}), \end{aligned}$$
(73)

where the surface integral is to be understood as a duality product.

We choose \(\underline{\varvec{\sigma }}:= \underline{{\mathbf {C}}}\underline{\varvec{\varepsilon }}({\mathbf {u}})\). We have to show that \(\underline{\varvec{\sigma }}\) lies in \({\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\). To this end, we first prove that it satisfies the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\)-essential boundary condition \(\sigma _{nn} = 0\) in \(H^{-1/2}_{n}({\varGamma }_N)\), then we proceed to bound \(\underline{\varvec{\sigma }}\) in the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) norm.

The tensor field \(\underline{\varvec{\sigma }}\) satisfies \(\sigma _{nn} = 0\) in \(H^{-1/2}_{n}({\varGamma }_N)\) if and only if for each \(\varphi \in H^{1/2}_n({\varGamma }_N)\) there holds

$$\begin{aligned} \left\langle \sigma _{nn}, \varphi \right\rangle _{H^{-1/2}_{n}({\varGamma }_N)\times H^{1/2}_{n}({\varGamma }_N)} = 0. \end{aligned}$$
(74)

Due to our assumptions on \({\varOmega }\) and \({\varGamma }_N\), \(\varphi \) can be extended to \(H^{1/2}_n(\partial {\varOmega })\) by zero. By definition of \(H^{1/2}_n(\partial {\varOmega })\), there exists a \({\tilde{\varphi }} \in H^2\cap H^1_{0,{\varGamma }_D}\) with \(\varphi = \partial {\tilde{\varphi }}/\partial n\). Since \(\nabla H^1_{0,{\varGamma }_D} \subset {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\), its gradient \(\nabla {\tilde{\varphi }}\) is a valid test function in (73), which ensures (74).

We now want to bound \(\Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})}\). Standard theory for the primal problem (72) ensures

$$\begin{aligned} \Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {L}}}}^2}^2 \le c \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}^2 . \end{aligned}$$
(75)

We bound the supremum term in the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) norm to show that \(\underline{\varvec{\sigma }}\in {\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\): Again, \(\nabla \varphi \) is a valid test function for the variational problem (72),

$$\begin{aligned}&\sup _{\varphi \in H^2 \cap H^1_{0,{\varGamma }_D}} \frac{\int _{\varOmega } \underline{\varvec{\sigma }}: \underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}- \int _{\partial {\varOmega }} \sigma _{nn} \frac{\partial \varphi }{\partial {\mathbf {n}}}\,ds}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} \end{aligned}$$
(76)
$$\begin{aligned}&\quad =\sup _{\varphi \in H^2 \cap H^1_{0,{\varGamma }_D}} \frac{\int _{\varOmega } \underline{{\mathbf {C}}}\underline{\varvec{\varepsilon }}({\mathbf {u}}) : \underline{\varvec{\varepsilon }}(\nabla \varphi ) d{\mathbf {x}}- \int _{{\varGamma }_D} (\underline{{\mathbf {C}}}\underline{\varvec{\varepsilon }}({\mathbf {u}}))_{nn} \frac{\partial \varphi }{\partial {\mathbf {n}}}\,ds}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} \end{aligned}$$
(77)
$$\begin{aligned}&\quad =\sup _{\varphi \in H^2 \cap H^1_{0,{\varGamma }_D}} \frac{\int _{\varOmega } \mathbf {curl}{\mathbf {v}}\cdot \overbrace{\mathbf {curl}\nabla \varphi }^{=0} + {\mathbf {v}}\cdot \nabla \varphi d{\mathbf {x}}}{\Vert \nabla \varphi \Vert _{{{\mathbf {L}}}^2}} \end{aligned}$$
(78)
$$\begin{aligned}&\quad \le \Vert {\mathbf {v}}\Vert _{{{\mathbf {L}}}^2} . \end{aligned}$$
(79)

Together with (75) this leads to the bound

$$\begin{aligned} \Vert \underline{\varvec{\sigma }}\Vert _{\underline{\varvec{{\Sigma }}}} \le c \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(80)

The bilinear form \(b(\underline{\varvec{\sigma }},{\mathbf {v}})\) evaluates to

$$\begin{aligned} b(\underline{\varvec{\sigma }}, {\mathbf {v}})= & {} \int _{\varOmega } \underline{\varvec{\sigma }}:\underline{\varvec{\varepsilon }}({\mathbf {v}})\,dx - \int _{{\varGamma }_D} \sigma _{nn} v_n\,ds \end{aligned}$$
(81)
$$\begin{aligned}\ge & {} \Vert \mathbf {curl}{\mathbf {v}}\Vert _{{{\mathbf {L}}}^2}^2 + \Vert {\mathbf {v}}\Vert _{{{\mathbf {L}}}^2}^2 \end{aligned}$$
(82)
$$\begin{aligned}\ge & {} \Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})} \Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(83)

\(\square \)

4 Finite element spaces and their norms

Let \({\mathcal {T}}= \{T\}\) be a simplicial, (shape-)regular triangulation of \({\varOmega }\) as defined in [15, Def. 5.11]. We denote the set of element faces \({\mathcal {F}}= \{F\}\). Any piecewise smooth vector field \({\mathbf {v}}\in {{\mathbf {H}}}(\mathbf {curl})\) has to be tangential continuous on element interfaces, i.e. \({\mathbf {v}}_{{\mathbf {t}}}\) is uniquely defined on each element interface. In [19, 22], it was shown that a piecewise smooth tensor \(\underline{\varvec{\tau }}\in {\underline{{\mathbf {H}}}}({\text {div}}\mathbf {{div}})\) is normal-normal continuous across element faces, i.e. the normal-normal component \(\tau _{nn}\) is continuous.

So far, the bilinear form \(b(\cdot ,\cdot )\) is defined only for smooth vector and tensor fields in (14), (15). This definition can be extended to piecewise smooth fields: Let \({\mathbf {v}}\in {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\) and \(\underline{\varvec{\tau }}\in {\underline{{\mathbf {H}}}}_{0,{\varGamma }_N}({\text {div}}\,\mathbf {{div}})\) be piecewise smooth and tangential and normal-normal continuous on the triangularization \({\mathcal {T}}\), respectively, then

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathbf {v}})&= \sum _{T \in {\mathcal {T}}} \left( \int _T \mathbf {{div}}\underline{\varvec{\tau }}\cdot {\mathbf {v}}\, d{\mathbf {x}}- \int _{\partial T} \varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}}\cdot {\mathbf {v}}_{{\mathbf {t}}}\, ds \right) \end{aligned}$$
(84)
$$\begin{aligned}&= -\sum _{T \in {\mathcal {T}}} \left( \int _T \underline{\varvec{\tau }}: \underline{\varvec{\varepsilon }}({\mathbf {v}})\, d{\mathbf {x}}- \int _{\partial T} \tau _{nn} v_n\, ds \right) . \end{aligned}$$
(85)

In [19, 22], normal-normal continuous symmetric stress finite elements were constructed, which were used together with Nédélec elements for the displacement. A stable finite element method was obtained. However, the method is slightly nonconforming: to be in \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\), a piecewise continuous function has to be normal-normal continuous, and the normal-tangential component \(\varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}}\) has to lie in the dual space of the trace space of \({{\mathbf {H}}}(\mathbf {curl},T)\), which means \(\varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}} \in {{\mathbf {H}}}^{-1/2}_{||}({\text {div}}_{\partial T})\). Then the surface integral in (84) can be understood as duality product and evaluated for arbitrary \({\mathbf {v}}\in {{\mathbf {H}}}_{0,{\varGamma }_D}(\mathbf {curl})\). However, this is a continuity restriction on \(\varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}}\) at element edges, which does not hold for general \(\underline{\varvec{\tau }}\) piecewise smooth. In general, the surface vector field \(\varvec{\tau }_{{\mathbf {n}}{{\mathbf {t}}}}\) is discontinuous across element edges.

We choose the following finite element spaces for integer \(k \ge 1\)

$$\begin{aligned} \underline{\varvec{{\Sigma }}}_h&:= \left\{ \underline{\varvec{\tau }}_h \in {\underline{{\mathbf {L}}}}^2({\varOmega }): \underline{\varvec{\tau }}_h|_T \in {\underline{{\mathbf {P}}}}^k(T), \tau _{h,nn} \text{ cont. }, \tau _{h,nn}|_{{\varGamma }_N} = 0 \right\} ; \end{aligned}$$
(86)
$$\begin{aligned} {\mathbf {V}}_h&:= \left\{ {\mathbf {v}}_h \in {{\mathbf {L}}}^2({\varOmega }): {\mathbf {v}}_h|_T \in {{\mathbf {P}}}^k(T), {\mathbf {v}}_{h,{{\mathbf {t}}}} \text{ cont. }, {\mathbf {v}}_{h,{{\mathbf {t}}}}|_{{\varGamma }_D} = 0 \right\} . \end{aligned}$$
(87)

Additionally, we need an \(H^1\)-conforming scalar finite element space \(W_h\) of order \(k+1\) satisfying zero boundary conditions,

$$\begin{aligned} W_h := \left\{ w_h \in L^2({\varOmega }): w_h|_T \in P^{k+1}(T), w_h \text{ cont. }, w_h|_{{\varGamma }_D} = 0\right\} . \end{aligned}$$
(88)

For this choice we have that \(\nabla W_h \subset {\mathbf {V}}_h\).

Utilizing the finite element spaces above, we may pose the finite element problem (restricting ourselves to the case of trivial essential boundary conditions \({\mathbf {u}}_{{\mathbf {t}}}= 0\) on \({\varGamma }_D\) and \(\sigma _{nn} = 0\) on \({\varGamma }_N\)): find \(\underline{\varvec{\sigma }}_h \in \underline{\varvec{{\Sigma }}}_h\) and \({\mathbf {u}}_h \in {\mathbf {V}}_h\) such that

$$\begin{aligned} a(\underline{\varvec{\sigma }}_h, \underline{\varvec{\tau }}_h) + b(\underline{\varvec{\tau }}_h, {\mathbf {u}}_h)&= \int _{{\varGamma }_D} \tau _{nn} u_{D,n}\,ds&\forall \underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h, \end{aligned}$$
(89)
$$\begin{aligned} b(\underline{\varvec{\sigma }}_h, {\mathbf {v}}_h)&= \int _{\varOmega } {\mathbf {f}}\cdot {\mathbf {v}}_h\,d{\mathbf {x}}+ \int _{{\varGamma }_N} {\mathbf {t}}_{N,{{\mathbf {t}}}}\cdot {\mathbf {v}}_{{\mathbf {t}}}\,ds&\forall {\mathbf {v}}_h \in {\mathbf {V}}_h. \end{aligned}$$
(90)

4.1 Discrete stress norm

While the Nédélec space \({\mathbf {V}}_h\) and the continuous space \(W_h\) are endowed with \({{\mathbf {H}}}(\mathbf {curl})\) and \(H^1\) norms, respectively, we provide a discrete norm for the stress space \(\underline{\varvec{{\Sigma }}}_h\),

$$\begin{aligned} \Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}^2&:= \Vert \underline{\varvec{\tau }}_h\Vert _{{\underline{{\mathbf {L}}}}^2}^2 + \sum _{F \in {\mathcal {F}}} h_F \Vert \tau _{h,nn}\Vert _{L^2(F)}^2 + \left( \sup _{w_h \in W_h}\frac{b(\underline{\varvec{\tau }}_h, \nabla w_h)}{\Vert \nabla w_h\Vert _{{{\mathbf {L}}}^2}}\right) ^2. \end{aligned}$$
(91)

Note that, for finite element functions \(\underline{\varvec{\tau }}_h\), the face terms in (91) can be bounded by the \({\underline{{\mathbf {L}}}}^2\) term (see [19]). Thus, the face terms may be omitted for finite element functions, which is often done in this work. However, this is not possible for general piecewise smooth normal-normal continuous tensor fields \(\underline{\varvec{\tau }}\).

In [19], we showed stability of the problem not using the \({{\mathbf {H}}}(\mathbf {curl})\) and discrete \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) norm (91), but using the \({\underline{{\mathbf {L}}}}^2\) norm for the stresses and a broken \({{\mathbf {H}}}^1\) norm for the displacements,

$$\begin{aligned} \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}^1,h}^2&= \sum _{T \in {\mathcal {T}}} \Vert \underline{\varvec{\varepsilon }}({\mathbf {v}}_h)\Vert _{{\underline{{\mathbf {L}}}}^2(T)}^2 + h^{-1}\sum _{F \in {\mathcal {F}}} \Vert [v_{h,n}]\Vert _{L^2(F)}^2. \end{aligned}$$
(92)

4.2 The reference element and transformations to the mesh element

We introduce the reference tetrahedron \({\hat{T}} = \{ {\hat{{\mathbf {x}}}} = ({\hat{x}}_1, {\hat{x}}_2, {\hat{x}}_3): {\hat{x}}_i>0, {\hat{x}}_1 + {\hat{x}}_2 + {\hat{x}}_3 < 1\}.\) Barycentric coordinates on \({\hat{T}}\) are given by

$$\begin{aligned} {\hat{\lambda }}_1 = {\hat{x}}_1,\quad {\hat{\lambda }}_2 = {\hat{x}}_2,\quad {\hat{\lambda }}_3 = {\hat{x}}_3,\quad {\hat{\lambda }}_4 = 1-({\hat{x}}_1+{\hat{x}}_2 + {\hat{x}}_3). \end{aligned}$$
(93)

For any element \(T \in {\mathcal {T}}\), let

$$\begin{aligned} {\varPhi }_T: {\hat{T}} \rightarrow T,\ {\hat{{\mathbf {x}}}} \mapsto {\mathbf {x}}\end{aligned}$$
(94)

be a smooth one-to-one mapping of the reference tetrahedron to tetrahedron T. The Jacobian of this transformation shall be denoted by \(\underline{{\mathbf {F}}}_T = \nabla {\varPhi }_T\), the Jacobi determinant by \(J_T = det(\underline{{\mathbf {F}}}_T)\). The local mesh size is defined as the spectral norm of \(\underline{{\mathbf {F}}}_T\), \(h_T = |\underline{{\mathbf {F}}}_T|_s\). For a face F and an edge E, let \(J_F\), \(J_E\) denote the transformation of measures of the mappings \({\hat{F}} \rightarrow F\), \({\hat{E}} \rightarrow E\). For the normal \({\mathbf {n}}_F\) to face F and the tangential vector \({{\mathbf {t}}}_E\) to some edge E we have

$$\begin{aligned} {\mathbf {n}}_F = J_T/J_F \underline{{\mathbf {F}}}_T^{-T} {\hat{{\mathbf {n}}}}_{{\hat{F}}}, \qquad {{\mathbf {t}}}_E = 1/J_E \underline{{\mathbf {F}}}_T {\hat{{{\mathbf {t}}}}}_{{\hat{E}}}. \end{aligned}$$
(95)

The finite element basis functions are defined on the reference tetrahedron, and mapped to an element T by a conforming transformation. A conforming transformation has to preserve the degrees of freedom of the finite element. While \(H^1\) conforming elements can be transformed directly, we need the tangential-trace preserving covariant transformation for \({{\mathbf {H}}}(\mathbf {curl})\) conforming elements, and a transformation which preserves the normal-normal trace for the stress elements,

$$\begin{aligned} w_h({\mathbf {x}})&= {\hat{w}}({\hat{{\mathbf {x}}}}), \end{aligned}$$
(96)
$$\begin{aligned} {\mathbf {v}}_h({\mathbf {x}})&= \underline{{\mathbf {F}}}_T^{-T} {\hat{{\mathbf {v}}}}_h({\hat{{\mathbf {x}}}}), \end{aligned}$$
(97)
$$\begin{aligned} \underline{\varvec{\tau }}_h({\mathbf {x}})&= 1/J_T^2 \underline{{\mathbf {F}}}_T {\hat{\underline{\varvec{\tau }}}}_h({\hat{{\mathbf {x}}}}) \underline{{\mathbf {F}}}_T^T. \end{aligned}$$
(98)

By application of basic calculus one can see that gradient and strain operators transform as

$$\begin{aligned} \nabla w_h&= \underline{{\mathbf {F}}}_T^{-T} {\hat{\nabla }} {\hat{w}}_h, \end{aligned}$$
(99)
$$\begin{aligned} \underline{\varvec{\varepsilon }}({\mathbf {v}}_h)&= \underline{{\mathbf {F}}}_T^{-T} {\hat{\underline{\varvec{\varepsilon }}}}({\hat{{\mathbf {v}}}}_h) \underline{{\mathbf {F}}}_T^{-1}. \end{aligned}$$
(100)

5 Interpolation operators

The a-priori error analysis of the proposed finite element method relies on interpolation operators for the finite element spaces. Subsequently, we recall the nodal interpolation operators for the spaces \(W_h\) and \({\mathbf {V}}_h\), as well as the Clément quasi-interpolation operator for the piecewise linear, continuous finite element space. Their definitions and according estimates can be found in [15, Sect. 5.5 and 5.6]. Additionally, we present an error estimate for the \({{\mathbf {H}}}(\mathbf {curl})\)-interpolant in the broken \({{\mathbf {H}}}^1\) norm. In Sect. 5.2 we define an interpolation operator for the stress space and give error estimates in the discrete stress norm \(\Vert \cdot \Vert _{\underline{\varvec{{\Sigma }}}_h}\).

5.1 Commuting interpolation operators for \(H^1\) and \({{\mathbf {H}}}(\mathbf {curl})\) and the Clément quasi-interpolation operator

Let \({\mathcal {I}}_{W}\), \({\mathcal {I}}_{{\mathbf {V}}}\) be the nodal interpolation operators defined on the finite element spaces \(W_h, {\mathbf {V}}_h\). These interpolation operators are based on the degrees of freedom of the finite element spaces. They are defined in such a way that they commute with the gradient operator,

$$\begin{aligned} {\mathcal {I}}_{{\mathbf {V}}}\nabla w = \nabla {\mathcal {I}}_{W}w. \end{aligned}$$
(101)

Note that the interpolation operators are not well-defined for general functions in \(H^1\) and \({{\mathbf {H}}}(\mathbf {curl})\), respectively, but only for smoother functions allowing for point values or mean values of the tangential component along element edges. The Clément quasi-interpolation operator \({\mathcal {C}}\) is defined for general functions in \(H^1\), as it uses mean values instead of nodal values. It is continuous in \(H^1\).

The following interpolation error estimates are well known:

Theorem 5

For \(w \in H^{s+1}\) and \({\mathbf {v}}\in {{\mathbf {H}}}^s, \mathbf {curl}{\mathbf {v}}\in {{\mathbf {H}}}^s\) the following interpolation error estimates for \(1 \le s \le k\) hold

$$\begin{aligned} \Vert w - {\mathcal {I}}_{W}w\Vert _{H^1({\varOmega })}&\le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} \Vert w\Vert _{H^{s+1}(T)}^2 \right) ^{1/2}, \end{aligned}$$
(102)
$$\begin{aligned} \Vert {\mathbf {v}}- {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {v}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}&\le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} (\Vert {\mathbf {v}}\Vert _{{{\mathbf {H}}}^{s}(T)}^2+\Vert \mathbf {curl}{\mathbf {v}}\Vert _{{{\mathbf {H}}}^{s}(T)}^2) \right) ^{1/2}, \end{aligned}$$
(103)
$$\begin{aligned} \Vert w - {\mathcal {C}}w\Vert _{L^2({\varOmega })}&\le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2} \Vert w\Vert _{H^{1}(D_T)}^2 \right) ^{1/2}. \end{aligned}$$
(104)

Here, \(D_T\) denotes the neighbourhood of element T, i.e. the union of all elements sharing at least a vertex with T. The constants c are independent of the mesh size h.

In [22], we showed that the Nédélec interpolator \({\mathcal {I}}_{{\mathbf {V}}}\) also approximates in the broken \(H^1\) norm,

Theorem 6

Let \({\mathbf {v}}\in {{\mathbf {H}}}^s, \mathbf {curl}{\mathbf {v}}\in {{\mathbf {H}}}^s\) satisfy \({\mathbf {v}}\in {{\mathbf {H}}}^{s+1}(T)\) for all elements \(T \in {\mathcal {T}}\). Then the interpolation error is bounded in the broken \(H^1\) norm (92) for \(1 \le s \le k\)

$$\begin{aligned} \Vert {\mathbf {v}}- {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {v}}\Vert _{{{\mathbf {H}}}^1,h}&\le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} \Vert \underline{\varvec{\varepsilon }}({\mathbf {v}})\Vert _{{\underline{{\mathbf {H}}}}^s(T)}^2 \right) ^{1/2} . \end{aligned}$$
(105)

5.2 An interpolation operator for the stress space

We characterize the stress interpolation operator \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\) and we show that it approximates not only in the \({\underline{{\mathbf {L}}}}^2\) norm, but also in the discrete \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) norm \(\Vert \cdot \Vert _{\underline{\varvec{{\Sigma }}}_h}\) defined in (91).

We define six constant tensor fields on the reference tetrahedron, which are linearly independent and span the space of constant symmetric tensor fields. Four of these tensors are associated to a face of the tetrahedron, each. They are denoted by \({\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m}, m=1\dots 4\). The normal-normal component of a tensor field \({\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m}\) is constant on face \({\hat{F}}_m\), while it vanishes on all other faces,

$$\begin{aligned} {\hat{S}}^{{\hat{F}}_m}_{{\hat{n}} {\hat{n}}} |_{F_i} = c\delta _{i,m} \qquad \text{ for }\ i,m=1\dots 4. \end{aligned}$$
(106)

The remaining two tensor fields \({\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n}, n=1,2\) have a vanishing normal-normal component on all element faces.

$$\begin{aligned} {\hat{S}}^{{\hat{T}},n}_{{\hat{n}} {\hat{n}}} |_{F_i} = 0 \qquad \text{ for }\ i=1\dots 4, n=1,2. \end{aligned}$$
(107)

Moreover, the face tensors \({\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m}\) are orthogonal to the interior tensors \({\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n}\) in the sense that

$$\begin{aligned} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m} : {\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n} = 0 \qquad \text{ for }\ m=1\dots 4, n=1,2. \end{aligned}$$
(108)

The tensor fields are given by

$$\begin{aligned} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_1}&= \left( \begin{array}{c@{\quad }c@{\quad }c} -6&{}1&{}1 \\ 1&{}0&{}1 \\ 1&{}1&{}0 \end{array}\right) ,&{\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_2}&= \left( \begin{array}{c@{\quad }c@{\quad }c} 0&{}1&{}1 \\ 1&{}-6&{}1 \\ 1&{}1&{}0 \end{array}\right) ,&{\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_3}&= \left( \begin{array}{c@{\quad }c@{\quad }c} 0&{}1&{}1 \\ 1&{}0&{}1 \\ 1&{}1&{}-6 \end{array}\right) , \end{aligned}$$
(109)
$$\begin{aligned} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_4}&= \left( \begin{array}{c@{\quad }c@{\quad }c} 0&{}1&{}1 \\ 1&{}0&{}1 \\ 1&{}1&{}0 \end{array}\right) ,&{\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},1}&= \left( \begin{array}{c@{\quad }c@{\quad }c} 0&{}0&{}-1 \\ 0&{}0&{}1 \\ -1&{}1&{}0 \end{array}\right) ,&{\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},2}&= \left( \begin{array}{c@{\quad }c@{\quad }c} 0&{}-1&{}0 \\ -1&{}0&{}1 \\ 0&{}1&{}0 \end{array}\right) . \end{aligned}$$
(110)

The interpolation operator \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\) mapping any sufficiently smooth, normal-normal-continuous tensor field \(\underline{\varvec{\tau }}\) to \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}\in \underline{\varvec{{\Sigma }}}_h\), is uniquely defined by the following conditions,

  • on each face \(F \in {\mathcal {F}}\),

    $$\begin{aligned} \int _F J_F (\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }})_{nn} q\, ds = 0 \qquad \text{ for } \text{ all }\ q \in P^k(F). \end{aligned}$$
    (111)
  • on each element \(T \in {\mathcal {T}}\)

    $$\begin{aligned} \int _T J_T (\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}) : \left( q \underline{{\mathbf {F}}}_T^{-T} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m} \underline{{\mathbf {F}}}_T^{-1}\right) \, d{\mathbf {x}}&=0&\text{ for } \text{ all }\ q \in P^{k-1}(T), m=1\dots 4, \end{aligned}$$
    (112)
    $$\begin{aligned} \int _T J_T (\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}): \left( q \underline{{\mathbf {F}}}_T^{-T} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n} \underline{{\mathbf {F}}}_T^{-1}\right) \, d{\mathbf {x}}&=0&\text{ for } \text{ all }\ q \in P^{k}(T), n=1,2. \end{aligned}$$
    (113)

Lemma 4

The interpolation operator \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\) is well-defined and preserves piecewise polynomials, i.e. \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}_h = \underline{\varvec{\tau }}_h\) for \(\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h\).

Proof

We show that the conditions (111), (112), (113) are unisolvent for the finite element space \(\underline{\varvec{{\Sigma }}}_h\). It is sufficient to show that (111), (112), (113) applied to \(\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h\) implies \(\underline{\varvec{\tau }}_h = 0\).

We start with the face-bound conditions. On each face \(F \in {\mathcal {F}}\), we have

$$\begin{aligned} \int _F J_F \tau _{h,nn} q\, ds = 0 \qquad \text{ for } \text{ all }\ q \in P^k(F). \end{aligned}$$
(114)

Since \(\tau _{h,nn}\) is polynomial of order k on each face, this implies that \(\tau _{h,nn} = 0\) on each face.

Since the normal-normal component of \( \underline{\varvec{\tau }}_h\) vanishes on all element interfaces, on each element \(T \in {\mathcal {T}}\), \(\underline{\varvec{\tau }}_h\) is a linear combination of element-local interior shape functions. According to [19], there are two types of interior shape functions on the reference element,

$$\begin{aligned}&{\hat{p}}_{i} {\hat{\lambda }}_m {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m},&{\hat{p}}_{i}\ \text{ basis } \text{ for }\ P^{k-1}({\hat{T}}), m=1\dots 4 \end{aligned}$$
(115)
$$\begin{aligned}&{\hat{p}}_{i} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n},&{\hat{p}}_{i}\ \text{ basis } \text{ for }\ P^{k}({\hat{T}}), n=1,2. \end{aligned}$$
(116)

Transforming the integrals (112), (113) to the reference element using the \({\underline{{\mathbf {H}}}}({\text {div}}\,\mathbf {{div}})\) conforming transformation (98) leads to

$$\begin{aligned} \int _{{\hat{T}}} {\hat{\underline{\varvec{\tau }}}}_h : \left( {\hat{p}}_{i} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m}\right) \, d{\hat{{\mathbf {x}}}}&=0&{\hat{p}}_{i}\ \text{ basis } \text{ for }\ P^{k-1}({\hat{T}}), m=1\dots 4, \end{aligned}$$
(117)
$$\begin{aligned} \int _{{\hat{T}}} {\hat{\underline{\varvec{\tau }}}}_h : \left( {\hat{p}}_{i} {\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n} \right) \, d{\hat{{\mathbf {x}}}}&=0&{\hat{p}}_{i}\ \text{ basis } \text{ for }\ P^{k}({\hat{T}}), n=1,2. \end{aligned}$$
(118)

To show that \(\underline{\varvec{\tau }}_h = 0\), conditions (117), (118) are evaluated for all shape functions (115), (116), the results stored in a square but non-symmetric matrix. Since the tensor fields are orthogonal (108), the two groups decouple, leaving two matrices of block structure,

$$\begin{aligned} \left[ {\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m}:{\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_{{\bar{m}}}} \int _{{\hat{T}}} {\hat{\lambda }}_m {\hat{p}}_i {\hat{p}}_{{\bar{i}}} \,d{\hat{{\mathbf {x}}}}\right] _{\begin{array}{c} m,i\\ {\bar{m}}, {\bar{i}} \end{array}}, \qquad \left[ {\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n}:{\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},{\bar{n}}} \int _{{\hat{T}}} {\hat{p}}_i {\hat{p}}_{{\bar{i}}} \,d{\hat{{\mathbf {x}}}} \right] _{\begin{array}{c} n,i\\ {\bar{n}}, {\bar{i}} \end{array}} \end{aligned}$$
(119)

The regularity of these matrices can easily be shown using the linear independence of the tensor fields \({\hat{\underline{{\mathbf {S}}}}}^{{\hat{F}}_m}, {\hat{\underline{{\mathbf {S}}}}}^{{\hat{T}},n}\), the positivity of the barycentric coordinates \({\hat{\lambda }}_m\), and the linear independence of the basis \(\{{\hat{p}}_i\}\). \(\square \)

Theorem 7

For \(\underline{\varvec{\tau }}\in {{\mathbf {H}}}^s\) and \(1 \le s \le k+1\) the interpolation error is bounded by

$$\begin{aligned} \Vert \underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h}&\le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} \Vert \underline{\varvec{\tau }}\Vert _{H^{s}(T)}^2 \right) ^{1/2}. \end{aligned}$$
(120)

Proof

In [22], it was shown that a very similar interpolation operator approximates in the \({\underline{{\mathbf {L}}}}^2/L^2(F)\) norm. The same estimates holds for \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\), which is expected, since the local space is the full polynomial space of order k and \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\) preserves piecewise polynomial finite element functions. The proof relies on a scaling argument and the Bramble-Hilbert lemma applied on the reference element, and is not provided in detail here,

$$\begin{aligned} \Vert \underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })}^2 + \sum _{F \in {\mathcal {F}}} h_F \Vert (\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }})_{nn}\Vert _{L^2(F)}^2 \le c \ \sum _{T \in {\mathcal {T}}} h_T^{2s} \Vert \underline{\varvec{\tau }}\Vert _{H^{s}(T)}^2.\quad \quad \end{aligned}$$
(121)

To estimate the full norm \(\Vert \underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h}\), we show that the supremum term vanishes,

$$\begin{aligned} \sup _{w_h \in W_h} \frac{b(\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}, \nabla w_h)}{\Vert \nabla w_h\Vert _{{{\mathbf {L}}}^2({\varOmega })}} {\mathop {=}\limits ^{!}} 0. \end{aligned}$$
(122)

We observe, due to the definition of the interpolation operator \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\),

$$\begin{aligned}&b(\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}, \nabla w_h) \end{aligned}$$
(123)
$$\begin{aligned}&\quad = \sum _{T \in {\mathcal {T}}} \left( \int _T (\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}) : \underbrace{\underline{\varvec{\varepsilon }}(\nabla w_h)}_{\in P^{k-1}}\, d{\mathbf {x}}- \int _{\partial T} (\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }})_{nn} \underbrace{\frac{\partial w_n}{\partial n}}_{\in P^k}\, ds \right) \end{aligned}$$
(124)
$$\begin{aligned}&\quad = 0 \end{aligned}$$
(125)

The stress interpolation operator \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\) is defined in such a way that \(b(\underline{\varvec{\tau }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\tau }}, \nabla w_h)\) vanishes for any \(w_h \in W_h\). Thus, the interpolation error estimate in the natural norm coincides with the estimate in \({\underline{{\mathbf {L}}}}^2\) norm. \(\square \)

6 Analysis of the finite element problem

A crucial tool for the analysis of the finite element problem is a discrete version of the regular decomposition from Theorem 2. The following discrete decomposition can be deduced directly from the regular decomposition, see [14] for the case of \({\varGamma } = {\varGamma }_D\).

Lemma 5

For a finite element vector field \({\mathbf {v}}_h \in {\mathbf {V}}_h\), there exists a decomposition

$$\begin{aligned} {\mathbf {v}}_h = {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}+ \nabla p_h, \end{aligned}$$
(126)

with \({\mathbf {z}}\in {{\mathbf {H}}}^1_{0,{\varGamma }_D}\), \(\mathbf {curl}{\mathbf {z}}= \mathbf {curl}{\mathbf {v}}_h\) and \(p_h \in W_h\). The respective parts can be bounded by

$$\begin{aligned} \Vert p_h\Vert _{H^1} \le c \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {L}}}^2} \qquad \text{ and } \qquad \Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1} \le c \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}, \end{aligned}$$
(127)

with a generic constant c.

6.1 Continuity of the finite element problem

We are concerned with continuity of the bilinear forms with respect to the discrete norm \(\Vert \cdot \Vert _{\underline{\varvec{{\Sigma }}}_h}\) and the \({{\mathbf {H}}}(\mathbf {curl})\) norm \(\Vert \cdot \Vert _{{{\mathbf {H}}}(\mathbf {curl})}\). Obviously, \(a(\cdot ,\cdot )\) is continuous, as it is continuous in \({\underline{{\mathbf {L}}}}^2\). For \(b(\cdot ,\cdot )\), showing continuity is more challenging.

Lemma 6

The bilinear form \(b(\cdot ,\cdot )\) defined in (84), (85) is continuous on \(\underline{\varvec{{\Sigma }}}_h \times {\mathbf {V}}_h\) with respect to the norms \(\Vert \cdot \Vert _{{{\mathbf {H}}}(\mathbf {curl})}\) and \(\Vert \cdot \Vert _{\underline{\varvec{{\Sigma }}}_h}\). For \(\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h\) and \({\mathbf {v}}_h \in {\mathbf {V}}_h\) there exists a constant c independent of mesh size h

$$\begin{aligned} b(\underline{\varvec{\tau }}_h, {\mathbf {v}}_h) \le c \Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(128)

Estimate (128) can be generalized to any piecewise smooth, normal-normal continuous tensor field \(\underline{\varvec{\tau }}\), \(\underline{\varvec{\tau }}|_T \in {\underline{{\mathbf {H}}}}^1_{sym}(T)\) for all \(T\in {\mathcal {T}}\), \(\tau _{nn}|_F \in L^2(F)\).

Proof

Let \(\underline{\varvec{\tau }}\), \(\underline{\varvec{\tau }}|_T \in {\underline{{\mathbf {H}}}}^1_{sym}(T)\) for all \(T\in {\mathcal {T}}\), \(\tau _{nn}|_F \in L^2(F)\) be a normal-normal continuous piecewise smooth tensor field. Note that this includes all finite element tensor fields \(\underline{\varvec{\tau }}_h\). For \({\mathbf {v}}_h \in {\mathbf {V}}_h\), let \({\mathbf {v}}_h = {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}+ \nabla p_h\) be the decomposition from Lemma 5. We have

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathbf {v}}_h) = b(\underline{\varvec{\tau }}, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}) + b(\underline{\varvec{\tau }}, \nabla p_h). \end{aligned}$$
(129)

We estimate the two parts separately. For the estimate concerning \({\mathbf {z}}\), we first use that \(b(\cdot ,\cdot )\) is continuous in the \({\underline{{\mathbf {L}}}}^2\)/broken \({{\mathbf {H}}}^1\) setting.

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}})\le & {} \left( \Vert \underline{\varvec{\tau }}\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })} + \left( \sum _{F \in {\mathcal {F}}} h_F \Vert \tau _{nn}\Vert _{L^2(F)}^2\right) ^{1/2} \right) \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}\Vert _{{{\mathbf {H}}}^1,h} \end{aligned}$$
(130)
$$\begin{aligned}\le & {} \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h} \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}\Vert _{{{\mathbf {H}}}^1,h} \end{aligned}$$
(131)

Next, we utilize the Clément interpolation operator \({\mathcal {C}}\), which is continuous in \(H^1\),

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}})\le & {} \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h} \left( \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}- {\mathcal {C}}{\mathbf {z}}\Vert _{{{\mathbf {H}}}^1,h} + \Vert {\mathcal {C}}{\mathbf {z}}\Vert _{{{\mathbf {H}}}^1({\varOmega })} \right) \end{aligned}$$
(132)
$$\begin{aligned}\le & {} c \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h} \left( \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}- {\mathcal {C}}{\mathbf {z}}\Vert _{{{\mathbf {H}}}^1,h} + \Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1} \right) . \end{aligned}$$
(133)

By an inverse inequality for the finite element function \({\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}- {\mathcal {C}}{\mathbf {z}}\) we see

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}) \le c \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h} \left( h^{-1}\Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}- {\mathcal {C}}{\mathbf {z}}\Vert _{{{\mathbf {L}}}^2} + \Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1} \right) . \end{aligned}$$
(134)

Using interpolation error estimates for \({\mathcal {I}}_{{\mathbf {V}}}\) and \({\mathcal {C}}\),

$$\begin{aligned} \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}- {\mathcal {C}}{\mathbf {z}}\Vert _{{{\mathbf {L}}}^2} \le \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}}- {\mathbf {z}}\Vert _{{{\mathbf {L}}}^2} + \Vert {\mathcal {C}}{\mathbf {z}}- {\mathbf {z}}\Vert _{{{\mathbf {L}}}^2} \le ch \Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1}, \end{aligned}$$
(135)

we arrive at

$$\begin{aligned} b(\underline{\varvec{\tau }}, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {z}})\le & {} c \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h} \Vert {\mathbf {z}}\Vert _{{{\mathbf {H}}}^1} \end{aligned}$$
(136)
$$\begin{aligned}\le & {} c \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h}\Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(137)

The estimate concerning \(\nabla p_h\) follows directly,

$$\begin{aligned} b(\underline{\varvec{\tau }}, \nabla p_h)\le & {} \sup _{w_h \in W_h} \frac{b(\underline{\varvec{\tau }}, \nabla w_h)}{\Vert \nabla w_h\Vert _{{{\mathbf {L}}}^2}} \, \Vert \nabla p_h\Vert _{{{\mathbf {L}}}^2} \end{aligned}$$
(138)
$$\begin{aligned}\le & {} c \Vert \underline{\varvec{\tau }}\Vert _{\underline{\varvec{{\Sigma }}}_h}\, \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {L}}}^2({\varOmega })}. \end{aligned}$$
(139)

Together, (137) and (139) lead to the desired continuity result. \(\square \)

6.2 Stability of the finite element problem

According to [4], we need to provide stability of the bilinear forms with respect to the discrete norms, i.e. we need to show discrete kernel-coercivity of \(a(\cdot ,\cdot )\) and an inf-sup condition for \(b(\cdot ,\cdot ).\)

Lemma 7

The bilinear form \(a(\cdot ,\cdot )\) is coercive on the discrete kernel \({\text {Ker}}(B_h) := \{\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h, b(\underline{\varvec{\tau }}_h, {\mathbf {v}}_h) = 0 \ \forall {\mathbf {v}}_h \in {\mathbf {V}}_h\}\),

$$\begin{aligned} a(\underline{\varvec{\tau }}_h,\underline{\varvec{\tau }}_h) \ge c \Vert \underline{\varvec{\tau }}_h\Vert ^2_{\underline{\varvec{{\Sigma }}}_h} \qquad \forall \underline{\varvec{\tau }}_h \in {\text {Ker}}(B_h). \end{aligned}$$
(140)

with generic constant c independent of the mesh size.

Proof

Let \(\underline{\varvec{\tau }}_h \in {\text {Ker}}(B_h)\) be fixed. Since \(\underline{\varvec{\tau }}_h\) is a finite element function, the facet term in the discrete norm (91) can be omitted,

$$\begin{aligned} \Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}^2 \le c \left( \Vert \underline{\varvec{\tau }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })}^2 + \left( \sup _{w_h \in W_h} \frac{b(\underline{\varvec{\tau }}_h, \nabla w_h)}{\Vert \nabla w_h\Vert _{{{\mathbf {L}}}^2({\varOmega })}} \right) ^2 \right) . \end{aligned}$$
(141)

By definition of \({\text {Ker}}(B_h)\), we have

$$\begin{aligned} b(\underline{\varvec{\tau }}_h, {\mathbf {v}}_h) = 0. \end{aligned}$$
(142)

Since \(\nabla W_h \subset {\mathbf {V}}_h\), the supremum term in (141) vanishes,

$$\begin{aligned} \Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}^2 \le c \Vert \underline{\varvec{\tau }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })}^2 . \end{aligned}$$
(143)

Hence, coercivity is implied by coercivity of the compliance tensor,

$$\begin{aligned} a(\underline{\varvec{\tau }}_h, \underline{\varvec{\tau }}_h) \ge \lambda _{\min }({\underline{{\mathbf {C}}}^{-1}}) \Vert \underline{\varvec{\tau }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })}^2 \ge c \lambda _{\min }({\underline{{\mathbf {C}}}^{-1}}) \Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}^2. \end{aligned}$$
(144)

\(\square \)

Lemma 8

The bilinear form \(b(\cdot ,\cdot )\) is inf-sup stable on \(\underline{\varvec{{\Sigma }}}_h \times {\mathbf {V}}_h\), for \({\mathbf {v}}_h \in {\mathbf {V}}_h\) there exists some \(\underline{\varvec{\sigma }}_h \in \underline{\varvec{{\Sigma }}}_h\) such that

$$\begin{aligned} b(\underline{\varvec{\sigma }}_h, {\mathbf {u}}_h) \ge c \Vert \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}\Vert {\mathbf {u}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(145)

Proof

The proof is very similar to the one of Lemma 3 in the infinite dimensional setting. Nevertheless, we provide it in detail here.

Let \({\mathbf {v}}_h \in {\mathbf {V}}_h\) be fixed. According to the finite element theory using \({\underline{{\mathbf {L}}}}^2\) and broken \({{\mathbf {H}}}^1\) norms, there exists a unique pair \((\underline{\varvec{\tau }}_h, {\mathbf {u}}_h) \in \underline{\varvec{{\Sigma }}}_h \times {\mathbf {V}}_h\) satisfying

$$\begin{aligned}&a(\underline{\varvec{\sigma }}_h, \underline{\varvec{\tau }}_h) + b(\underline{\varvec{\tau }}_h, {\mathbf {u}}_h) = 0&\forall \underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h, \end{aligned}$$
(146)
$$\begin{aligned}&b(\underline{\varvec{\sigma }}_h, {\tilde{{\mathbf {v}}}}_h) = \int _{\varOmega } \left( {\mathbf {v}}_h \cdot {\tilde{{\mathbf {v}}}}_h + \mathbf {curl}{\mathbf {v}}_h \cdot \mathbf {curl}{\tilde{{\mathbf {v}}}}_h\right) \,d{\mathbf {x}}&\forall {\tilde{{\mathbf {v}}}}_h \in {\mathbf {V}}_h. \end{aligned}$$
(147)

Moreover, we have the stability estimate

$$\begin{aligned} \Vert \underline{\varvec{\sigma }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })} \le c\sup _{{\tilde{{\mathbf {v}}}}_h \in {\mathbf {V}}_h} \frac{\int _{\varOmega } \left( {\mathbf {v}}_h \cdot {\tilde{{\mathbf {v}}}}_h + \mathbf {curl}{\mathbf {v}}_h \cdot \mathbf {curl}{\tilde{{\mathbf {v}}}}_h\right) \,d{\mathbf {x}}}{\Vert {\tilde{{\mathbf {v}}}}_h\Vert _{{{\mathbf {H}}}^1,h}}. \end{aligned}$$
(148)

Since \(\Vert {\tilde{{\mathbf {v}}}}_h\Vert _{{{\mathbf {H}}}^1,h} \ge c \Vert {\tilde{{\mathbf {v}}}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}\), we deduce

$$\begin{aligned} \Vert \underline{\varvec{\sigma }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })} \le c\Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(149)

Testing the second Eq. (147) with a gradient function \(\nabla w_h\), we see using that \(\mathbf {curl}\nabla w_h = 0\),

$$\begin{aligned} b(\underline{\varvec{\sigma }}_h, \nabla w_h) = \int _{\varOmega } {\mathbf {v}}_h \cdot \nabla w_h\,d{\mathbf {x}}. \end{aligned}$$
(150)

Hence, we deduce

$$\begin{aligned} \sup _{w_h \in W_h} \frac{b(\underline{\varvec{\sigma }}_h,\nabla w_h)}{\Vert \nabla w_h\Vert _{{{\mathbf {L}}}^2}} = \sup _{w_h \in W_h} \frac{\int _{\varOmega } {\mathbf {v}}_h \cdot \nabla w_h \,d{\mathbf {x}}}{\Vert \nabla w_h\Vert _{{{\mathbf {L}}}^2}} \le \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {L}}}^2}. \end{aligned}$$
(151)

Adding up squared (149) and (151), we can bound \(\Vert \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}\) by \( \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}\),

$$\begin{aligned} \Vert \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} \le c \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(152)

Finally using \({\tilde{{\mathbf {v}}}}_h = {\mathbf {v}}_h\) as a test function in (147), we arrive at the desired result

$$\begin{aligned} b(\underline{\varvec{\sigma }}_h,{\mathbf {v}}_h) = \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}^2 \ge c \Vert \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(153)

\(\square \)

6.3 Error estimates

Since the finite element method is slightly nonconforming, \(\underline{\varvec{{\Sigma }}}_h \not \subset \underline{\varvec{{\Sigma }}}\), the error cannot be bounded directly using the theory from [4]. Instead, we rely on techniques from Strang’s second lemma, where consistency and interpolation error bound the approximation error.

Theorem 8

Let \((\underline{\varvec{\sigma }},{\mathbf {u}}) \in \underline{\varvec{{\Sigma }}}\times {\mathbf {V}}\) be the solution to the elasticity problem (11), (12). Let \((\underline{\varvec{\sigma }}_h, {\mathbf {u}}_h) \in \underline{\varvec{{\Sigma }}}_h \times {\mathbf {V}}_h\) be the finite element solution from (89), (90). Suppose \(\underline{\varvec{\sigma }}, {\mathbf {u}}\) be sufficiently smooth, then we have the error bound for \(1 \le s \le k\)

$$\begin{aligned}&\Vert \underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} + \Vert {\mathbf {u}}- {\mathbf {u}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})} \end{aligned}$$
(154)
$$\begin{aligned}&\quad \le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} \left( \Vert {\mathbf {u}}\Vert _{{{\mathbf {H}}}^{s+1}(T)}^2 + \Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {H}}}}^s(T)}^2 \right) \right) ^{1/2}. \end{aligned}$$
(155)

Proof

We divide the approximation error into two parts, the interpolation error and a consistency term. To this end, we add and subtract the interpolants \({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}\), \({\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}\) and use the triangle inequality,

$$\begin{aligned}&\Vert \underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} + \Vert {\mathbf {u}}- {\mathbf {u}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})} \end{aligned}$$
(156)
$$\begin{aligned}&\quad \le (\Vert \underline{\varvec{\sigma }}- {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}\Vert _{\underline{\varvec{{\Sigma }}}_h} + \Vert {\mathbf {u}}- {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}\Vert _{{{\mathbf {H}}}(\mathbf {curl})}) \end{aligned}$$
(157)
$$\begin{aligned}&\qquad +(\Vert {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} + \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}- {\mathbf {u}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}) \end{aligned}$$
(158)

We refer to the terms in (157) as interpolation error, while the terms in (158) are referred to as consistency error. We first elaborate on the consistency error, which can itself be bounded by the interpolation error:

Due to the discrete stability, we have

$$\begin{aligned}&c(\Vert {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h} + \Vert {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}- {\mathbf {u}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}) \end{aligned}$$
(159)
$$\begin{aligned}&\quad \le \sup _{\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h} \frac{a({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h, \underline{\varvec{\tau }}_h) + b(\underline{\varvec{\tau }}_h, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}- {\mathbf {u}}_h)}{\Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}} + \sup _{{\mathbf {v}}_h \in {\mathbf {V}}_h} \frac{b({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h, {\mathbf {v}}_h)}{\Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}} \end{aligned}$$
(160)
$$\begin{aligned}&\quad = \sup _{\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h} \frac{a({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}, \underline{\varvec{\tau }}_h) + b(\underline{\varvec{\tau }}_h, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}})}{\Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}} + \sup _{{\mathbf {v}}_h \in {\mathbf {V}}_h} \frac{b({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}_h, {\mathbf {v}}_h)}{ \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}} \end{aligned}$$
(161)

We proceed for the first term, adding and subtracting \(\int _{\varOmega } {\underline{{\mathbf {C}}}^{-1}}\underline{\varvec{\sigma }}: \underline{\varvec{\tau }}_h\, d{\mathbf {x}}\) and using that the solution \({\mathbf {u}}\) is sufficiently smooth to have \(\underline{\varvec{\varepsilon }}({\mathbf {u}}) = {\underline{{\mathbf {C}}}^{-1}}\underline{\varvec{\sigma }}\) in \({\underline{{\mathbf {L}}}}^2\),

$$\begin{aligned}&a({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}, \underline{\varvec{\tau }}_h) + b(\underline{\varvec{\tau }}_h, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}) \end{aligned}$$
(162)
$$\begin{aligned}&\quad = \int _{{\varOmega }} {\underline{{\mathbf {C}}}^{-1}}({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}-\underline{\varvec{\sigma }}):\underline{\varvec{\tau }}_h\, d{\mathbf {x}}\end{aligned}$$
(163)
$$\begin{aligned}&\qquad +\sum _{T \in {\mathcal {T}}} \left( \int _T ({\underline{{\mathbf {C}}}^{-1}}\underline{\varvec{\sigma }}- \underline{\varvec{\varepsilon }}({\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}})):\underline{\varvec{\tau }}_h\,d{\mathbf {x}}+ \int _{\partial T} ({\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}})_n \tau _{h,nn}\, ds \right) \end{aligned}$$
(164)
$$\begin{aligned}&\quad = \int _{{\varOmega }} {\underline{{\mathbf {C}}}^{-1}}({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}-\underline{\varvec{\sigma }}):\underline{\varvec{\tau }}_h\, d{\mathbf {x}}\end{aligned}$$
(165)
$$\begin{aligned}&\qquad + \sum _{T \in {\mathcal {T}}} \left( \int _T (\underline{\varvec{\varepsilon }}({\mathbf {u}})-\underline{\varvec{\varepsilon }}({\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}})):\underline{\varvec{\tau }}_h\,d{\mathbf {x}}- \int _{\partial T} (u_n - ({\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}})_n) \tau _{h,nn}\, ds\right) \end{aligned}$$
(166)
$$\begin{aligned}&\quad \le c \left( \Vert {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })}\Vert \underline{\varvec{\tau }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })} + \Vert {\mathbf {u}}- {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}\Vert _{{{\mathbf {H}}}^1({\varOmega }),h} \Vert \underline{\varvec{\tau }}_h\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })} \right) . \end{aligned}$$
(167)

In line (166), we used that the solution \({\mathbf {u}}\) is continuous, and thus \(u_n\) can be added to the surface integrals as a vanishing jump term. Thus, we have reduced the first term of the consistency error (161) to the interpolation error,

$$\begin{aligned}&\sup _{\underline{\varvec{\tau }}_h \in \underline{\varvec{{\Sigma }}}_h} \frac{a({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}, \underline{\varvec{\tau }}_h) + b(\underline{\varvec{\tau }}_h, {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}})}{\Vert \underline{\varvec{\tau }}_h\Vert _{\underline{\varvec{{\Sigma }}}_h}} \end{aligned}$$
(168)
$$\begin{aligned}&\quad \le c \left( \Vert {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {L}}}}^2({\varOmega })} + \Vert {\mathbf {u}}- {\mathcal {I}}_{{\mathbf {V}}}{\mathbf {u}}\Vert _{{{\mathbf {H}}}^1,h} \right) \end{aligned}$$
(169)
$$\begin{aligned}&\quad \le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} \left( \Vert {\mathbf {u}}\Vert _{{{\mathbf {H}}}^{s+1}(T)}^2 + \Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {H}}}}^s(T)}^2 \right) \right) ^{1/2}. \end{aligned}$$
(170)

We proceed to the second term in (161). We know that both \(\underline{\varvec{\sigma }}\) and \(\underline{\varvec{\sigma }}_h\) satisfy the equilibrium condition (12) with test function \({\mathbf {v}}_h \in {\mathbf {V}}_h \subset {\mathbf {V}}\), and thus \(b(\underline{\varvec{\sigma }},{\mathbf {v}}_h) = b(\underline{\varvec{\sigma }}_h, {\mathbf {v}}_h)\). We deduce

$$\begin{aligned} b({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}-\underline{\varvec{\sigma }}_h, {\mathbf {v}}_h) = b({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}-\underline{\varvec{\sigma }}, {\mathbf {v}}_h) = \left\langle \mathbf {{div}}({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}), {\mathbf {v}}_h\right\rangle . \end{aligned}$$
(171)

We use Lemma 6 to show that \(\left\langle \mathbf {{div}}({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}), {\mathbf {v}}_h\right\rangle \) is bounded with respect to the discrete norms, as we assume \(\underline{\varvec{\sigma }}\) to be piecewise smooth normal-normal continuous,

$$\begin{aligned} \left\langle \mathbf {{div}}({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}), {\mathbf {v}}_h\right\rangle \le c \Vert {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}\Vert _{\underline{\varvec{{\Sigma }}}_h}\Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}. \end{aligned}$$
(172)

Thus, the second term of the consistency error (161) can be bounded by

$$\begin{aligned} \sup _{{\mathbf {v}}_h \in {\mathbf {V}}_h} \frac{b({\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}-\underline{\varvec{\sigma }}_h, {\mathbf {v}}_h)}{ \Vert {\mathbf {v}}_h\Vert _{{{\mathbf {H}}}(\mathbf {curl})}}&\le c \Vert {\mathcal {I}}_{\underline{\varvec{{\Sigma }}}}\underline{\varvec{\sigma }}- \underline{\varvec{\sigma }}\Vert _{\underline{\varvec{{\Sigma }}}_h} \end{aligned}$$
(173)
$$\begin{aligned}&\le c \left( \sum _{T \in {\mathcal {T}}} h_T^{2s} \Vert \underline{\varvec{\sigma }}\Vert _{{\underline{{\mathbf {H}}}}^s({\varOmega })}^2 \right) ^{1/2} . \end{aligned}$$
(174)

Together with the interpolation error estimates we arrive at the desired results. \(\square \)