# Constrained and unconstrained stable discrete minimizations for p-robust local reconstructions in vertex patches in the de Rham complex

Théophile Chaumont-Frelet, Martin Vohralík

► To cite this version:

Théophile Chaumont-Frelet, Martin Vohralík. Constrained and unconstrained stable discrete minimizations for p-robust local reconstructions in vertex patches in the de Rham complex. Foundations of Computational Mathematics, 2024, 10.1007/s10208-024-09674-7. http-03749682v3

HAL Id: hal-03749682

https://inria.hal.science/hal-03749682v3

Submitted on 7 Oct 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
CONSTRAINED AND UNCONSTRAINED STABLE DISCRETE
MINIMIZATIONS FOR *p*-ROBUST LOCAL RECONSTRUCTIONS
IN VERTEX PATCHES IN THE DE RHAM COMPLEX*

T. CHAUMONT-FRELET† AND M. VOHRALÍK‡

ABSTRACT. We analyze constrained and unconstrained minimization problems on patches of tetrahedra sharing a common vertex with discontinuous piecewise polynomial data of degree p. We show that the discrete minimizers in the spaces of piecewise polynomials of degree p conforming in the $H^1$, $H(\text{curl})$, or $H(\text{div})$ spaces are as good as the minimizers in these entire (infinite-dimensional) Sobolev spaces, up to a constant that is independent of p. These results are useful in the analysis and design of finite element methods, namely for devising stable local commuting projectors and establishing local-best-global-best equivalences in a priori analysis and in the context of a posteriori error estimation. Unconstrained minimization in $H^1$ and constrained minimization in $H(\text{div})$ have been previously treated in the literature. Along with improvement of the results in the $H^1$ and $H(\text{div})$ cases, our key contribution is the treatment of the $H(\text{curl})$ framework. This enables us to cover the whole De Rham diagram in three space dimensions in a single setting.

KEYWORDS. potential reconstruction, flux reconstruction, a posteriori error estimate, robustness, polynomial degree, best approximation, finite element method, local-global equivalence.

MATHEMATICS SUBJECT CLASSIFICATION. 65N15, 65N30, 65K10.

Communicated by Rob Stevenson.

# 1. INTRODUCTION

The concept of “equilibrated flux”, dating back to at least the seminal paper [29], is the
basis for the design of guaranteed a posteriori error estimates for finite element discretiza-
tion of various PDE problems, see [17, 2, 27, 31, 6, 18, 26, 21, 32, 8] and the references
therein. One key feature of this family of estimators is that they can be designed so that
they are “polynomial-degree-robust” (or simply, *p*-robust), meaning that their overestima-
tion factor does not depend on the polynomial degree *p* of the discretization space. This
fact has first been established in [5] when considering a conforming finite element discretiza-
tion of the two-dimensional Poisson problem. The proof hinges on the following result: if

<footnote>†Inria Univ. Lille and Laboratoire Paul Painlevé, 59655 Villeneuve-d'Ascq, France</footnote>

<footnote>‡Inria, 48 rue Barrault, 75647 Paris, France & CERMICS, Ecole des Ponts, 77455 Marne-la-Vallée, France</footnote>

<footnote>*This project has received funding from the European Research Council (ERC) under the European Unions Horizon 2020 research and innovation program (grant agreement No 647134 GATIPOR).</footnote>
$\mathcal{T}_a$ is a vertex patch of triangles sharing a vertex $a$, $\omega_a$ is the corresponding domain, $p \ge 0$ is a polynomial degree, and $r_p \in \mathcal{P}_p(\mathcal{T}_a)$ as well as $\tau_p \in \mathcal{RT}_p(\mathcal{T}_a)$ are given (discontinuous) piecewise polynomial data (these notations are rigorously introduced below), there holds

$$ (1.1) \qquad \min_{\substack{w_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap \mathcal{H}_0(\mathrm{div}, \omega_a) \\ \nabla \cdot w_p = r_p}} \|w_p - \tau_p\|_{\omega_a} \le C_{\mathrm{st}} \min_{\substack{w \in \mathcal{H}_0(\mathrm{div}, \omega_a) \\ \nabla \cdot w = r_p}} \|w - \tau_p\|_{\omega_a}, $$

where the constant $C_{\mathrm{st}}$ only depends on the shape-regularity parameter of the patch; crucially, $C_{\mathrm{st}}$ is independent of $p$. The proof of (1.1) hinges on the volume and normal trace $p$-robust polynomial extensions on a single tetrahedron of [13, Proposition 4.2] and [16, Theorem 7.1], and the result also holds in three space dimensions, see [22, Corollary 3.3]. The (fully computable) minimizer on the left-hand side of (1.1) is directly involved in the construction of the a posteriori error estimator, while the minimum of the right-hand side is not computable but can be straightforwardly related to the discretization error in the patch domain $\omega_a$. The constant $C_{\mathrm{st}}$ thus naturally enters the efficiency estimate of the estimator, and the $p$-robustness is a consequence of the fact that it is independent of $p$.

Constrained minimization problems of the form (1.1) are sufficient for the a posteriori analysis of conforming finite element discretizations. However, when considering nonconforming discretizations [18], another family of minimization problems comes into play. Specifically, the following stability result is of paramount importance: given a (discontinuous) piecewise polynomial $\chi_p \in \mathcal{P}_{p+1}(\mathcal{T}_a)$ vanishing on $\partial \omega_a$, there holds

$$ (1.2) \qquad \min_{v_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap \mathcal{H}_0^1(\omega_a)} \|\nabla(v_p - \chi_p)\|_{\omega_a} \le C_{\mathrm{st}} \min_{v \in \mathcal{H}_0^1(\omega_a)} \|\nabla(v - \chi_p)\|_{\omega_a}, $$

where $\nabla$ denotes the broken (elementwise) gradient and $C_{\mathrm{st}}$ again does not depend on $p$, see [22, Corollary 3.1] which builds on [14, Theorem 6.1]. Similarly to (1.1), the minimizer of the left-hand side of (1.2) is computed as a part of the estimator construction, while the right-hand side can be linked to the discretization error in the patch domain $\omega_a$.

The $H^1$ and $H(\mathrm{div})$ spaces in (1.1) and (1.2) are naturally involved in the context of the Poisson problem, since the Laplace differential operator is a composition of gradient and divergence. When considering Maxwell's equations and their discretization by Nédélec's elements, minimization problems similar to (1.1) and (1.2) but involving the $H(\mathrm{curl})$ Sobolev space and the curl operator naturally emerge [7, 9, 11]. In particular, an equivalent to (1.1) on a smaller edge patch of tetrahedra has been recently established in [9, Theorem 3.1], building on [13, Proposition 4.2] and [15, Theorem 7.2].

In addition to the analysis of a posteriori error estimators, constrained and unconstrained minimization problems of the form (1.1) and (1.2) are also instrumental in the design of stable local commuting interpolation operators having the projection property under minimal regularity and in the equivalence of “global-best” and “local-best” approximations, see [35, 33, 10, 19].

The goal of the present work is threefold: (i) to establish a $H(\mathrm{curl})$-variant of (1.1) and (1.2) on a vertex patch of tetrahedra; (ii) present a complete theory of constrained and unconstrained local minimization problems in the De Rham complex in three space
<figure><img src="image_2.png" /><figcaption>FIGURE 1. Interior patch (left) and boundary patch (right, with $\Gamma_a = \emptyset$ and consequently $\Gamma = \partial\omega_a$)</figcaption></figure>

dimensions, realizing that the **H(curl)**-minimization was the last piece missing; (iii) complement on and improve the results presented in [22] for the treatment of boundary patches.

The remainder of this work is organized as follows. In Section 2, we specify the setting as well as the notation. Section 3 presents our main results, and we show in Section 4 that these also cover the case of inhomogeneous boundary conditions. Section 5 then collects some technical results and detailed notations used in the bulk of the proofs for interior patches in Section 6. We treat the case of boundary patches in Section 7. A technical result on mappings of two-dimensional triangular meshes is presented in Appendix A. We label as “Proposition” known results, whereas the main new results are named “Theorem” or “Corollary”.

## 2. SETTING

2.1. **Vertex patch.** Throughout this work, $\mathcal{T}_a$ denotes a patch of tetrahedra, a finite collection of closed nontrivial tetrahedra $K \subset \mathbb{R}^3$ that all have **a** as vertex, and which is such that for two elements $K_{\pm} \in \mathcal{T}_a$, the intersection $K_- \cap K_+$ is either the vertex **a**, a full edge of both $K_-$ and $K_+$, or a full face of both $K_-$ and $K_+$. We also assume that the patch is face connected, meaning that a path between two points in two different tetrahedra in $\mathcal{T}_a$ can always pass through interiors of tetrahedra faces. We denote by $\omega_a$ the interior of $\cup_{K \in \mathcal{T}_a} K$. We suppose that it has a Lipschitz boundary $\partial\omega_a$ and that $\bar{\omega}_a$ is homotopic to a ball. For a tetrahedron $K$, $n_K$ is its unit normal vector, outward to $K$. For the applications we have in mind, this situation appears when **a** is a vertex of a simplicial mesh $\mathcal{T}_h$ of some computational domain $\Omega$ in the context of finite element methods, see, e.g., [12, 4, 20].
<figure><img src="image_3.png" /><figcaption>FIGURE 2. Boundary patches with $\Gamma_a \neq \emptyset$; $\Gamma_a$ corresponding to all faces $F \in \mathcal{F}_a$ lying on the boundary of $\omega_a$ and sharing the vertex $a$ (left), $\Gamma_a$ corresponding to some faces $F \in \mathcal{F}_a$ lying on the boundary of $\omega_a$ and sharing the vertex $a$ (right)</figcaption></figure>

Let $\mathcal{F}_a$ denote the set of the (closed) faces of the tetrahedra of the patch; with each face $F \in \mathcal{F}_a$, we associate a unit normal vector $n_F$ of an arbitrary but fixed orientation. We will distinguish two situations. When $\omega_a$ contains an open ball around $a$, we call $\mathcal{T}_a$ an “interior patch” and we set $\Gamma := \partial\omega_a$ and $\Gamma_a := \emptyset$, see Figure 1, left, for an illustration. When this is not the case, we speak of a “boundary patch”. Then, we suppose that there is a cone $C$ with the vertex $a$ and a strictly positive solid angle such that $C \cap \omega_a = \emptyset$, forming an “opening”. Since $\omega_a$ has a Lipschitz boundary, there is exactly one such an opening. In this case, $\Gamma_a$ corresponds to some or all faces $F \in \mathcal{F}_a$ lying on the boundary of $\omega_a$ and sharing the vertex $a$ and $\Gamma := \partial\omega_a \setminus \bar{\Gamma}_a$. In all cases, we suppose that both $\Gamma$ and $\Gamma_a$ are connected and have Lipschitz boundaries, which in particular excludes “checkerboard” boundary patterns. Figure 1, right, and Figures 2 and 3 provide illustrations.

We will say that two elements $K_{\pm} \in \mathcal{T}_a$ of the patch are neighbors if and only if they share a face, i.e., if there exists $F \in \mathcal{F}_a$ such that $F = K_- \cap K_+$.

2.2. **Shape regularity.** For a tetrahedron $K$, let $h_K$ and $\rho_K$ respectively denote the diameter of $K$ and the diameter of the largest ball contained in $K$. The shape-regularity parameter $\kappa_K := h_K/\rho_K$ is then a measure of the “flatness” of $K$, see, e.g., [12, 20]. If $\mathcal{T}$ is a collection of tetrahedra, we denote by $\kappa_{\mathcal{T}} := \max_{K \in \mathcal{T}} \kappa_K$ the shape-regularity parameter of $\mathcal{T}$.
<figure><img src="image_4.png" /><figcaption>FIGURE 3. A boundary patch with $\Gamma_a \neq \emptyset$: excluded “checkerboard” situation</figcaption></figure>

2.3. **Function spaces.** If $\omega \subset \mathbb{R}^3$ is a domain (open, bounded, and connected set) with Lipschitz boundary, $H^1(\omega)$, $H(\text{curl}, \omega)$, and $H(\text{div}, \omega)$ are the usual Sobolev spaces [1, 4, 20, 24], $H^1(\omega) := [H^1(\omega)]^3$, and $L^2(\omega) := [L^2(\omega)]^3$. If $\gamma \subset \partial\omega$ is a relatively open subset of the boundary of $\omega$, $H_{0,\gamma}^1(\omega)$ is the subset of functions of $H^1(\omega)$ with vanishing trace on $\gamma$, and $H_{0,\gamma}^1(\omega) := [H_{0,\gamma}^1(\omega)]^3$. In the $H(\text{curl})$ setting, we then denote

$$H_{0,\gamma}(\text{curl}, \omega) := \{v \in H(\text{curl}, \omega) \mid v \times n_{\omega} = 0 \text{ on } \gamma\},$$

where the notion of trace is understood by duality, i.e., $v \times n_{\omega} = 0$ on $\gamma$ means that

$$(\nabla \times v, \phi)_{\omega} - (v, \nabla \times \phi)_{\omega} = 0 \quad \forall \phi \in H_{0, \partial\omega \setminus \bar{\gamma}}^{1}(\omega).$$

In the $H(\text{div})$ setting, similarly,

$$H_{0,\gamma}(\text{div}, \omega) := \{v \in H(\text{div}, \omega) \mid v \cdot n_{\omega} = 0 \text{ on } \gamma\},$$

where $v \cdot n_{\omega} = 0$ on $\gamma$ means that

$$(\nabla \cdot v, \phi)_{\omega} + (v, \nabla \phi)_{\omega} = 0 \quad \forall \phi \in H_{0, \partial\omega \setminus \bar{\gamma}}^{1}(\omega).$$

We refer the reader to [23] for a detailed treatment of boundary conditions in $H(\text{curl}, \omega)$ and $H(\text{div}, \omega)$. For the sake of simplicity, we also define $L_{0,\gamma}^2(\omega)$ as $L^2(\omega)$ if $\gamma$ is non-empty, and as the subset of $L^2(\omega)$ with functions of zero mean value on $\omega$ if $\gamma$ is empty. We will also employ the above notations if $\omega$ is a (closed) tetrahedron and $\gamma$ the union of some of its (closed) faces.
2.4. **Piecewise polynomial spaces.** Consider a tetrahedron $K$. For $q \ge 0$, $P_q(K)$ is the set of polynomials of degree less than or equal to $q$, and $P_q(K) := [P_q(K)]^3$. The spaces of Raviart–Thomas and Nédélec polynomials are then defined by

$$ \mathcal{RT}_q(K) := \mathcal{P}_q(K) + x\mathcal{P}_q(K), \quad \mathcal{N}_q(K) := \mathcal{P}_q(K) + x \times \mathcal{P}_q(K), $$

see [30, 28, 4, 20]. If $\mathcal{T}$ is a collection of tetrahedra, we employ the notations $P_q(\mathcal{T})$, $\mathcal{RT}_q(\mathcal{T})$, and $\mathcal{N}_q(\mathcal{T})$ for functions whose restrictions to each $K \in \mathcal{T}$ belong respectively to $P_q(K)$, $\mathcal{RT}_q(K)$, and $\mathcal{N}_q(K)$. Notice that these spaces have no “built-in” continuity conditions (they form the so-called broken spaces); we impose the continuity conditions by an intersection with the Sobolev spaces from Section 2.3.

### 3. MAIN RESULTS

We start by stating the following result from [22, Corollaries 3.3 and 3.8].<fnref n="1" /> Here and below, $C(x)$ means a generic constant only depending on the quantity $x$. Thus, our results only depend on the shape-regularity $\kappa_{\mathcal{T}_a}$ of the patch $\mathcal{T}_a$ and not on the underlying polynomial degree $p$ (or mesh size $h$ or any other parameter).

**Proposition 3.1** (Constrained minimization in $H_{0,\Gamma}(\text{div}, \omega_a)$). For all $p \ge 0$, $\tau_p \in \mathcal{RT}_p(\mathcal{T}_a)$, and $r_p \in P_p(\mathcal{T}_a) \cap L_{0,\Gamma_a}^2(\omega_a)$, we have

$$ \min_{\substack{w_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap H_{0,\Gamma}(\text{div}, \omega_a) \\ \nabla \cdot w_p = r_p}} \|w_p - \tau_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \min_{\substack{w \in H_{0,\Gamma}(\text{div}, \omega_a) \\ \nabla \cdot w = r_p}} \|w - \tau_p\|_{\omega_a}. $$

Our first new result is an easy consequence of Proposition 3.1 and treats unconstrained minimization in $H(\text{curl}, \omega_a)$.

**Corollary 3.2** (Unconstrained minimization in $H_{0,\Gamma}(\text{curl}, \omega_a)$). For all $p \ge 0$ and all $\tau_p \in \mathcal{RT}_p(\mathcal{T}_a)$, we have

$$ \min_{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap H_{0,\Gamma}(\text{curl}, \omega_a)} \|\nabla \times v_p - \tau_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \min_{v \in H_{0,\Gamma}(\text{curl}, \omega_a)} \|\nabla \times v - \tau_p\|_{\omega_a}. $$

*Proof.* We proceed as in [10, proof of Theorem 1]. From our assumptions in Section 2.1, $\omega_a$ is such that $\overline{\omega}_a$ is homotopic to a ball, the boundary $\partial\omega_a$ is Lipschitz, and $\Gamma$ is connected and has a Lipschitz boundary. Thus, it follows that the range of the curl operator $\nabla \times$ acting on $H_{0,\Gamma}(\text{curl}, \omega_a)$ is exactly the kernel of the divergence operator on $H_{0,\Gamma}(\text{div}, \omega_a)$, and a similar property holds for the discrete spaces $\mathcal{N}_p(\mathcal{T}_a) \cap H_{0,\Gamma}(\text{curl}, \omega_a)$ and $\mathcal{RT}_p(\mathcal{T}_a) \cap H_{0,\Gamma}(\text{div}, \omega_a)$.

<footnote n="1">¹Actually, some geometrical situations for boundary patches were excluded in [22] (at most two simplices in the patch $\mathcal{T}_a$ or the existence of an interior vertex in $\Gamma$; these are now covered by the proof detailed in Section 7 below).</footnote>
$H_{0,\Gamma}(\text{div}, \omega_a)$, see, e.g., [3, 4, 23]. Then, the result follows from Proposition 3.1, since

$$
\begin{align*}
\min_{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a)} \|\nabla \times v_p - \tau_p\|_{\omega_a} &= \min_{\substack{w_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap \mathbf{H}_{0,\Gamma}(\text{div}, \omega_a) \\ \nabla \cdot w_p = 0}} \|w_p - \tau_p\|_{\omega_a} \\
&\le C(\kappa_{\mathcal{T}_a}) \min_{\substack{w \in \mathbf{H}_{0,\Gamma}(\text{div}, \omega_a) \\ \nabla \cdot w = 0}} \|w - \tau_p\|_{\omega_a} \\
&= C(\kappa_{\mathcal{T}_a}) \min_{v \in \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a)} \|\nabla \times v - \tau_p\|_{\omega_a}.
\end{align*}
$$

□

The central result of this work is the following theorem which addresses constrained minimization in $H_{0,\Gamma}(\text{curl}, \omega_a)$. Its proof is lengthy, and postponed to Sections 5–7.

**Theorem 3.3** (Constrained minimization in $H_{0,\Gamma}(\text{curl}, \omega_a)$). For all $p \ge 0$, $\chi_p \in \mathcal{N}_p(\mathcal{T}_a)$, and $j_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap H_{0,\Gamma}(\text{div}, \omega_a)$ with $\nabla \cdot j_p = 0$, we have

$$
\min_{\substack{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times v_p = j_p}} \|v_p - \chi_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \min_{\substack{v \in \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times v = j_p}} \|v - \chi_p\|_{\omega_a}.
$$

Our last result concerns unconstrained minimization in $H^1(\omega_a)$. It generalizes the result previously obtained in [22, Corollaries 3.1 and 3.7], which was limited to the case where $\chi_p = \nabla\chi_p$ for $\chi_p \in \mathcal{P}_{p+1}(\mathcal{T}_a)$ with $\chi_p = 0$ on $\Gamma$, and where the geometrical setting of boundary patches had some restrictions.

**Corollary 3.4** (Unconstrained minimization in $H_{0,\Gamma}^1(\omega_a)$). For all $p \ge 0$ and all $\chi_p \in \mathcal{N}_p(\mathcal{T}_a)$, we have

$$
\min_{v_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H_{0,\Gamma}^1(\omega_a)} \|\nabla v_p - \chi_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \min_{v \in H_{0,\Gamma}^1(\omega_a)} \|\nabla v - \chi_p\|_{\omega_a}.
$$

*Proof.* We proceed as in [10, proof of Theorem 2], similarly as above in Corollary 3.2. Because the patch subdomain $\omega_a$ is such that $\bar{\omega}_a$ is homotopic to a ball, the boundary $\partial\omega_a$ is Lipschitz, and $\Gamma$ is connected and has a Lipschitz boundary, the kernel of the curl operator in $H_{0,\Gamma}(\text{curl}, \omega_a)$ is exactly $\nabla(H_{0,\Gamma}^1(\omega_a))$, so that

$$
\min_{v \in H_{0,\Gamma}^1(\omega_a)} \|\nabla v - \chi_p\|_{\omega_a} = \min_{\substack{v \in H_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times v = 0}} \|v - \chi_p\|_{\omega_a}.
$$

Similarly, at the discrete level, the equality

$$
\min_{v_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H_{0,\Gamma}^1(\omega_a)} \|\nabla v_p - \chi_p\|_{\omega_a} = \min_{\substack{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times v_p = 0}} \|v_p - \chi_p\|_{\omega_a}
$$

holds true, see, e.g., [3, 4, 23]. Then the result follows from Theorem 3.3. $\square$

**Remark 3.5** (Converse inequalities). The converse inequalities to all the statements above trivially hold with constant one.
**Remark 3.6** (Unconstrained $H(\operatorname{div}, \omega_a)$ and $L^2(\omega_a)$ and constrained $H^1(\omega_a)$ minimizations). In principle, we could consider three additional minimization problems with the considered spaces, namely (i) the unconstrained minimization in $H(\operatorname{div}, \omega_a)$; (ii) the unconstrained minimization in $L^2(\omega_a)$; and (iii) the constrained minimization in $H^1(\omega_a)$. However, these problems are trivial, since in all cases, the continuous and discrete minimizers are the same. Specifically, we have

$$ \min_{w_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\operatorname{div}, \omega_a)} \|\nabla \cdot w_p - r_p\|_{\omega_a} = \min_{w \in \mathcal{H}_{0,\Gamma}(\operatorname{div}, \omega_a)} \|\nabla \cdot w - r_p\|_{\omega_a} = 0 $$

for all $r_p \in \mathcal{P}_p(\mathcal{T}_a) \cap L_{0,\Gamma_a}^2(\omega_a)$,

$$ \min_{q_p \in \mathcal{P}_p(\mathcal{T}_a)} \|q_p - r_p\|_{\omega_a} = \min_{q \in L^2(\omega_a)} \|q - r_p\|_{\omega_a} = 0 $$

for all $r_p \in \mathcal{P}_p(\mathcal{T}_a)$, as well as

$$ \min_{\substack{v_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H_{0,\Gamma}^1(\omega_a) \\ \nabla v_p = g_p}} \|v_p - \chi_p\|_{\omega_a} = \min_{\substack{v \in H_{0,\Gamma}^1(\omega_a) \\ \nabla v = g_p}} \|v - \chi_p\|_{\omega_a} $$

for all $\chi_p \in \mathcal{P}_{p+1}(\mathcal{T}_a)$ and $g_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\operatorname{curl}, \omega_a)$ such that $\nabla \times g_p = 0$. We refer to [10, Section 3.3] for some more considerations in this direction.

**Remark 3.7** (Stable broken polynomial extensions). The minimization problems considered above can be equivalently formulated as broken polynomial extensions as initially stated in [5], where a discontinuous minimizer with prescribed jumps is sought for instead of a conforming one as above. The two formulations are actually equivalent up to a shift, as shown in [22, Section 3.1] or [9, Lemma 6.8].

## 4. EXTENSION TO INHOMOGENEOUS BOUNDARY CONDITIONS

Proposition 3.1, Corollary 3.2, Theorem 3.3, and Corollary 3.4 are only stated for homogeneous boundary conditions on the $\Gamma$ part of the boundary of $\omega_a$. Supposing inhomogeneous boundary conditions that are suitable piecewise polynomials, these can be lifted to see that the above theory also covers this case. We now present the equivalent reformulations together with their proofs. In place of the boundary data, we rather start directly from the liftings, denoted as $\sigma_p$ and $\sigma_p$ below. These results are in practice particularly useful in the case of boundary patches, where the inhomogeneous boundary conditions of the patch problems stem from inhomogeneous Dirichlet, Neuman, or (homogeneous) Robin boundary conditions of the original partial differential equation (cf. respectively the discussion in [22, Section 4] and in [8]). More precisely, in the applications, inhomogeneous boundary conditions only appear on the part of $\Gamma$ corresponding to the faces sharing the vertex $a$, which is of course covered by the presentation here.

We start with the $H(\operatorname{div}, \omega_a)$-case of Proposition 3.1. For the datum $\sigma_p$ given below, we say that $w \cdot n_{\omega_a} = \sigma_p \cdot n_{\omega_a}$ on $\Gamma$ if $w - \sigma_p \in \mathcal{H}_{0,\Gamma}(\operatorname{div}, \omega_a)$.

**Corollary 4.1** (Constrained minimization in $H(\operatorname{div}, \omega_a)$ with inhomogeneous boundary conditions). For all $p \ge 0$, $\tau_p \in \mathcal{RT}_p(\mathcal{T}_a)$, $\sigma_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap H(\operatorname{div}, \omega_a)$, and $r_p \in \mathcal{P}_p(\mathcal{T}_a)$
with the additional condition $(\sigma_p \cdot n_{\omega_a}, 1)_{\partial\omega_a} = (r_p, 1)_{\omega_a}$ if $\Gamma_a = \emptyset$, we have

$$ \begin{array}{ll} \min_{\substack{w_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap \mathcal{H}(\mathrm{div}, \omega_a) \\ \nabla \cdot w_p = r_p \\ w_p \cdot n_{\omega_a} = \sigma_p \cdot n_{\omega_a} \quad \text{on } \Gamma}} \|w_p - \tau_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) & \min_{\substack{w \in \mathcal{H}(\mathrm{div}, \omega_a) \\ \nabla \cdot w = r_p \\ w \cdot n_{\omega_a} = \sigma_p \cdot n_{\omega_a} \quad \text{on } \Gamma}} \|w - \tau_p\|_{\omega_a} \\ & \min_{\substack{v \in \mathcal{H}(\mathrm{curl}, \omega_a) \\ v \times n_{\omega_a} = \sigma_p \times n_{\omega_a} \quad \text{on } \Gamma}} \|\nabla \times v - \tau_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \end{array} $$

*Proof.* We show the equivalence with Proposition 3.1, by a shift by the piecewise polynomial datum $\sigma_p$. Indeed, suppose the setting of Corollary 4.1; the converse direction is similar. Let $w = w^0 + \sigma_p$ with $w^0 \in \mathcal{H}_{0,\Gamma}(\mathrm{div}, \omega_a)$ and $w_p = w_p^0 + \sigma_p$ with $w_p^0 \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\mathrm{div}, \omega_a)$. Note that $\nabla \cdot \sigma_p \in \mathcal{P}_p(\mathcal{T}_a)$ satisfies $(r_p - \nabla \cdot \sigma_p, 1)_{\omega_a} = 0$ if $\Gamma_a = \emptyset$. Thus, setting $\tilde{r}_p := r_p - \nabla \cdot \sigma_p$ and $\tilde{\tau}_p := \tau_p - \sigma_p$, we have $\tilde{r}_p \in \mathcal{P}_p(\mathcal{T}_a) \cap L_{0,\Gamma_a}^2(\omega_a)$ and $\tilde{\tau}_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a)$. This means that $\tilde{r}_p$ and $\tilde{\tau}_p$ are eligible data for Theorem 3.3, which crucially lead to the same minimization values. $\square$

The unconstrained $H(\mathrm{curl}, \omega_a)$-case of Corollary 3.2 is actually easier, since there is no differential operator constraint. Similarly to the $H(\mathrm{div}, \omega_a)$ case, the notation $w \times n_{\omega_a} = \sigma_p \times n_{\omega_a}$ on $\Gamma$ means that $w - \sigma_p \in \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a)$.

**Corollary 4.2** (Unconstrained minimization in $H(\mathrm{curl}, \omega_a)$ with inhomogeneous boundary conditions). For all $p \ge 0$, all $\sigma_p \in \mathcal{N}_p(\mathcal{T}_a) \cap H(\mathrm{curl}, \omega_a)$, and all $\tau_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a)$, we have

$$ \min_{\substack{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}(\mathrm{curl}, \omega_a) \\ v_p \times n_{\omega_a} = \sigma_p \times n_{\omega_a} \quad \text{on } \Gamma}} \|\nabla \times v_p - \tau_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \quad \min_{\substack{v \in \mathcal{H}(\mathrm{curl}, \omega_a) \\ v \times n_{\omega_a} = \sigma_p \times n_{\omega_a} \quad \text{on } \Gamma}} \|\nabla \times v - \tau_p\|_{\omega_a} $$

*Proof.* We show the equivalence with Corollary 3.2, by a shift by the piecewise polynomial datum $\sigma_p$. Suppose the setting of Corollary 4.2; the converse direction is similar. Let $v = v^0 + \sigma_p$ with $v^0 \in \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a)$ and $v_p = v_p^0 + \sigma_p$ with $v_p^0 \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a)$. Note that $\nabla \times \sigma_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a)$ (actually also in $H(\mathrm{div}, \omega_a)$ with $\nabla \cdot (\nabla \times \sigma_p) = 0$). Thus, setting $\tilde{\tau}_p := \tau_p - \nabla \times \sigma_p$, we have $\tilde{\tau}_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a)$, which is an eligible datum for Corollary 3.2, crucially leading to the same minimization values. $\square$

The constrained $H(\mathrm{curl}, \omega_a)$ case of Theorem 3.3 is similar to the situation of Corollary 4.1:

**Corollary 4.3** (Constrained minimization in $H(\mathrm{curl}, \omega_a)$ with inhomogeneous boundary conditions). For all $p \ge 0$, $\chi_p \in \mathcal{N}_p(\mathcal{T}_a)$, $\sigma_p \in \mathcal{N}_p(\mathcal{T}_a) \cap H(\mathrm{curl}, \omega_a)$, and $j_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap H(\mathrm{div}, \omega_a)$ with $j_p \cdot n_{\omega_a} = (\nabla \times \sigma_p) \cdot n_{\omega_a}$ on $\Gamma$ and $\nabla \cdot j_p = 0$, we have

$$ \min_{\substack{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}(\mathrm{curl}, \omega_a) \\ \nabla \times v_p = j_p \\ v_p \times n_{\omega_a} = \sigma_p \times n_{\omega_a} \quad \text{on } \Gamma}} \|v_p - \chi_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \quad \min_{\substack{v \in \mathcal{H}(\mathrm{curl}, \omega_a) \\ \nabla \times v = j_p \\ v \times n_{\omega_a} = \sigma_p \times n_{\omega_a} \quad \text{on } \Gamma}} \|v - \chi_p\|_{\omega_a} $$

*Proof.* We show the equivalence with Theorem 3.3, again by a shift by the piecewise polynomial datum $\sigma_p$. Suppose the setting of Corollary 4.3; the converse direction is similar. Let $v = v^0 + \sigma_p$ with $v^0 \in \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a)$ and $v_p = v_p^0 + \sigma_p$ with $v_p^0 \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a)$. Note that $\nabla \times \sigma_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap H(\mathrm{div}, \omega_a)$ with $\nabla \cdot (\nabla \times \sigma_p) = 0$ and $(\nabla \times \sigma_p) \cdot n_{\omega_a} = j_p \cdot n_{\omega_a}$ on $\Gamma$. Thus, setting $\tilde{j}_p := j_p - \nabla \times \sigma_p$ and $\tilde{\chi}_p := \chi_p - \sigma_p$, we
have $\tilde{j}_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\text{div}, \omega_a)$ with $\nabla \cdot \tilde{j}_p = 0$ and $\tilde{\chi}_p \in \mathcal{N}_p(\mathcal{T}_a)$. This means that $\tilde{j}_p$ and $\tilde{\chi}_p$ are eligible data for Theorem 3.3, which crucially lead to the same minimization values. $\square$

We now finally present how Corollary 3.4 covers inhomogeneous boundary conditions:

**Corollary 4.4** (Unconstrained minimization in $H^1(\omega_a)$ with inhomogeneous boundary conditions). For all $p \ge 0$, $\sigma_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H^1(\omega_a)$, and all $\chi_p \in \mathcal{N}_p(\mathcal{T}_a)$, we have

$$ \min_{\substack{v_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H^1(\omega_a) \\ v_p = \sigma_p \text{ on } \Gamma}} \|\nabla v_p - \chi_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \min_{\substack{v \in H^1(\omega_a) \\ v = \sigma_p \text{ on } \Gamma}} \|\nabla v - \chi_p\|_{\omega_a}. $$

*Proof.* The proof passes through equivalence with Corollary 3.4. It is similar as above but again easier, since there is no differential operator constraint. Every $v_p \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H^1(\omega_a)$ with $v_p = \sigma_p$ on $\Gamma$ can be written as $v_p = v_p^0 + \sigma_p$, where $v_p^0 \in \mathcal{P}_{p+1}(\mathcal{T}_a) \cap H_{0,\Gamma}^1(\omega_a)$, and similarly for $v = v^0 + \sigma_p$ with $v^0 \in H_{0,\Gamma}^1(\omega_a)$. Then, $\tilde{\chi}_p := \chi_p - \nabla \sigma_p$ lies in $\mathcal{N}_p(\mathcal{T}_a)$ and forms an eligible datum for Corollary 3.4, which leads to the same minimization values. $\square$

The remainder of this manuscript is dedicated to establishing Theorem 3.3.

## 5. DETAILED NOTATION AND PRELIMINARY RESULTS FOR THE PROOFS

5.1. **Tangential traces.** Consider a tetrahedron $K$ and $\mathcal{F} \subset \mathcal{F}_K$, a (sub)set of its faces. The definition of tangential traces of $\mathbf{H}(\text{curl}, K)$ functions on the faces $F \in \mathcal{F}$ is a subtle matter. As we only work with piecewise polynomial traces, one way is to proceed with the liftings as in Corollaries 4.2 and 4.3. We rather proceed here following [7, 9], introducing the more general concept of a weak tangential trace, solely working with the boundary data (called $\mathbf{r}_p$ here) and not directly their Nédélec liftings ($\boldsymbol{\sigma}_p$ in Corollaries 4.2 and 4.3).

If $v \in \mathcal{H}^1(K)$ and $F \in \mathcal{F}_K$, we denote by

$$ (5.1) \qquad \pi_F^\tau(v) := (v - (v \cdot \mathbf{n}_F)\mathbf{n}_F)|_F \in \mathcal{L}^2(F) $$

its “usual” tangential trace on the face $F$ (the orientation of $\mathbf{n}_F$ is not important here). We then define surface Nédélec spaces on faces as traces of volume Nédélec polynomials, setting

$$ \mathcal{N}_p(F) := \{\pi_F^\tau(v) \mid v \in \mathcal{N}_p(K)\}, $$

and, if $w \in \mathcal{N}_p(F)$,

$$ \text{curl}_F w := (\nabla \times v)|_F \cdot \mathbf{n}_F, $$

where $v \in \mathcal{N}_p(K)$ is such that $w = \pi_F^\tau(v)$ (the orientation of $\mathbf{n}_F$ counts in the definition of $\text{curl}_F$). One easily checks that for any face $F$ (which is geometrically a triangle), these definitions are independent of the choice of the tetrahedron $K$ such that $F \in \mathcal{F}_K$.

For a collection of faces $\mathcal{F} \subset \mathcal{F}_K$, we introduce

$$ \mathcal{N}_p(\mathcal{F}) := \prod_{F \in \mathcal{F}} \mathcal{N}_p(F) $$

and

$$ (5.2) \qquad \mathcal{N}_p(\Gamma_{\mathcal{F}}) := \{w \in \mathcal{N}_p(\mathcal{F}) \mid \exists v \in \mathcal{N}_p(K); w|_F = \pi_F^\tau(v) \ \forall F \in \mathcal{F}\}. $$
Notice that there is an induced tangential trace compatibility condition on each edge shared by faces of $\mathcal{F}$ in the definition of $\mathcal{N}_p(\Gamma_{\mathcal{F}})$.

We then define a weak notion of tangential trace using integration by parts. Specifically, if $v \in \mathbf{H}(\mathrm{curl}, K)$ and $r_p \in \mathcal{N}_p(\Gamma_{\mathcal{F}})$ for some $p \ge 0$, the statement “$v|_{\Gamma_{\mathcal{F}}} = r_p$” means that

$$ (5.3) \qquad (\nabla \times v, \phi)_K - (v, \nabla \times \phi)_K = \sum_{F \in \mathcal{F}} (r_p, \phi \times n_K)_F \quad \forall \phi \in \mathbf{H}_{\tau, \mathcal{F}^c}^1(K), $$

where

$$ \mathbf{H}_{\tau, \mathcal{F}^c}^1(K) := \{ w \in \mathbf{H}^1(K) \mid \pi_F^\tau(w) = 0 \quad \forall F \in \mathcal{F}^c := \mathcal{F}_K \setminus \mathcal{F} \}. $$

Notice that when $v \in \mathbf{H}^1(K)$, $v|_{\Gamma_{\mathcal{F}}} = r_p$ if and only if $\pi_F^\tau(v) = r_p|_F$ for all $F \in \mathcal{F}$.

**Remark 5.1** (Compatibility of the weak definitions of tangential traces). Let $\Gamma_{\mathcal{F}}$ be the portion of the boundary of $K$ corresponding to the faces in $\mathcal{F}$ and $\Gamma_{\mathcal{F}}^c$ the corresponding complement (both open). We note that when $r_p = 0$, the subspace of $v \in \mathbf{H}(\mathrm{curl}, K)$ such that $v|_{\Gamma_{\mathcal{F}}} = 0$ is identical with $\mathbf{H}_{0,\Gamma_{\mathcal{F}}}(\mathrm{curl}, K)$ from Section 2.3, where test functions $w \in \mathbf{H}^1(K)$ such that $w = 0$ on $\Gamma_{\mathcal{F}}^c$ are used. Using test functions $w \in \mathbf{H}^1(K)$ such that only $\pi_F^\tau(w) = 0$ on $\Gamma_{\mathcal{F}}^c$ will be exploited below for the Piola transforms.

5.2. **Piola mappings.** Consider two tetrahedra $K_{\mathrm{in}}$, $K_{\mathrm{out}} \in \mathcal{T}_a$ and an invertible affine transformation $\psi : K_{\mathrm{in}} \to K_{\mathrm{out}}$. Such a transformation can be uniquely identified by specifying which vertex of $K_{\mathrm{in}}$ is mapped to which vertex of $K_{\mathrm{out}}$. We denote by $\mathcal{J}$ the (constant) Jacobian matrix of $\psi$ and we let $\varepsilon := \mathrm{sign}(\det \mathcal{J})$.

We associate with $\psi$ two “Piola” mappings for vector-valued functions $v : K_{\mathrm{in}} \to \mathbb{R}^3$ defined by

$$ (5.4) \qquad \psi^c(v) := \mathcal{J}^{-T} (v \circ \psi^{-1}), \qquad \psi^d(v) := (\det \mathcal{J})^{-1} \mathcal{J} (v \circ \psi^{-1}). $$

These mappings commute with the curl operator in the sense that

$$ (5.5) \qquad \nabla \times (\psi^c(v)) = \psi^d (\nabla \times v) $$

whenever $v \in \mathbf{H}(\mathrm{curl}, K_{\mathrm{in}})$. In addition, if $v_{\mathrm{in}} \in \mathbf{H}(\mathrm{curl}, K_{\mathrm{in}})$ and $w_{\mathrm{out}} \in \mathbf{H}(\mathrm{curl}, K_{\mathrm{out}})$ we have

$$ (5.6) \qquad (\psi^c(v_{\mathrm{in}}), \nabla \times w_{\mathrm{out}})_{K_{\mathrm{out}}} = \varepsilon(v_{\mathrm{in}}, \nabla \times ((\psi^c)^{-1}(w_{\mathrm{out}})))_{K_{\mathrm{in}}}. $$

Finally, we use the fact that the Piola mappings are stable in the sense that

$$ (5.7) \qquad \|\psi^c(v)\|_{K_{\mathrm{out}}} \le C(\kappa_{\mathcal{T}_a}) \|v\|_{K_{\mathrm{in}}} \quad \forall v \in \mathcal{L}^2(K_{\mathrm{in}}). $$

We refer the reader to [20, Section 9] for an in-depth presentation of Piola mappings and proofs of the properties stated above.

5.3. **Stability in one tetrahedron.** We close this section with a simple extension of a result from [7, Theorem 2], corresponding to Theorem 3.3 (or more precisely Corollary 4.3) where the vertex patch $\mathcal{T}_a$ is replaced by a single tetrahedron $K$.
**Definition 5.2** (Compatible data in a tetrahedron). Let $K$ be a tetrahedron. Consider a (sub)set $\mathcal{F} \subset \mathcal{F}_K$ of the faces of $K$. We say that $\mathbf{j}_p \in \mathcal{RT}_p(K)$ and $\mathbf{r}_p \in \mathcal{N}_p(\mathcal{F})$ are compatible data if

$$ (5.8a) \qquad \nabla \cdot \mathbf{j}_p = 0, $$

$$ (5.8b) \qquad \mathbf{r}_p \in \mathcal{N}_p(\Gamma_{\mathcal{F}}), $$

$$ (5.8c) \qquad \mathbf{j}_p \cdot \mathbf{n}_F = \mathrm{curl}_F(\mathbf{r}_p|_F) \quad \forall F \in \mathcal{F}. $$

**Lemma 5.3** (Stable minimization in a tetrahedron). Consider a tetrahedron $K$ and a (sub)set $\mathcal{F}$ of its faces. For all $p \ge 0$, for all compatible data $\mathbf{j}_p \in \mathcal{RT}_p(K)$ and $\mathbf{r}_p \in \mathcal{N}_p(\mathcal{F})$ as per Definition 5.2, and for all $\chi_p \in \mathcal{N}_p(K)$, we have

$$ \min_{\substack{\mathbf{v}_p \in \mathcal{N}_p(K) \\ \nabla \times \mathbf{v}_p = \mathbf{j}_p \\ \mathbf{v}_p|_{\Gamma_p} = \mathbf{r}_p}} \|\mathbf{v}_p - \chi_p\|_K \le C(\kappa_K) \min_{\substack{\mathbf{v} \in \mathcal{H}(\mathrm{curl}, K) \\ \nabla \times \mathbf{v} = \mathbf{j}_p \\ \mathbf{v}|_{\Gamma_p} = \mathbf{r}_p}} \|\mathbf{v} - \chi_p\|_K. $$

*Proof.* The proof proceeds by a shift by $\chi_p$, similarly to that of Corollary 4.3. Let us introduce $\tilde{\mathbf{j}}_p := \mathbf{j}_p - \nabla \times \chi_p$ and $\tilde{\mathbf{r}}_p|_F := \mathbf{r}_p|_F - \pi_F^\tau(\chi_p)$ for all $F \in \mathcal{F}$. The new data $\tilde{\mathbf{j}}_p$ and $\tilde{\mathbf{r}}_p$ are compatible as per Definition 5.2, since $\chi_p \in \mathcal{N}_p(K)$. We now have from [7, Theorem 2] (which corresponds to Lemma 5.3 when $\chi_p = 0$) that

$$ \min_{\substack{\tilde{\mathbf{v}}_p \in \mathcal{N}_p(K) \\ \nabla \times \tilde{\mathbf{v}}_p = \tilde{\mathbf{j}}_p \\ \tilde{\mathbf{v}}_p|_{\Gamma_p} = \tilde{\mathbf{r}}_p}} \|\tilde{\mathbf{v}}_p\|_K \le C(\kappa_K) \min_{\substack{\tilde{\mathbf{v}} \in \mathcal{H}(\mathrm{curl}, K) \\ \nabla \times \tilde{\mathbf{v}} = \tilde{\mathbf{j}}_p \\ \tilde{\mathbf{v}}|_{\Gamma_p} = \tilde{\mathbf{r}}_p}} \|\tilde{\mathbf{v}}\|_K. $$

Denote respectively by $\mathbf{v}^*, \tilde{\mathbf{v}}^* \in \mathcal{N}_p(K)$ and $\mathbf{v}^*, \tilde{\mathbf{v}}^* \in \mathcal{H}(\mathrm{curl}, K)$ the (unique) minimizers of the above left- and right-hand sides. Then the respective inequalities write as $\|\mathbf{v}^* - \chi_p\|_K \le C(\kappa_K)\|\mathbf{v}^* - \chi_p\|_K$ and $\|\tilde{\mathbf{v}}^*\|_K \le C(\kappa_K)\|\tilde{\mathbf{v}}^*\|_K$ and a shift by $\chi_p$ shows that actually $\tilde{\mathbf{v}}^* = \mathbf{v}^* - \chi_p$ and $\tilde{\mathbf{v}}^* = \mathbf{v}^* - \chi_p$. $\square$

## 6. PROOF OF THEOREM 3.3 FOR INTERIOR PATCHES

We first consider interior patches, i.e., the case where $\omega_a$ contains an open ball around $\mathbf{a}$ (so that $\mathbf{a} \notin \partial\omega_a$), where $\Gamma = \partial\omega_a$ and $\Gamma_a = \emptyset$.

We follow the approach introduced in [5] and extended in [22] and [9], so that our proof relies on an explicit construction of a discrete element $\xi_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a)$ satisfying $\nabla \times \xi_p = \mathbf{j}_p$ and

$$ \|\xi_p - \chi_p\|_{\omega_a} \le C(\kappa_{\mathcal{T}_a}) \min_{\substack{\mathbf{v} \in \mathcal{H}_{0,\Gamma}(\mathrm{curl}, \omega_a) \\ \nabla \times \mathbf{v} = \mathbf{j}_p}} \|\mathbf{v} - \chi_p\|_{\omega_a}. $$

To construct this element, we pass through the patch one tetrahedron at a time, following a suitable enumeration $K_1, K_2, \dots, K_{|\mathcal{T}_a|}$. At each step $1 \le j \le |\mathcal{T}_a|$, $\xi_p|_{K_j}$ is defined as the minimizer of an element-wise constrained minimization problem like in Lemma 5.3, with carefully chosen boundary data.

For this argument to function, we need a suitable enumeration of the tetrahedra of the patch, to pass in the right order. This is elaborated in Section 6.1. Then, we need to ensure
<figure><img src="image_5.png" /><figcaption>FIGURE 4. Patch enumeration of Proposition 6.1, where “loops” around edges give property (i) and where all elements except $K_1$ and $K_8$ have both already enumerated and not yet enumerated neighbors, i.e., property (ii) (left). Invalid enumeration (right).</figcaption></figure>

that data we prescribe for the minimization problem in each element $K_j$ are compatible as per Definition 5.2. It turns out that two arduous cases appear. First, the argument becomes subtle when $K_j$ is the last element closing a loop around an edge $e$ of the patch. Similarly, the last element $K_{|\mathcal{T}_a|}$ of the patch must be carefully addressed. Section 6.2 and 6.3 provide intermediate results to treat these two cases.

**6.1. Enumeration of the elements in the patch.** For $K \in \mathcal{T}_a$, we denote by $\mathcal{F}_K^{\text{int}}$ the set of faces of $K$ sharing the vertex $a$. If $e$ is an edge of the patch having $a$ as a vertex, we denote by $\mathcal{T}_e \subset \mathcal{T}_a$ the edge patch of elements sharing the edge $e$ and by $\omega_e$ the associated open subdomain.

We call an enumeration of the patch $\mathcal{T}_a$ an ordering of its elements $K_1, \dots, K_{|\mathcal{T}_a|}$. For such an enumeration, for $1 \le j \le |\mathcal{T}_a|$, we denote by $\mathcal{F}_j^{\#} \subset \mathcal{F}_{K_j}^{\text{int}}$ the set of faces of $K_j$ shared with an already enumerated element $K_i$ with $i < j$, and we set $\mathcal{F}_j^{\flat} := \mathcal{F}_{K_j}^{\text{int}} \setminus \mathcal{F}_j^{\#}$. The result in [22, Lemma B.1] provides us with a suitable enumeration featuring the key properties listed below and illustrated in Figure 4.

**Proposition 6.1 (Patch enumeration).** There exists an enumeration $\{K_1, \dots, K_{|\mathcal{T}_a|}\}$ of the vertex patch $\mathcal{T}_a$ such that:
<figure><img src="image_6.png" /><figcaption>FIGURE 5. Two-color refinement (black and white) $\mathcal{T}_e'$ around an edge $e$ of Proposition 6.2 (one of the tetrahedra in $\mathcal{T}_e$, different from $K_j$, is cut into $K_+$ and $K_-$) (left). Three-color refinement (black, grey, and white) around a vertex $\mathbf{a}$ of Proposition 6.3 (trivial situation where $\mathcal{T}_a'$ can be taken as $\mathcal{T}_a$) (right).</figcaption></figure>

(i) For $1 < j \le |\mathcal{T}_a|$, if there are at least two faces in $\mathcal{F}_j^\sharp$ intersecting in an edge, then all the elements sharing this edge come sooner in the enumeration, i.e., if $|\mathcal{F}_j^\sharp| \ge 2$ with $F^1, F^2 \in \mathcal{F}_j^\sharp$, then letting $e := F^1 \cap F^2$, $K_i \in \mathcal{T}_e \setminus \{K_j\}$ implies that $i < j$.

(ii) For all $1 < j < |\mathcal{T}_a|$, there are one or two neighbors of $K_j$ which have been already enumerated and correspondingly two or one neighbors of $K_j$ which have not been enumerated yet, i.e., $|\mathcal{F}_j^\sharp| \in \{1, 2\}$ (so that $|\mathcal{F}_j^\flat| = 3 - |\mathcal{F}_j^\sharp| \in \{1, 2\}$ as well) for all but the first and the last element. In particular, $\mathcal{F}_j^\sharp$ is empty if and only if $j = 1$ and $\mathcal{F}_j^\sharp$ contains all the interior faces of $K_j$ (so that $\mathcal{F}_j^\flat$ is empty) if and only if $j = |\mathcal{T}_a|$.

## 6.2. Two-color refinement of edge patches.
This section recalls the following useful result to deal with the last element of an edge patch of [22, Lemma B.2], illustrated in Figure 5, left.

**Proposition 6.2** (Two-color refinement around edges). Fix a tetrahedron $K_j \in \mathcal{T}_a$ and an edge $e$ of $K_j$ having $\mathbf{a}$ as one endpoint. Then there exists a conforming refinement $\mathcal{T}_e'$ of $\mathcal{T}_e$ composed of tetrahedra such that

(i) $\mathcal{T}_e'$ contains $K_j$.

(ii) All the tetrahedra in $\mathcal{T}_e'$ have $e$ as an edge, and their two other vertices lie on $\partial\omega_{\mathbf{a}}$.
(iii) There holds $\kappa_{\mathcal{T}'_e} \le 2\kappa_{\mathcal{T}_e}$.

(iv) Collecting all the vertices of $\mathcal{T}'_e$ that are not endpoints of $e$ in the set $\mathcal{V}'_e$, there is a two-color map $\text{col}: \mathcal{V}'_e \to \{1,2\}$ so that for all $\kappa \in \mathcal{T}'_e$, the two vertices of $\kappa$ that are not endpoints of $e$, say $\{\mathbf{a}_\kappa^n\}_{1\le n\le 2}$, satisfy $\text{col}(\mathbf{a}_\kappa^n) = n$.

Above, $\mathcal{T}'_e$ can be taken as $\mathcal{T}_e$ when the number of tetrahedra in $\mathcal{T}_e$ is even. When the number of tetrahedra in $\mathcal{T}_e$ is odd, it is enough to cut one of the tetrahedra in $\mathcal{T}_e$, different from $K_j$, into two tetrahedra still sharing the edge $e$. This is illustrated in Figure 5, left, with the two tetrahedra $K_+$ and $K_-$ in dark and light grey, respectively.

**6.3. Three-color refinement of vertex patches.** Here, we present the following technical result to address the last element of the vertex patch from [22, Lemma B.3], illustrated in Figure 5, right.

**Proposition 6.3 (Three-color patch refinement).** Fix a tetrahedron $K_j \in \mathcal{T}_a$. There exists a conforming refinement $\mathcal{T}'_a$ of $\mathcal{T}_a$ composed of tetrahedra such that

(i) $\mathcal{T}'_a$ contains $K_j$.

(ii) All the tetrahedra in $\mathcal{T}'_a$ have $\mathbf{a}$ as a vertex, and their three other vertices lie on $\partial\omega_a$.

(iii) There holds $\kappa_{\mathcal{T}'_a} \le C(\kappa_{\mathcal{T}_a})$.

(iv) Collecting all the vertices of $\mathcal{T}'_a$ distinct from $\mathbf{a}$ in the set $\mathcal{V}'_a$, there is a three-color map $\text{col}: \mathcal{V}'_a \to \{1,2,3\}$ so that for all $\kappa \in \mathcal{T}'_a$, the three vertices of $\kappa$ distinct from $\mathbf{a}$, say $\{\mathbf{a}_\kappa^n\}_{1\le n\le 3}$, satisfy $\text{col}(\mathbf{a}_\kappa^n) = n$.

**6.4. Proof of Theorem 3.3 for interior patches.** We are now ready to prove Theorem 3.3 for interior patches.

*Proof of Theorem 3.3 for interior patches.* Denote by

$$ \mathbf{v}^* := \arg \min_{\substack{\mathbf{v} \in \mathcal{H}_{0,\Gamma}(\text{curl},\omega_a) \\ \nabla \times \mathbf{v} = \mathbf{j}_p}} \|\mathbf{v} - \mathbf{\chi}_p\|_{\omega_a} $$

the continuous minimizer.

We rely on the enumeration $K_j$, $1 \le j \le |\mathcal{T}_a|$, from Proposition 6.1, see Figure 4 for illustration. Following [5, 9, 22], we construct an admissible $\xi_p$ from the discrete minimization set $\mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\text{curl}, \omega_a)$ by sequential element-wise minimizations following this enumeration. Specifically, for each element $K_j$, $1 \le j \le |\mathcal{T}_a|$, we define $F_j^{\text{ext}} := \partial K_j \cap \partial \omega_a$ and the set of faces $\mathcal{F}_j := \{F_j^{\text{ext}}\} \cup \mathcal{F}_j^{\#}$ consisting of the face $F_j^{\text{ext}}$ on the patch boundary and of the faces of $K_j$ with neighbors that come sooner in the enumeration, with a smaller index. We also denote the local volume data by $\mathbf{j}_p^j := \mathbf{j}_p|_{K_j} \in \mathcal{R}\mathcal{T}_p(K_j)$ and $\chi_p^j := \chi_p|_{K_j} \in \mathcal{N}_p(K_j)$. We will then iteratively define a boundary datum $\mathbf{r}_p^j$, see Figure 6 for illustration and Step 1 below for details, leading to the definition

$$ (6.1) \qquad \xi_p|_{K_j} := \xi_p^j := \arg \min_{\substack{\mathbf{v}_p \in \mathcal{N}_p(K_j) \\ \nabla \times \mathbf{v}_p = \mathbf{j}_p^j \\ \mathbf{v}_p|_{\mathcal{F}_j} = \mathbf{r}_p^j}} \|\mathbf{v}_p - \chi_p^j\|_{K_j}. $$
<figure><img src="image_7.png" /><figcaption>FIGURE 6. Minimizations (6.1) on the elements $K_j$, $j = 1, 2, 6, 8$, of the patch $\mathcal{T}_a$ as shown and enumerated in Figure 4, left. The boundary datum $\mathbf{r}_p^j$ is zero on the external faces $F_j^{\text{ext}} \subset \partial\omega_a$ (this is always imposed) (faces $F_j^{\text{ext}}$ hatched) and induced by the tangential trace of $\xi_p^i$ on the previously enumerated elements $K_i$ as defined in Step 1 (there is no such datum on $K_1$ and respectively 1, 2, and 3 on $K_2$, $K_6$, and $K_8$) (interfaces in grey).</figcaption></figure>

We prove, by induction, in Step 2 below, that at each step $j$, the data $\mathbf{j}_p^j$ and $\mathbf{r}_p^j$ are admissible in the sense of Definition 5.2, with in particular $\mathbf{r}_p^j \in \mathcal{N}_p(\Gamma_{\mathcal{T}_j})$. Thus, the problems in (6.1) are well-posed. Then, in Step 3, we prove that

$$ (6.2) \qquad \|\xi_p^j - \chi_p^j\|_{K_j} \le C(\kappa_{\mathcal{T}_a}) \|\mathbf{v}^* - \chi_p\|_{\omega_a}. $$

Finally, in Step 4, relying on the boundary data $\mathbf{r}_p^j$, we will establish that $\xi_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a)$, showing that $\xi_p$ belongs to the discrete minimization set in Theorem 3.3. This will conclude the proof since then

$$ \begin{aligned} \min_{\substack{v_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times v_p = j_p}} & \|v_p - \chi_p\|_{\omega_a} \le \|\xi_p - \chi_p\|_{\omega_a} = \left\{ \sum_{j=1}^{|\mathcal{T}_a|} \|\xi_p^j - \chi_p^j\|_{K_j}^2 \right\}^{\frac{1}{2}} \\ & \le C(\kappa_{\mathcal{T}_a}) |\mathcal{T}_a|^{\frac{1}{2}} \|\mathbf{v}^* - \chi_p\|_{\omega_a} = C(\kappa_{\mathcal{T}_a}) |\mathcal{T}_a|^{\frac{1}{2}} \min_{\substack{v \in \mathbf{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times v = j_p}} \|v - \chi_p\|_{\omega_a}, \end{aligned} $$

and the number $|\mathcal{T}_a|$ of tetrahedra in the patch $\mathcal{T}_a$ is bounded by constant only depending on the shape-regularity parameter $\kappa_{\mathcal{T}_a}$.
**Step 1.** We start by defining the boundary data $\mathbf{r}_p^j$ used in (6.1). We let (i) $\mathbf{r}_p^j|_{F_j^{\text{ext}}} := \mathbf{0}$ on the external face $F_j^{\text{ext}}$; and (ii) on each face $F_{i,j} \in \mathcal{F}_j^{\sharp}$ shared by $K_j$ and $K_i$, $i < j$, we set $\mathbf{r}_p^j|_{F_{i,j}} := \pi_{F_{i,j}}^{\tau}(\xi_p^i)$, which we can do since $\xi_p^i$ is already defined on the simplices $K_i$ with a smaller index $i$. This is illustrated in Figure 6.

**Step 2.** We now verify that the data constructed above are admissible as per Definition 5.2, so that problem (6.1) is well-posed. Notice that since $\nabla \cdot \mathbf{j}_p^j = \nabla \cdot (\mathbf{j}|_{K_j}) = 0$, (5.8a) is satisfied by construction. Considering (5.8c), we have $\mathcal{F}_j = \{F_j^{\text{ext}}\} \cup \mathcal{F}_j^{\sharp}$. For the exterior face $F_j^{\text{ext}}$, the associated data $\mathbf{r}_p^j|_{F_j^{\text{ext}}} = \mathbf{0}$ always vanishes, and $\mathbf{j}_p \cdot \mathbf{n}_{F_j^{\text{ext}}} = \text{curl}_{F_j^{\text{ext}}} \mathbf{r}_p^j|_{F_j^{\text{ext}}} = 0$ holds true since $\mathbf{j}_p \in \mathbf{H}_0(\text{div}, \omega_a) \cap \mathcal{RT}_p(\mathcal{T}_a)$ by assumption. According to the enumeration from Proposition 6.1, $\mathcal{F}_j^{\sharp}$ is empty on the first element $K_1$, so there is nothing more to verify for (5.8c) when $j = 1$. On the other hand, when $j > 1$, the remaining faces in $\mathcal{F}_j^{\sharp}$ are of the form $F_{i,j} = \partial K_i \cap \partial K_j$, where $K_i$ has been previously visited, $i < j$. We then have

$$ \text{curl}_{F_{i,j}}(\mathbf{r}_p^j|_{F_{i,j}}) = \text{curl}_{F_{i,j}}(\pi_{F_{i,j}}^{\tau}(\xi_p^i)) = (\nabla \times \xi_p^i)|_{F_{i,j}} \cdot \mathbf{n}_{F_{i,j}} = \mathbf{j}_p^i \cdot \mathbf{n}_{F_{i,j}} = \mathbf{j}_p^j \cdot \mathbf{n}_{F_{i,j}} $$

since $\mathbf{j}_p \in \mathbf{H}(\text{div}, \omega_a) \cap \mathcal{RT}_p(\mathcal{T}_a)$ and since $\nabla \times \xi_p^i = \mathbf{j}_p^i$ on $K_i$ by induction. As a result, we are left to check (5.8b). To do so, following (5.2), we need to find $\mathbf{R}_p^j \in \mathcal{N}_p(K_j)$ such that $\mathbf{r}_p^j|_F = \pi_F^{\tau}(\mathbf{R}_p^j)$ for all faces $F \in \mathcal{F}_j$. We distinguish 4 subcases for this purpose.

**Step 2a.** In the first element $K_1$, we have $\mathcal{F}_1 = \{F_1^{\text{ext}}\}$ and $\mathbf{r}_p^1|_{F_1^{\text{ext}}} = \mathbf{0}$. It is clear that $\mathbf{r}_p^1|_{F_1^{\text{ext}}} = \pi_{F_1^{\text{ext}}}^{\tau}(\mathbf{0})$ which shows (5.8b) for $\mathbf{R}_p^1 := \mathbf{0}$.

**Step 2b.** We then consider the case where the element $K_j$, $1 < j < |\mathcal{T}_a|$, is such that $|\mathcal{F}_j^{\sharp}| = 1$, i.e., there is a single element $K_i$ with $i < j$ such that $\mathcal{F}_j^{\sharp} = \{F_{i,j}\}$, $F_{i,j} = \partial K_i \cap \partial K_j$. There exists a unique affine mapping $\psi_{i,j}: K_i \to K_j$ that leaves the face $F_{i,j}$ invariant, and we set $\mathbf{R}_p^j := \psi_{i,j}^c(\xi_p^i) \in \mathcal{N}_p(K_j)$. Since the Piola mapping preserves tangential traces, maps $F_i^{\text{ext}}$ onto $F_j^{\text{ext}}$, and leaves $F_{i,j}$ invariant, we clearly have $\pi_{F_{i,j}}^{\tau}(\mathbf{R}_p^j) = \pi_{F_{i,j}}^{\tau}(\xi_p^i) = \mathbf{r}_p^j|_{F_{i,j}}$ and $\pi_{F_j^{\text{ext}}}^{\tau}(\mathbf{R}_p^j) = \mathbf{0}$ since $\pi_{F_j^{\text{ext}}}^{\tau}(\xi_p^i) = \mathbf{0}$. This shows that $\mathbf{r}_p^j|_F = \pi_F^{\tau}(\mathbf{R}_p^j)$ for all $F \in \mathcal{F}_j$, so that (5.8b) is satisfied in view of definition (5.2).

**Step 2c.** The next case is an element $K_j$ with $1 < j < |\mathcal{T}_a|$ such that $|\mathcal{F}_j^{\sharp}| = 2$. We will use an argument similar to the one above in Step 2b, relying this time on Piola mappings from all tetrahedra sharing the edge $e$ common to the two faces in $\mathcal{F}_j^{\sharp}$. First, since $|\mathcal{F}_j^{\sharp}| = 2$, Proposition 6.1 implies that $K_j$ is the lastly enumerated element of the edge patch $\mathcal{T}_e$. Invoking Proposition 6.2, there is a refined edge patch $\mathcal{T}_e'$ such that $\mathcal{T}_e' = \mathcal{T}_e$ if the number of tetrahedra in $\mathcal{T}_e$ is even, whereas one of the tetrahedra in $\mathcal{T}_e$, different from $K_j$, has been cut into two if $|\mathcal{T}_e|$ is odd. In any case, $\mathcal{T}_e' = \{\kappa_1, \dots, \kappa_n\}$, $\kappa_n = K_j$, and the vertices of $\mathcal{T}_e'$ that are not endpoints of the edge $e$ are colored by two colors (alternating along the numbering $1, \dots, n$).

Let $\psi_{\ell,n}: \kappa_{\ell} \to \kappa_n$ be the unique invertible affine mapping of the tetrahedron $\kappa_{\ell}$ to the tetrahedron $\kappa_n$ preserving the two endpoints of the edge $e$ and the colors of the two other vertices; this in particular means that the faces $F_{\ell}^{\text{ext}}$ are mapped to $F_j^{\text{ext}}$, the two faces in $\mathcal{F}_j^{\sharp}$ are left invariant, and the other faces sharing the edge $e$ have their remaining
vertex mapped while preserving its color. Denote by $\varepsilon_{\ell,n}$ the sign of the determinant of the
Jacobian of $\psi_{\ell,n}$. Let finally, for $1 \le \ell \le n-1$, $\iota(\ell)$ be the index of the element $K_{\iota(\ell)} \in \mathcal{T}_e$
such that $\kappa_{\ell} \subset K_{\iota(\ell)}$ (if the number of tetrahedra in $\mathcal{T}_e$ is even, we can actually always
write $\kappa_{\ell} = K_{\iota(\ell)}$; if not, a strict inclusion only holds on the two subsimplices of the simplex
that has been cut). This allows for the following “folding” Piola mappings definition:

$$
(6.3) \qquad \mathbf{R}_p^j := - \sum_{\ell=1}^{n-1} \varepsilon_{\ell,n} \psi_{\ell,n}^c (\boldsymbol{\xi}_p^{\ell(\ell)}|_{\kappa_\ell}) \in \mathcal{N}_p(K_j).
$$

As $K_j$ is the last element of the edge patch $\mathcal{T}_e$, for all $1 \le \ell \le n-1$, $\xi_p^{\ell(\ell)}$ have been
previously defined, and this in such a way that (i) their tangential traces vanish on $\partial\omega_a$; and
(ii) their tangential traces match on faces shared by the previously enumerated elements.
Now, since the faces in $F_\ell^{\text{ext}} \subset \partial\omega_a$ are mapped to $F_j^{\text{ext}}$, $\pi_{F_j^{\text{ext}}}^\tau(\mathbf{R}_p^j) = \mathbf{0}$ follows from
$\pi_{F_j^{\text{ext}}}^\tau(\xi_p^{\ell(\ell)}|_{\kappa_\ell}) = \mathbf{0}$. Similarly, all the faces sharing the edge $e$ other than the two faces in $\mathcal{F}_j^\sharp$
are mapped twice, with two opposite signs in view of $\varepsilon_{\ell,n}$ (indeed, $\varepsilon_{\ell-,n} + \varepsilon_{\ell+,n} = 0$ if the
two elements $\kappa_{\ell-}$ and $\kappa_{\ell+}$ from $\mathcal{T}_e'$ share a common face), leaving only the contributions
from the neighbors from the two faces in $\mathcal{F}_j^\sharp$. Thus $\pi_{F_{i,j}}^\tau(\mathbf{R}_p^j) = \pi_{F_{i,j}}^\tau(\xi_p^i) = \mathbf{r}_p^j|_{F_{i,j}}$ for the
(two) faces $F_{i,j} \in \mathcal{F}_j^\sharp$, and (5.8b) is satisfied.

**Step 2d.** We finish with the last element $K_j$, $j = |\mathcal{T}_a|$. In this case we have $|\mathcal{F}_j^\sharp| = 3$.
In extension of Step 2c, we rely on Piola mappings from all the tetrahedra of the patch $\mathcal{T}_a$
other than $K_j$. Following Proposition 6.3, we invoke for this purpose a three-color patch
refinement $\mathcal{T}_a'$ such that $\mathcal{T}_a' = \{\kappa_1, \dots, \kappa_n\}$, $\kappa_n = K_j$.

Let $\psi_{\ell,n} : \kappa_{\ell} \to \kappa_n$ be the unique invertible affine mapping of the tetrahedron $\kappa_{\ell}$ to the tetrahedron $\kappa_n$ preserving the vertex $\mathbf{a}$ and the colors of the three other vertices; this in particular means that the faces $F_{\ell}^{\text{ext}}$ are mapped to $F_{j}^{\text{ext}}$ and the other faces have their vertices mapped while preserving their color. Denote by $\varepsilon_{\ell,n}$ the sign of determinant of the Jacobian of $\psi_{\ell,n}$. Let finally, for $1 \le \ell \le n-1$, $\iota(\ell)$ be the index of the element $K_{\iota(\ell)} \in \mathcal{T}_{\mathbf{a}}$ such that $\kappa_{\ell} \subset K_{\iota(\ell)}$. This allows for the following “folding” Piola mappings definition:

$$
(6.4) \qquad \mathbf{R}_p^j := - \sum_{\ell=1}^{n-1} \varepsilon_{\ell,n} \psi_{\ell,n}^c (\xi_p^{\ell(\ell)}|_{\kappa_\ell}) \in \mathcal{N}_p(K_j).
$$

As above in Step 2c, we observe that (i) all $\boldsymbol{\xi}_p^{\ell(\ell)}$ have been previously defined and have a
zero/matching tangential trace; (ii) each boundary face of $\mathcal{T}_a'$ (except of $F_j^{\text{ext}}$) is mapped
to $F_j^{\text{ext}}$; (iii) each interior face of $\mathcal{T}_a'$ other than the three faces from $\mathcal{F}_j^\sharp$ is mapped twice,
each time with an opposite sign; and (iv) the three faces from $\mathcal{F}_j^\sharp$ are only mapped once.
This yields $\pi_{F_j^{\text{ext}}}^{\tau}(\mathbf{R}_p^j) = \mathbf{0}$ together with $\pi_{F_{i,j}}^{\tau}(\mathbf{R}_p^j) = \pi_{F_{i,j}}^{\tau}(\boldsymbol{\xi}_p^i) = \mathbf{r}_p^j|_{F_{i,j}}$ for the (three) faces
$F_{i,j} \in \mathcal{F}_j^\sharp$, so that (5.8b) follows.
**Step 3.** We now show (6.2), that is, at each step $1 \le j \le |\mathcal{T}_a|$, the element $\xi_p^j$ given by (6.1) is stable as compared to the continuous minimizer $v^*$. Let

$$ (6.5) \qquad \mathbf{V}(K_j) := \{ \mathbf{v} \in \mathbf{H}(\mathrm{curl}, K_j) \mid \nabla \times \mathbf{v} = \mathbf{j}_p^j, \mathbf{v}|_{\mathcal{F}_j} = \mathbf{r}_p^j \}. $$

From Step 2, we know that this set is nonempty. To show (6.2), we will construct for every $1 \le j \le |\mathcal{T}_a|$ an element $w_j^* \in \mathbf{V}(K_j)$ such that

$$ (6.6) \qquad \|w_j^* - \chi_p^j\|_{K_j} \le C(\kappa_{\mathcal{T}_a}) \|v^* - \chi_p\|_{\omega_a}. $$

Estimate (6.2) then follows from Lemma 5.3 since

$$ \begin{aligned} \|\xi_p^j - \chi_p^j\|_{K_j} &= \min_{w_p \in \mathcal{V}(K_j) \cap \mathcal{N}_p(K_j)} \|w_p - \chi_p^j\|_{K_j} \\ &\le C(\kappa_{K_j}) \min_{w \in \mathcal{V}(K_j)} \|w - \chi_p^j\|_{K_j} \le C(\kappa_{K_j}) \|w_j^* - \chi_p^j\|_{K_j}. \end{aligned} $$

**Step 3a.** In the first element $K_1$, we actually readily observe that $w_j^* := v^*|_{K_1}$ belongs to the minimization set $\mathbf{V}(K_1)$, so that (6.6) is immediately satisfied with the constant $C(\kappa_{\mathcal{T}_a}) = 1$.

**Step 3b.** We next consider those elements $K_j$, $1 < j < |\mathcal{T}_a|$, for which $|\mathcal{F}_j^\#| = 1$, and we denote by $1 \le i < j$ the index such that $\mathcal{F}_j^\# = \{F_{i,j}\}$ with $F_{i,j} = \partial K_i \cap \partial K_j$. As in Step 2b, we consider the affine map $\psi_{i,j}: K_i \to K_j$ that leaves the face $F_{i,j}$ invariant and we set

$$ (6.7) \qquad w_j^* := v^*|_{K_j} - \psi_{i,j}^c (v^*|_{K_i} - \xi_p^i). $$

We now show that $w_j^*$ belongs to $\mathbf{V}(K_j)$ given by (6.5). First, by the Piola mapping, $w_j^* \in \mathbf{H}(\mathrm{curl}, K_j)$. Moreover, recalling (5.5), it is clear that

$$ \nabla \times w_j^* = \nabla \times (v^*|_{K_j}) - \psi_{ij}^d (\nabla \times (v^*|_{K_i} - \xi_p^i)) = \nabla \times (v^*|_{K_j}) = j_p^j. $$

Finally, roughly speaking, the fact that $w_j^*|_{\mathcal{F}_j} = r_p^j$ follows from (6.7) since all $v^*|_{K_j}, v^*|_{K_i}$, and $\xi_p^i$ have a zero tangential trace on $\partial\omega_a$ and the tangential trace of $v^*$ is continuous across $F_{i,j}$, so that its contribution vanishes in $w_j^*$ and only the desired contribution from $\xi_p^i$ is left. However, in contrast to Step 2b carried out for piecewise polynomials, we cannot rigorously prove this in this strong sense because we cannot easily localize the notion of tangential trace to one face for $\mathbf{H}(\mathrm{curl})$ functions. As a result, we have to resort to the weak notion of tangential trace introduced in (5.3). For this purpose, we first note that, following Step 2b,

$$ w_j^* = v^*|_{K_j} - \psi_{i,j}^c (v^*|_{K_i}) + R_p^j, $$

with $R_p^j|_{\mathcal{F}_j} = r_p^j$. Thus, we need to show that $(v^*|_{K_j} - \psi_{i,j}^c(v^*|_{K_i}))|_{\mathcal{F}_j} = 0$. Recall that $\mathcal{F}_j = \{F_j^{\mathrm{ext}}\} \cup \mathcal{F}_j^\# = \{F_j^{\mathrm{ext}}, F_{i,j}\}$. Following (5.3), let $\phi \in \mathbf{H}_{\tau, \mathcal{F}_j^c}^1(K_j)$. Letting $\psi_{j,i} = (\psi_{i,j})^{-1}$, the function

$$ (6.8) \qquad \tilde{\phi}|_{K_j} := \phi, \qquad \tilde{\phi}|_{K_i} := \psi_{j,i}^c(\phi) $$
belongs to $H_{0,\partial(K_i \cup K_j)\setminus\partial\omega_a}(\text{curl}, K_i \cup K_j)$. Then, noticing that the sign of the determinant of the Jacobian of $\psi_{i,j}$ is negative, (5.6) allows us to write

$$ 
\begin{aligned}
& (\nabla \times (\mathbf{v}^*|_{K_j} - \psi_{i,j}^c(\mathbf{v}^*|_{K_i})), \phi)_{K_j} - (\mathbf{v}^*|_{K_j} - \psi_{i,j}^c(\mathbf{v}^*|_{K_i}), \nabla \times \phi)_{K_j} \\
&= (\nabla \times \mathbf{v}^*, \phi)_{K_j} - (\mathbf{v}^*, \nabla \times \phi)_{K_j} + (\nabla \times \mathbf{v}^*, \psi_{j,i}^c(\phi))_{K_i} - (\mathbf{v}^*, \nabla \times \psi_{j,i}^c(\phi))_{K_i} \\
&= (\nabla \times \mathbf{v}^*, \tilde{\phi})_{K_i \cup K_j} - (\mathbf{v}^*, \nabla \times \tilde{\phi})_{K_i \cup K_j} = 0,
\end{aligned}
$$

since $\mathbf{v}^*|_{K_i \cup K_j} \in H_{0,\partial(K_i \cup K_j)\cap\partial\omega_a}(\text{curl}, K_i \cup K_j)$.

Finally, we have

$$ \mathbf{w}_j^* - \chi_p^j = (\mathbf{v}^*|_{K_j} - \chi_p^j) - \psi_{i,j}^c(\mathbf{v}^*|_{K_i} - \chi_p^i) + \psi_{i,j}^c(\xi_p^i - \chi_p^i), $$

and recalling (5.7), it follows that

$$ \|\mathbf{w}_j^* - \chi_p^j\|_{K_j} \le \|\mathbf{v}^* - \chi_p^j\|_{K_j} + C(\kappa_{\mathcal{T}_a}) (\|\mathbf{v}^* - \chi_p^i\|_{K_i} + \|\xi_p^i - \chi_p^i\|_{K_i}) \le C(\kappa_{\mathcal{T}_a}) \|\mathbf{v}^* - \chi_p\|_{\omega_a}, $$

since (6.2) holds in $K_i$ by induction. Thus (6.6) holds.

**Step 3c.** The next situation is the case of an element $K_j$, $1 < j < |\mathcal{T}_a|$, with $|\mathcal{F}_j^\#| = 2$. We keep the notation of Step 2c for the two-color refinement $\mathcal{T}_e'$ of the patch around the edge $e$ and the associated affine mappings $\psi_{\ell,n}$. We set, in extension of (6.7) from the previous Step 3b and following the recipe (6.3),

$$ (6.9) \qquad \mathbf{w}_j^* := \mathbf{v}^*|_{K_j} + \sum_{\ell=1}^{n-1} \varepsilon_{\ell,n} \psi_{\ell,n}^c (\mathbf{v}^*|_{\kappa_\ell} - \xi_p^{\ell(\ell)}|_{\kappa_\ell}). $$

We now again show that $\mathbf{w}_j^* \in V(K_j)$ given by (6.5). First, by the Piola mappings, $\mathbf{w}_j^* \in H(\text{curl}, K_j)$. Moreover, since $\nabla \times (\mathbf{v}^*|_{K_j}) = \mathbf{j}_p^j$ and $\nabla \times (\mathbf{v}^*|_{\kappa_\ell}) = \nabla \times (\xi_p^{\ell(\ell)}|_{\kappa_\ell}) = \mathbf{j}_p^{\ell(\ell)}|_{\kappa_\ell}$, it is clear that $\mathbf{w}_j^*$ satisfies the curl constraint of $V(K_j)$, $\nabla \times \mathbf{w}_j^* = \mathbf{j}_p^j$. We then turn to the trace constraint $\mathbf{w}_j^*|_{\mathcal{F}_j} = \mathbf{r}_p^j$. We rewrite (6.9), using (6.3), as

$$ \mathbf{w}_j^* = \sum_{\ell=1}^{n} \varepsilon_{\ell,n} \psi_{\ell,n}^c (\mathbf{v}^*|_{\kappa_\ell}) - \sum_{\ell=1}^{n-1} \varepsilon_{\ell,n} \psi_{\ell,n}^c (\xi_p^{\ell(\ell)}|_{\kappa_\ell}) = \sum_{\ell=1}^{n} \varepsilon_{\ell,n} \psi_{\ell,n}^c (\mathbf{v}^*|_{\kappa_\ell}) + \mathbf{R}_p^j, $$

with $\psi_{n,n}^c$ identity and $\varepsilon_{n,n} = 1$. Since $\mathbf{R}_p^j|_{\mathcal{F}_j} = \mathbf{r}_p^j$ from Step 2c, we merely need to show that $(\sum_{\ell=1}^n \varepsilon_{\ell,n} \psi_{\ell,n}^c(\mathbf{v}^*|_{\kappa_\ell}))|_{\mathcal{F}_j} = 0$. Intuitively, this is rather clear; following the reasoning of Step 2c, (i) all the faces $F_\ell^{\text{ext}}$ are mapped to $F_j^{\text{ext}}$, yielding a zero tangential trace; (ii) all the faces sharing the edge $e$, including the two faces in $\mathcal{F}_j^\#$, are mapped twice with two opposite signs, yielding a zero tangential trace. To show this rigorously, we again rely on the characterization (5.3). Recalling that $\mathcal{F}_j = \{F_j^{\text{ext}}\} \cup \mathcal{F}_j^\#$, consider thus $\phi \in H_{\tau, \mathcal{F}_j}^1(K_j)$. In extension of (6.8), let us define

$$ (6.10) \qquad \tilde{\phi}|_{\kappa_\ell} := \psi_{n,\ell}^c(\phi) \qquad 1 \le \ell \le n. $$
By the two-coloring of Proposition 6.2, as in Step 2c, this “unfolding” of $\phi$ gives $\tilde{\phi} \in H_{0,\partial\omega_e \setminus \partial\omega_a}(\text{curl}, \omega_e)$. Then, using (5.6), we have

$$ 
\begin{aligned}
& \left( \nabla \times \left( \sum_{\ell=1}^{n} \varepsilon_{\ell,n} \psi_{\ell,n}^{c}(\mathbf{v}^{*}|_{\kappa_{\ell}}) \right), \phi \right)_{K_j} - \left( \sum_{\ell=1}^{n} \varepsilon_{\ell,n} \psi_{\ell,n}^{c}(\mathbf{v}^{*}|_{\kappa_{\ell}}), \nabla \times \phi \right)_{K_j} \\
&= \sum_{\ell=1}^{n} \left\{ (\nabla \times \mathbf{v}^{*}, \psi_{n,\ell}^{c}(\phi))_{\kappa_{\ell}} - (\mathbf{v}^{*}, \nabla \times (\psi_{n,\ell}^{c}(\phi)))_{\kappa_{\ell}} \right\} \\
&= (\nabla \times \mathbf{v}^{*}, \tilde{\phi})_{\omega_e} - (\mathbf{v}^{*}, \nabla \times \tilde{\phi})_{\omega_e} = 0,
\end{aligned}
$$

since $\mathbf{v}^*|_{\omega_e} \in H_{0,\partial\omega_e \cap \partial\omega_a}(\text{curl}, \omega_e)$, so that indeed $\mathbf{w}_j^* \in V(K_j)$.

We conclude this step by showing that (6.6) holds true. First, we write that

$$ 
\begin{aligned}
\mathbf{w}_j^* - \mathbf{\chi}_p^j = \mathbf{v}^*|_{K_j} - \mathbf{\chi}_p^j &+ \sum_{\ell=1}^{n-1} \varepsilon_{\ell,n} \psi_{\ell,n}^{c}(\mathbf{v}^*|_{\kappa_{\ell}} - \mathbf{\chi}_p^{\ell(\ell)}|_{\kappa_{\ell}}) \\
&+ \sum_{\ell=1}^{n-1} \varepsilon_{\ell,n} \psi_{\ell,n}^{c}(\mathbf{\chi}_p^{\ell(\ell)}|_{\kappa_{\ell}} - \mathbf{\xi}_p^{\ell(\ell)}|_{\kappa_{\ell}}),
\end{aligned}
$$

and it follows that, recalling (5.7),

$$ 
\begin{aligned}
\| \mathbf{w}_j^* - \mathbf{\chi}_p^j \|_{K_j} &\le \| \mathbf{v}^* - \mathbf{\chi}_p^j \|_{K_j} + \sum_{\ell=1}^{n-1} \| \psi_{\ell,n}^c (\mathbf{v}^*|_{\kappa_\ell} - \mathbf{\chi}_p^{\ell(\ell)}|_{\kappa_\ell}) \|_{K_j} + \sum_{\ell=1}^{n-1} \| \psi_{\ell,n}^c (\mathbf{\chi}_p^{\ell(\ell)}|_{\kappa_\ell} - \mathbf{\xi}_p^{\ell(\ell)}|_{\kappa_\ell}) \|_{K_j} \\
&\le \| \mathbf{v}^* - \mathbf{\chi}_p^j \|_{K_j} + C(\kappa_{T_e'}) \left( \sum_{\ell=1}^{n-1} \| \mathbf{v}^* - \mathbf{\chi}_p^{\ell(\ell)} \|_{\kappa_\ell} + \sum_{\ell=1}^{n-1} \| \mathbf{\chi}_p^{\ell(\ell)} - \mathbf{\xi}_p^{\ell(\ell)} \|_{\kappa_\ell} \right) \\
&\le C(\kappa_{T_e'}) \left( \| \mathbf{v}^* - \mathbf{\chi}_p \|_{\omega_a} + \sum_{\ell=1}^{n-1} \| \mathbf{\chi}_p^{\ell(\ell)} - \mathbf{\xi}_p^{\ell(\ell)} \|_{K_{\iota(\ell)}} \right).
\end{aligned}
$$

Then (6.6) follows since $\kappa_{T_e'} \le 2\kappa_{T_e} \le C(\kappa_{T_a})$ and, by induction, (6.2) holds for for $i = \iota(\ell) < j$, $1 \le \ell \le n-1$.

**Step 3d.** The proof for the last element is analogous to that of Step 3c. We in particular still rely on (6.9) and (6.10) where, this time, the three-color patch refinement $T_a' = \{\kappa_1, \dots, \kappa_n\}$, $\kappa_n = K_j$, of Proposition 6.3 is employed. Here, $\tilde{\phi} \in H(\text{curl}, \omega_a)$, whereas, since $\Gamma = \partial\omega_a$ for the considered interior patch case, $\mathbf{v}^* \in H_{0,\partial\omega_a}(\text{curl}, \omega_a)$ by definition.

**Step 4.** We finally define $\mathbf{\xi}_p \in \mathcal{N}_p(T_a)$ by setting $\mathbf{\xi}_p|_{K_j} := \mathbf{\xi}_p^j$ for $1 \le j \le |T_a|$ and verify that $\mathbf{\xi}_p \in H_{0,\Gamma}(\text{curl}, \omega_a)$. By construction, the tangential trace of each $\mathbf{\xi}_p^j$ vanishes on $F_j^{\text{ext}}$, and if $F_{i,j}$ is the face shared by two tetrahedra $K_i$ and $K_j$, the tangential traces of $\mathbf{\xi}_p^i$ and $\mathbf{\xi}_p^j$ match on $F_{i,j}$. It follows that $\mathbf{\xi}_p \in H_{0,\Gamma}(\text{curl}, \omega_a)$. Since, by construction, $\nabla \times (\mathbf{\xi}_p|_{K_j}) = \nabla \times \mathbf{\xi}_p^j = \mathbf{j}_p^j = \mathbf{j}_p|_{K_j}$ for all $K_j \in T_a$, this means that that $\nabla \times \mathbf{\xi}_p = \mathbf{j}_p$ globally in $\omega_a$, which concludes the proof. $\square$
## 7. PROOF OF THEOREM 3.3 FOR BOUNDARY PATCHES

In this section, we study the boundary patches. We will work with different patches obtained by geometrical mappings, some of those will be boundary and some interior in the terminology of Section 2.1. In addition to the notation $\Gamma_a$ and $\Gamma$ therefrom (recall Figures 1 and 2), we denote by $\Gamma_a^{ess}$ the faces from the boundary of $\omega_a$ sharing the vertex $a$ and belonging to $\Gamma$. Here, the tangential trace (essential boundary condition) is imposed in Theorem 3.3. $\Gamma_a = \Gamma_a^{nat}$ then collects the remaining faces from the boundary of $\omega_a$ sharing $a$. Here, no the tangential trace (natural boundary condition) is imposed in Theorem 3.3. By the assumptions, $\Gamma_a^{ess}$ and $\Gamma_a^{nat}$ are both connected and have Lipschitz boundaries.

Let $\mathcal{T}_a$ be a vertex patch in the sense of Section 2.1, interior or boundary. For a given $p \ge 0$ and $\chi_p \in \mathcal{N}_p(\mathcal{T}_a)$ and $j_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\text{div}, \omega_a)$ with $\nabla \cdot j_p = 0$, let

$$ (7.1) \quad \mathbf{v}_p^* := \arg \min_{\substack{\mathbf{v}_p \in \mathcal{N}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times \mathbf{v}_p = j_p}} \|\mathbf{v}_p - \chi_p\|_{\omega_a}, \quad \mathbf{v}^* := \arg \min_{\substack{\mathbf{v} \in \mathcal{H}_{0,\Gamma}(\text{curl}, \omega_a) \\ \nabla \times \mathbf{v} = j_p}} \|\mathbf{v} - \chi_p\|_{\omega_a} $$

be respectively the discrete and continuous minimizers from Theorem 3.3. We will consider here the best uniform constant $C_{\text{st},p,\mathcal{T}_a,\Gamma}$ in the inequality

$$ \|\mathbf{v}_p^* - \chi_p\|_{\omega_a} \le C_{\text{st},p,\mathcal{T}_a,\Gamma} \|\mathbf{v}^* - \chi_p\|_{\omega_a}, $$

i.e.

$$ (7.2) \quad C_{\text{st},p,\mathcal{T}_a,\Gamma} := \sup_{\substack{j_p \in \mathcal{RT}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\text{div},\omega_a); \\ \chi_p \in \mathcal{N}_p(\mathcal{T}_a)}} \frac{\|\mathbf{v}_p^* - \chi_p\|_{\omega_a}}{\|\mathbf{v}^* - \chi_p\|_{\omega_a}}. $$

For interior patches, we have shown in Section 6 that $C_{\text{st},p,\mathcal{T}_a,\Gamma}$ is uniformly bounded by a constant only dependent on the patch shape-regularity parameter $\kappa_{\mathcal{T}_a}$. For boundary patches, it is clear that $C_{\text{st},p,\mathcal{T}_a,\Gamma}$ is bounded for each $p$, and our goal here is to show that it is actually uniformly bounded in $p$, again by $C(\kappa_{\mathcal{T}_a})$ only.

### 7.1. Plan of the proof.
Let us start by structurally describing how the proof is performed. The central idea is to transform an arbitrary boundary patch $\mathcal{T}_a$, covering a polyhedron $\omega_a$ in the full $\mathbb{R}^3$ space, into a reference tetrahedron patch $\hat{\mathcal{T}}_0$ that covers the domain given by the right-angled reference tetrahedron $\hat{\omega}_0$; this is part of the $\mathbf{x}_1, \mathbf{x}_2, \mathbf{x}_3 \ge 0$ eight-space such that $\mathbf{x}_1 + \mathbf{x}_2 + \mathbf{x}_3 \le 1$. The reference tetrahedron patch $\hat{\mathcal{T}}_0$ can possibly have the same mesh topology/connectivity as $\mathcal{T}_a$. In this case, one can imagine that the transformation is doable by moving the vertices of the patch $\mathcal{T}_a$, which leads to the notion of “equivalent patches”. Establishing this rigorously is, however, an involved task. To achieve it, we will rely on a graph-drawing result known as Tutte’s embedding theorem in graph theory [34]. In general, a more involved “extension” concept will be necessary, which serves to prepare conditions in which the Tutte embedding theorem applies. Once the patch $\mathcal{T}_a$ is transformed into a right-angled reference tetrahedron patch $\hat{\mathcal{T}}_0$, we can use arguments based on mirror symmetries around the faces of $\hat{\mathcal{T}}_0$ sharing the vertex 0 to further transform the boundary patch $\hat{\mathcal{T}}_0$ into an interior patch involving eight copies of $\hat{\mathcal{T}}_0$ itself. Then, we can apply the stability result already established for the interior patch in Section 6 and use it to
establish the result for $\tilde{T}_0$ and finally $T_a$. The overall procedure considerably extends and generalizes the approach in [22, Section 7], where only one mapping by a mirror symmetry over a plane was employed to deduce the desired stability result for a boundary patch form that of an interior patch.

## 7.2. Equivalent patches.
As discussed, we will first need the concept of equivalent patches, which, roughly speaking, corresponds to patches having the same mesh topology/connectivity. Let $T_a$ and $\tilde{T}_b$ be two vertex patches around two possibly different vertices $a$ and $b$ in the sense of Section 2.1. $T_a$ and $\tilde{T}_b$ can be interior or boundary.

**Definition 7.1 (Equivalent patches).** Two vertex patches $T_a$ and $\tilde{T}_b$ around the vertices $a$ and $b$ and covering the domains $\omega_a$ and $\tilde{\omega}_b$ are said to be equivalent if there exists a bilipschitz mapping $\psi: \omega_a \to \tilde{\omega}_b$ such that $\psi|_K$ is affine and $\psi(K) \in \tilde{T}_b$ for all $K \in T_a$. Note that $\psi$ necessarily preserves the topology/connectivity, i.e., $b = \psi(a)$, if a (boundary) face $F \in F_a$ shares $a$, then $\psi(F) \in \tilde{F}_b$ is a (boundary) face that shares $b$, and if $K, L \in T_a$ are neighbors over a face $F$, then $\psi(K), \psi(L) \in \tilde{T}_b$ are neighbors over the face $\psi(F)$.

The stability constants of equivalent patches are tightly linked together. Actually, they simply differ up to a factor depending only on the shape regularity parameter of the two patches.

**Lemma 7.2 (Equivalent patches).** If $T_a$ and $\tilde{T}_b$ are equivalent patches in the sense of Definition 7.1, then, for all $p \ge 0$,

$$ (7.3) \qquad C_{\text{st},p,\mathcal{T}_a,\Gamma} \le C(\kappa_{\mathcal{T}_a}, \kappa_{\tilde{T}_b}) C_{\text{st},p,\tilde{T}_b,\tilde{\Gamma}}, $$

where $\tilde{\Gamma} := \psi(\Gamma)$ and $\psi$ is the bilipschitz mapping of Definition 7.1.

*Proof.* Fix a polynomial degree $p \ge 0$. Consider data $\tilde{j}_p \in \mathcal{R}\mathcal{T}_p(T_a) \cap H_{0,\Gamma}(\text{div}, \omega_a)$ with $\nabla \cdot \tilde{j}_p = 0$ and $\chi_p \in \mathcal{N}_p(T_a)$. We define $\tilde{\chi}_p := \psi^d(\tilde{j}_p)$ and $\tilde{\chi}_p := \psi^c(\chi_p)$, where $\psi^d$ and $\psi^c$ are the Piola mappings from (5.4). Because the mapping $\psi$ is Lipschitz and piecewise affine, we have $\tilde{j}_p \in \mathcal{R}\mathcal{T}_p(\tilde{T}_b) \cap H_{0,\tilde{\Gamma}}(\text{div}, \tilde{\omega}_b)$ and $\tilde{\chi}_p \in \mathcal{N}_p(\tilde{T}_b)$. As a result, if we denote by $\tilde{v}^*$ and $\tilde{v}_p^*$ the continuous and discrete minimizers on $\tilde{T}_b$ with data $\tilde{j}_p$ and $\tilde{\chi}_p$, we have

$$ \|\tilde{v}_p^* - \tilde{\chi}_p\|_{\tilde{\omega}_b} \le C_{\text{st},p,\tilde{T}_b,\tilde{\Gamma}} \|\tilde{v}^* - \tilde{\chi}_p\|_{\tilde{\omega}_b}. $$

Then, letting $\|\cdot\|$ be the usual operator norm from $L^2(\omega_a)$ to $L^2(\tilde{\omega}_b)$ (or vice-versa), we have, on the one hand, since $\tilde{v}^*$ is the minimizer and $\psi^c(v^*) \in H_{0,\tilde{\Gamma}}(\text{curl}, \tilde{\omega}_b)$ with $\nabla \times (\psi^c(v^*)) = \tilde{j}_p$ that

$$ \|\tilde{v}^* - \tilde{\chi}_p\|_{\tilde{\omega}_b} \le \|\psi^c(v^*) - \tilde{\chi}_p\|_{\tilde{\omega}_b} = \|\psi^c(v^* - \chi_p)\|_{\tilde{\omega}_b} \le \|\psi^c\| \|v^* - \chi_p\|_{\omega_a}, $$

and, on the other hand, that

$$ \|v_p^* - \chi_p\|_{\omega_a} \le \|(\psi^c)^{-1}(\tilde{v}_p^* - \tilde{\chi}_p)\|_{\omega_a} \le \|(\psi^c)^{-1}\| \|\tilde{v}_p^* - \tilde{\chi}_p\|_{\tilde{\omega}_b}. $$

It follows that

$$ \|v_p^* - \chi_p\|_{\omega_a} \le C_{\text{st},p,\tilde{T}_b,\tilde{\Gamma}} \|\psi^c\| \|(\psi^c)^{-1}\| \|v^* - \chi_p\|_{\omega_a}. $$
Since the data was arbitrary, (7.3) follows from the estimate

$$ \|\psi^c\| \|(\psi^c)^{-1}\| \le \bar{\kappa}_{\mathcal{T}_a}^4 \bar{\kappa}_{\tilde{\mathcal{T}}_b}^4 $$

with

$$ \bar{\kappa}_{\mathcal{T}_a} := \frac{\max_{K \in \mathcal{T}_a} h_K}{\min_{K \in \mathcal{T}_a} \rho_K}, \quad \bar{\kappa}_{\tilde{\mathcal{T}}_b} := \frac{\max_{K \in \tilde{\mathcal{T}}_b} h_K}{\min_{K \in \tilde{\mathcal{T}}_b} \rho_K} $$

that may be easily obtained from standard estimates on the Jacobian matrices J defining the affine mappings (see, e.g., [12, Theorem 3.1.2]). The conclusion then follows since $\bar{\kappa}_{\mathcal{T}_a} \le C(\kappa_{\mathcal{T}_a})$ and $\bar{\kappa}_{\tilde{\mathcal{T}}_b} \le C(\kappa_{\tilde{\mathcal{T}}_b})$. $\square$

### 7.3. Extensions of patches.
We will next need the concept of “patch extension”. Specifically, if a patch $\mathcal{T}_a$ can be extended into another patch $\tilde{\mathcal{T}}_a \supset \mathcal{T}_a$ in a suitable way, then the stability constant $C_{\text{st},p,\mathcal{T}_a,\Gamma}$ of $\mathcal{T}_a$ given by (7.2) will be controlled by that of $\tilde{\mathcal{T}}_a$. Here, $\mathcal{T}_a$ will typically be a boundary patch and $\tilde{\mathcal{T}}_a$ either boundary or interior. The precise definition is as follows.

**Definition 7.3 (Patch extension).** Consider two patches $\mathcal{T}_a$ and $\tilde{\mathcal{T}}_a$ around the same vertex $a$, with associated domains $\omega_a$ and $\tilde{\omega}_a$. We say that $\tilde{\mathcal{T}}_a$ is an extension of $\mathcal{T}_a$ if the following holds:

(1) $\mathcal{T}_a \subset \tilde{\mathcal{T}}_a$.

(2) There exist extension operators $\mathcal{E}^c, \mathcal{E}^d : L^2(\omega_a) \to L^2(\tilde{\omega}_a)$ such that

(a) $\mathcal{E}^c(v)|_{\omega_a} = \mathcal{E}^d(v)|_{\omega_a} = v$ for all $v \in L^2(\omega_a)$;

(b) $\mathcal{E}^c : H_{0,\Gamma}(\text{curl}, \omega_a) \to H_{0,\bar{\Gamma}}(\text{curl}, \tilde{\omega}_a)$ and $\mathcal{E}^d : H_{0,\Gamma}(\text{div}, \omega_a) \to H_{0,\bar{\Gamma}}(\text{div}, \tilde{\omega}_a)$;

(c) $\mathcal{E}^c : \mathcal{N}_q(\mathcal{T}_a) \to \mathcal{N}_q(\tilde{\mathcal{T}}_a)$ and $\mathcal{E}^d : \mathcal{R}\mathcal{T}_q(\mathcal{T}_a) \to \mathcal{R}\mathcal{T}_q(\tilde{\mathcal{T}}_a)$;

(d) $\nabla \times (\mathcal{E}^c(v)) = \mathcal{E}^d(\nabla \times v)$ for all $v \in H_{0,\Gamma}(\text{curl}, \omega_a)$.

(3) There exist restriction operators $\mathcal{R}^c, \mathcal{R}^d : L^2(\tilde{\omega}_a) \to L^2(\omega_a)$ such that

(a) $(\mathcal{R}^c \circ \mathcal{E}^c)(v) = (\mathcal{R}^d \circ \mathcal{E}^d)(v) = v$ for all $v \in L^2(\omega_a)$;

(b) $\mathcal{R}^c : H_{0,\tilde{\Gamma}}(\text{curl}, \tilde{\omega}_a) \to H_{0,\Gamma}(\text{curl}, \omega_a)$ and $\mathcal{R}^d : H_{0,\tilde{\Gamma}}(\text{div}, \tilde{\omega}_a) \to H_{0,\Gamma}(\text{div}, \omega_a)$;

(c) $\mathcal{R}^c : \mathcal{N}_q(\tilde{\mathcal{T}}_a) \to \mathcal{N}_q(\mathcal{T}_a)$ and $\mathcal{R}^d : \mathcal{R}\mathcal{T}_q(\tilde{\mathcal{T}}_a) \to \mathcal{R}\mathcal{T}_q(\mathcal{T}_a)$;

(d) $\nabla \times (\mathcal{R}^c(v)) = \mathcal{R}^d(\nabla \times \tilde{v})$ for all $\tilde{v} \in H_{0,\tilde{\Gamma}}(\text{curl}, \tilde{\omega}_a)$.

As we state below, extensions can be composed, so that it is possible to extend an initial patch several times.

**Lemma 7.4 (Composition of extensions).** If, in the sense of Definition 7.3, $\tilde{\mathcal{T}}_a^1$ is an extension of $\mathcal{T}_a$ with operators $\mathcal{E}_1^c$ and $\mathcal{R}_1^c$ and $\tilde{\mathcal{T}}_a^2$ is an extension of $\tilde{\mathcal{T}}_a^1$ with operators $\mathcal{E}_{1,2}^c$ and $\mathcal{R}_{1,2}^c$, then $\tilde{\mathcal{T}}_a^2$ is an extension of $\mathcal{T}_a$ with operators $\mathcal{E}_2^c := \mathcal{E}_{1,2}^c \circ \mathcal{E}_1^c$ and $\mathcal{R}_2^c := \mathcal{R}_1^c \circ \mathcal{R}_{1,2}^c$, and corresponding definitions for the operators $\mathcal{E}^d$ and $\mathcal{R}^d$.

Crucially, if we can prove the stability of discrete minimization in an extension of a given patch, then it also holds on the original patch. Indeed, we have the following inequality with the constant that only depends on the norms of the extension and restriction operators of Definition 7.3.
**Lemma 7.5 (Patch extensions).** Consider a vertex patch $\mathcal{T}_a$ and an extension $\tilde{\mathcal{T}}_a \supset \mathcal{T}_a$ in the sense of Definition 7.3. Then, for all $p \ge 0$, we have

$$C_{\text{st},p,\mathcal{T}_a,\Gamma} \le \|\mathcal{E}^c\|\|\mathcal{R}^c\| C_{\text{st},p,\tilde{\mathcal{T}}_a,\tilde{\Gamma}}.$$

*Proof.* Let $\mathbf{j}_p \in \mathcal{R}\mathcal{T}_p(\mathcal{T}_a) \cap \mathcal{H}_{0,\Gamma}(\text{div}, \omega_a)$ with $\nabla \cdot \mathbf{j}_p = 0$ and $\chi_p \in \mathcal{N}_p(\mathcal{T}_a)$. Recall the discrete and continuous minimizers $\mathbf{v}_p^*$ and $\mathbf{v}^*$ from (7.1).

We start by introducing $\tilde{\mathbf{j}}_p := \mathcal{E}^d(\mathbf{j}_p) \in \mathcal{R}\mathcal{T}_p(\tilde{\mathcal{T}}_a) \cap \mathcal{H}_{0,\tilde{\Gamma}}(\text{div}, \tilde{\omega}_a)$ and $\tilde{\chi}_p := \mathcal{E}^c(\tilde{\chi}_p) \in \mathcal{N}_p(\tilde{\mathcal{T}}_a)$. Due to the commuting properties in Definition 7.3, we have $\nabla \cdot \tilde{\mathbf{j}}_p = 0$, so that we can consider the curl-constrained minimization in the extended patch $\tilde{\mathcal{T}}_a$ with data $\tilde{\mathbf{j}}_p$ and $\tilde{\chi}_p$, with essential boundary conditions on $\tilde{\Gamma}$. Henceforth, we denote by $\tilde{\mathbf{v}}^*$ and $\tilde{\mathbf{v}}_p^*$ the associated continuous and discrete minimizers associated with these data in the extended patch $\tilde{\mathcal{T}}_a$.

The proof then follows from the following considerations. First,

$$\|\mathbf{v}_p^* - \chi_p\|_{\omega_a} \le \|\mathcal{R}^c(\tilde{\mathbf{v}}_p^*) - \chi_p\|_{\omega_a} = \|\mathcal{R}^c(\tilde{\mathbf{v}}_p^* - \tilde{\chi}_p)\|_{\omega_a} \le \|\mathcal{R}^c\|\|\tilde{\mathbf{v}}_p^* - \tilde{\chi}_p\|_{\tilde{\omega}_a},$$

where we used that $\mathcal{R}^c(\tilde{\mathbf{v}}_p^*)$ is in the discrete minimization set of the original patch due to our assumptions on $\mathcal{R}^c$ and $\mathcal{R}^d$ in the first inequality and the fact that $\mathcal{R}^c(\tilde{\chi}_p) = (\mathcal{R}^c \circ \mathcal{E}^c)(\chi_p) = \chi_p$ in the equality. Second, we use the stable minimization property in the extended patch, giving

$$\|\tilde{\mathbf{v}}_p^* - \tilde{\chi}_p\|_{\tilde{\omega}_a} \le C_{\text{st},p,\tilde{\mathcal{T}}_a,\tilde{\Gamma}} \|\tilde{\mathbf{v}}^* - \tilde{\chi}_p\|_{\tilde{\omega}_a}.$$

Finally, since $\mathcal{E}^c(\mathbf{v}^*)$ is in the continuous minimization of the extended patch, we conclude the proof with

$$\|\tilde{\mathbf{v}}^* - \tilde{\chi}_p\|_{\tilde{\omega}_a} \le \|\mathcal{E}^c(\mathbf{v}^*) - \tilde{\chi}_p\|_{\tilde{\omega}_a} = \|\mathcal{E}^c(\mathbf{v}^* - \chi_p)\|_{\tilde{\omega}_a} \le \|\mathcal{E}^c\|\|\mathbf{v}^* - \chi_p\|_{\omega_a}.$$

□

**7.4. Parachute patches.** The next central concept is the one of a “parachute patch” where all the vertices except the central vertex lie in the same plane. As a result, the faces not sharing the central vertex are easily identified with a two-dimensional planar triangular mesh, which makes the reasoning easier. An illustration is given in Figure 7, left.

**Definition 7.6 (Parachute patch).** A parachute patch $\mathcal{T}_0$ is a boundary patch around the vertex $0 \in \mathbb{R}^3$ with associated domain $\omega_0$ such that all the non-central vertices of the patch $b \ne 0$ lie in the plane $H := \{x \in \mathbb{R}^3 | x_3 = 1\}$. In this case, we denote by $[\mathcal{T}_0]$ the planar triangular mesh induced by $\mathcal{T}_0$ on $H$ and by $[\omega_0] \subset \mathbb{R}^2$ the corresponding two-dimensional planar domain.

Crucially, every boundary patch is equivalent to a “reference” parachute patch, as we next demonstrate.

**Lemma 7.7 (Reference parachute patches).** Consider a shape-regularity parameter $\kappa > 0$. There exists a finite set of reference parachute patches $\tilde{\mathcal{F}}_\kappa = \{\tilde{\mathcal{T}}_0\}$ such that if $\mathcal{T}_a$ is a boundary patch with shape-regularity parameter $\kappa_{\mathcal{T}_a} \le \kappa$, then there exists exactly one $\tilde{\mathcal{T}}_0 \in \tilde{\mathcal{F}}_\kappa$ that is equivalent to $\mathcal{T}_a$ in the sense of Definition 7.1.
<figure><img src="image_8.png" /><figcaption>FIGURE 7. Parachute patch (left) and a reference tetrahedron patch (right)</figcaption></figure>

*Proof.* For each $\kappa > 0$, we denote by $N(\kappa)$ the maximum number of tetrahedra in a boundary patch $\mathcal{T}_a$ with shape-regularity parameter $\kappa_{\mathcal{T}_a} \le \kappa$. For each $N \in \mathbb{N}$, let $[\tilde{\mathcal{F}}_N]$ denote the set of possible reference configurations (in terms of mesh topology/mesh connectivity) of conforming planar triangular meshes with $N$ elements. Then $\tilde{\mathcal{F}}_\kappa$ is defined by distorting each element of $[\tilde{\mathcal{F}}_{N(\kappa)}]$ into a parachute patch.

Fix now $\kappa > 0$. If $\mathcal{T}_a$ is a boundary patch with $\kappa_{\mathcal{T}_a} \le \kappa$, then $\mathcal{T}_a$ has at most $N(\kappa)$ tetrahedra $K$. Because $\mathcal{T}_a$ is a boundary patch, there is a cone $C$ with the vertex $\mathbf{a}$ and a strictly positive solid angle such that $C \cap \omega_a = \emptyset$ (forming an “opening”). From the assumptions in Section 2.1, namely that $\omega_a$ has a Lipschitz boundary $\partial\omega_a$, there is exactly one such an opening. Thus, $\mathcal{T}_a$ can be transformed into a first parachute patch $\mathcal{T}_0$ with the corresponding planar mesh $[\mathcal{T}_0]$. This can be done by transforming $\mathbf{a}$ into $\mathbf{0}$ by translation, dilating the solid angle of the opening until all the vertices lie on the same side of a plane, rotating the coordinate system, and then shortening the sizes of edges connecting each non-central vertex to the central one to align them onto the plane $H$. Then, there exists a parachute patch $\hat{\mathcal{T}}_0 \in \tilde{\mathcal{F}}_\kappa$ such that $[\hat{\mathcal{T}}_0]$ has the same topology/connectivity as $[\mathcal{T}_0]$. Finally, $\mathcal{T}_0$ is equivalent to $\hat{\mathcal{T}}_0$, and therefore $\mathcal{T}_a$ is equivalent to $\hat{\mathcal{T}}_0 \in \tilde{\mathcal{F}}_\kappa$. $\square$

**7.5. Reference tetrahedron patches.** Next, the concept of a “reference tetrahedron patch” is key. It is visualized in Figure 7, right, and defined as follows:

**Definition 7.8 (Reference tetrahedron patch).** A reference tetrahedron patch is a patch $\hat{\mathcal{T}}_0$ such that the corresponding domain $\hat{\omega}_0 = \hat{K}$, where

$$ \hat{K} := \{ \mathbf{x} \in \mathbb{R}^3 \mid \mathbf{x}_1, \mathbf{x}_2, \mathbf{x}_3 \ge 0, \mathbf{x}_1 + \mathbf{x}_2 + \mathbf{x}_3 \le 1 \} $$
is the reference tetrahedron. We further say that the patch has mixed boundary conditions if either $\hat{\Gamma}_a^{\text{ess}} = \hat{F}$ or $\hat{\Gamma}_a^{\text{nat}} = \hat{F}$ where

$$ \hat{F} := \{ \boldsymbol{x} \in \hat{K} \mid \boldsymbol{x}_1 = 0 \} $$

is one face of the reference tetrahedron $\hat{K}$ sharing the vertex 0. We say that is has unique boundary conditions if $\hat{\Gamma}_a^{\text{nat}} = \hat{C}$ or $\hat{\Gamma}_a^{\text{ess}} = \hat{C}$ with

$$ \hat{C} := \{ \boldsymbol{x} \in \hat{K} \mid \boldsymbol{x}_1 \boldsymbol{x}_2 \boldsymbol{x}_3 = 0 \}, $$

i.e., $\hat{C}$ corresponds to the three faces of the reference tetrahedron $\hat{K}$ that share the vertex 0.

**7.6. Stability for reference tetrahedron patches.** From Section 7.4, we know that every boundary patch is equivalent to a parachute patch. Moreover, it will follow from Appendix A that “most” parachute patches are equivalent to a reference tetrahedron patch. Let us thus now establish the stability of the discrete minimization on a reference tetrahedron patch. This is done by using the following symmetrization operators.

**Definition 7.9 (Symmetrization operators).** For $1 \le d \le 3$, we let

$$ S_d(\boldsymbol{x}) := \boldsymbol{x} - 2\boldsymbol{x}_d e^d $$

denote the change of coordinates flipping the direction of the $d$th space dimension. We call “mirroring operator” around $\{\boldsymbol{x}_d = 0\}$ the map $M_d^\bullet : \mathbf{L}^2(\{\boldsymbol{x}_d > 0\}) \to \mathbf{L}^2(\mathbb{R}^3)$ defined by

$$ (M_d^\bullet \boldsymbol{v}) |_{\{\boldsymbol{x}_d>0\}} := \boldsymbol{v} \quad (M_d^\bullet \boldsymbol{v}) |_{\{\boldsymbol{x}_d<0\}} := S_d^\bullet(\boldsymbol{v}), $$

where $S_d^\bullet, \bullet \in \{\text{c}, \text{d}\}$, is the Piola mapping from (5.4) associated to $S_d$. We also introduce the trivial extension operator $E_d^\bullet : \mathbf{L}^2(\{\boldsymbol{x}_d > 0\}) \to \mathbf{L}^2(\mathbb{R}^3)$

$$ (E_d^\bullet \boldsymbol{v}) |_{\{\boldsymbol{x}_d>0\}} := \boldsymbol{v} \quad (E_d^\bullet \boldsymbol{v}) |_{\{\boldsymbol{x}_d<0\}} := \mathbf{0} $$

for $\bullet \in \{\text{c}, \text{d}\}$. We call “folding operator” around $\{\boldsymbol{x}_d = 0\}$ the map $F_d^\bullet : \mathbf{L}^2(\mathbb{R}^3) \to \mathbf{L}^2(\{\boldsymbol{x}_d > 0\})$ defined by

$$ F_d^\bullet(\boldsymbol{v}) := \boldsymbol{v}|_{\{\boldsymbol{x}_d>0\}} - S_d^\bullet(\boldsymbol{v}|_{\{\boldsymbol{x}_d<0\}}) $$

for $\bullet \in \{\text{c}, \text{d}\}$. Finally, for $\bullet \in \{\text{c}, \text{d}\}$, we define the trivial restriction operator $R_d^\bullet : \mathbf{L}^2(\mathbb{R}^3) \to \mathbf{L}^2(\{\boldsymbol{x}_d > 0\})$ by

$$ R_d^\bullet(\boldsymbol{v}) := \boldsymbol{v}|_{\{\boldsymbol{x}_d>0\}}. $$

We will apply the following result to reference tetrahedron patches $\hat{T}_0$:

**Lemma 7.10 (Plane symmetrization).** Consider a vertex patch $T_a$ around $\mathbf{a}$, fix $d \in \{1, 2, 3\}$, and let $H_d$ denote the plane $\{\boldsymbol{x}_d = 0\}$. We assume either $\Gamma_a^{\text{ess}} \cap H_d = \emptyset$ or $\Gamma_a^{\text{nat}} \cap H_d = \emptyset$. Then, if the symmetrized patch $\tilde{T}_a = T_a \cup S_d(T_a)$ still corresponds to a connected and Lipschitz domain $\tilde{\omega}_a := \omega_a \cup S_d(\omega_a)$ with admissible boundary $\tilde{\Gamma} := \Gamma \cup S_d(\Gamma)$, then $\tilde{T}_a$ is an extension of $T_a$ as per Definition 7.3, with the operator norms bounded by 2,

$$ (7.4) \qquad \|\mathcal{E}^c\|\|\mathcal{R}^c\| \le 2. $$
**Proof.** Following Definition 7.3, we need to construct extension and restriction operators between $H_{0,\Gamma}(\text{curl}, \omega_a)$ and $H_{0,\bar{\Gamma}}(\text{curl}, \tilde{\omega}_a)$ that properly commute, and we distinguish two cases.

**Case 1.** We first focus on the case where $\Gamma_a^{\text{nat}} \cap H_d = \emptyset$, so that functions in $H_{0,\Gamma}(\text{curl}, \omega_a)$ satisfy a homogeneous essential condition on $\partial\omega_a \cap H_d$. Due to this observation, we can simply extend a function of $H_{0,\Gamma}(\text{curl}, \omega_a)$ by zero onto $\tilde{\omega}_a$ and preserve its curl-conformity. A similar observation holds true for $H_{0,\Gamma}(\text{div}, \omega_a)$. As a result, letting $\mathcal{E}^\bullet := E_d^\bullet, \bullet \in \{\text{c}, \text{d}\}$ is satisfactory. We then need to construct suitable restriction operators, which we do by folding around $\{\mathbf{x}_d = 0\}$. Indeed, here, we cannot simply take the trivial restriction of a function defined on $\tilde{\omega}_a$, since this would violate the (homogeneous) essential boundary conditions on $\partial\omega_a \cap H_d$ in general. As a result, we introduce $\mathcal{R}^\bullet := F_d^\bullet$ for $\bullet \in \{\text{c}, \text{d}\}$. Because the Piola mappings preserve relevant traces on $H_d$, they cancel out when folding around $\{\mathbf{x}_d = 0\}$. Hence, the homogeneous essential boundary conditions are always satisfied, so that we do have $\mathcal{R}^c : H_{0,\bar{\Gamma}}(\text{curl}, \tilde{\omega}_a) \to H_{0,\Gamma}(\text{curl}, \omega_a)$ as well as the counterpart for $\mathcal{R}^d$. The commuting property between $\mathcal{R}^c$ and $\mathcal{R}^d$ also holds due to standard properties of Piola mappings, whereas (7.4) is obvious. We finally need to verify that $\mathcal{R}^\bullet \circ \mathcal{E}^\bullet = \text{Id}$. Let $\mathbf{v} \in L^2(\omega_a)$. Since $\mathcal{E}^\bullet(\mathbf{v}) = \mathbf{0}$ on $\tilde{\omega}_a \setminus \omega_a$, we readily see that $(\mathcal{R}^\bullet \circ \mathcal{E}^\bullet)(\mathbf{v}) = \mathbf{v}|_{\omega_a} - S_d^\bullet(\mathbf{0}) = \mathbf{v}$, which concludes the proof.

**Case 2.** When $\Gamma_a^{\text{ess}} \cap H_d = \emptyset$, we essentially proceed the other way around. It is here harder to extend the functions (their traces do not have to vanish on $H_d$), but it easier to restrict them (there is no essential condition to satisfy on $H_d$). In fact, the mirror operators $\mathcal{E}^\bullet = M_d^\bullet$ and the trivial restriction operators $\mathcal{R}^\bullet = \mathbb{R}^\bullet$ have all the required properties. The arguments are similar to Case 1, and we do not reproduce them for the sake of shortness. $\square$

Now, stable discrete minimization for a reference tetrahedron patch easily follows, since it can be extended into an interior patch:

**Corollary 7.11** (Stable discrete minimization for reference tetrahedron patches). Let $\hat{T}_0$ be a reference tetrahedron patch in the sense of Definition 7.8. Then, for all $p \ge 0$, we have

$$C_{\text{st},p,\hat{T}_0,\bar{\Gamma}} \le C(\kappa_{\hat{T}_0}),$$

where the constant on the right-hand side only depends on the shape-regularity parameter $\kappa_{\hat{T}_0}$.

**Proof.** The result is a simple consequence of Lemma 7.10 (which uses the concept of extension as per Definition 7.3 and Lemma 7.5) and Theorem 3.3 for interior patches. Indeed, successively extending the patch by symmetry around the planes $\{\mathbf{x}_d = 0\}$, $d = 1, 2$, and 3, results in an interior patch with 8 copies of the original patch $\hat{T}_0$ that is an extension of $\hat{T}_0$, see Figure 8. For mixed boundary conditions in the sense of Definition 7.8, it is important that $\hat{F}$ lies in the plane $\{\mathbf{x}_1 = 0\}$. Then, symmetrizing around $\{\mathbf{x}_1 = 0\}$ following Lemma 7.10, the new patch $\hat{T}_0$ has unique boundary conditions, and so is the case therefore, see Figure 8. Since the last equivalent patch is interior in the sense of Section 2.1,
<figure><img src="image_9.png" /><figcaption>FIGURE 8. Reference tetrahedron patch (top left), and its consecutive symmetrizations around {$x_1$ = 0} (top right), {$x_2$ = 0} (bottom left), and {$x_3$ = 0} (bottom right). Mixed boundary conditions on $\hat{T}_0$; unique boundary conditions on $\tilde{\hat{T}}_0$ through $\tilde{\hat{T}}_0$</figcaption></figure>

we can apply the stable discrete minimization of Theorem 3.3 proved in Section 6 for any interior patch. Note that because the restriction and extension operators of Lemma 7.10 all have operator norms bounded by 2 as per (7.4), the resulting constant only depends on the shape-regularity parameter of the tetrahedron patch $\hat{T}_0$ (the elements are not distorted by the symmetrizations). $\square$
<figure><img src="image_10.png" /><figcaption>FIGURE 9. Extension around a problematic vertex **b** (top view): three virtual tetrahedra added and then each is divided into the number of tetrahedra originally sharing the vertex **b**</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>FIGURE 10. Extension around a problematic vertex **b** after a mapping (top view)</figcaption></figure>

**7.7. Transformation of a general parachute patch into a reference tetrahedron patch.** Unfortunately, not all parachute patches are equivalent to a reference tetrahedron patch. There in particular exist “problematic” cases which are not covered by Appendix A. Specifically, this happens when the surface mesh $[\mathcal{T}_0]$, cf. Figure 7, left, has “problematic” vertices. These are the vertices corresponding to “interior” edges of $[\mathcal{T}_0]$ with two vertices on the boundary of $[\omega_0]$. To give an example, two such vertices and the corresponding edge are highlighted in Figure 7, left, by the two red squares connected by the red dash-dotted line.

In this section, we propose a strategy to transform any such a problematic patch into a patch equivalent to a reference tetrahedron patch. This is done through the concept of patch extension around the problematic vertices.

**Lemma 7.12 (Extension around problematic vertices).** *Consider a parachute patch $\mathcal{T}_0$ such that $\Gamma_0^{\text{ess}}$ and $\Gamma_0^{\text{nat}}$ are both connected with Lipschitz boundaries, and let **b** be a vertex on the boundary of $[\omega_0]$. Then, there exists an extension $\tilde{\mathcal{T}}_0$ of $\mathcal{T}_0$, $\tilde{\mathcal{T}}_0 \supset \mathcal{T}_0$, for which **b** lies in the interior of $[\tilde{\omega}_0]$, and the edges added in $[\tilde{\mathcal{T}}_0]$ as compared to $[\mathcal{T}_0]$ either entirely lie in $\partial\tilde{\omega}_0$, or have one interior vertex inside $[\tilde{\omega}_0]$. In addition, $\Gamma_0^{\text{ess}} \subset \tilde{\Gamma}_0^{\text{ess}}$, $\Gamma_0^{\text{nat}} \subset \tilde{\Gamma}_0^{\text{nat}}$, *.*
<figure><img src="image_12.png" /><figcaption>FIGURE 11. Symmetrization of $U$ with the problematic vertex **b** in two steps: first over {$x_1 = 0$} and second over {$x_2 = 0$}</figcaption></figure>

and both $\tilde{\Gamma}_0^{\text{ess}}$ and $\tilde{\Gamma}_0^{\text{nat}}$ are connected with Lipschitz boundaries. Crucially,

$$C_{\text{st},p,\mathcal{T}_0,\Gamma} \le C(\mathcal{T}_0)C_{\text{st},p,\tilde{\mathcal{T}}_0,\tilde{\Gamma}} \quad \forall p \ge 0.$$

*Proof.* We start by “closing” the vertex patch around the problematic vertex **b**. We first add three new “virtual” tetrahedra, as illustrated (top view) in Figure 9. This is always possible, since the boundary of the patch $\mathcal{T}_0$ is Lipschitz. Intuitively, since the domain cannot lie on the two sides of its boundary, there is always “room” to fit three tetrahedra. These tetrahedra may need to have small edges, but since we only work in a reference configuration, this is not important. Remark that we can also do this in such a way that domain with the added tetrahedra is still Lipschitz.

Proceeding counterclockwise, we call the three tetrahedra closing the loop around the vertex **b** as $V'$, $\tilde{V}'$, and $\tilde{V}$. Denoting by $N$ the number of tetrahedra sharing **b** in $\mathcal{T}_0$, we then divide the virtual tetrahedra $V'$, $\tilde{V}'$, and $\tilde{V}$ into $N$ real tetrahedra each, all sharing the vertex **b**. This is again shown in Figure 9.

Let us call $K_1, \dots, K_N$ the tetrahedra sharing the vertex **b** in the original patch. Let us denote by $K'_j$, $\tilde{K}'_j$, and $\tilde{K}_j$ their counterparts in the virtual tetrahedra $V'$, $\tilde{V}'$, and $\tilde{V}$. The extension and restriction operators we are going to construct will only involve the tetrahedra $K_j$ in the patch $\mathcal{T}_a$ sharing the vertex **b** and eventually map only into the $K_j$, $K'_j$, $\tilde{K}'_j$, and $\tilde{K}_j$. Hence, we can think of the elements around **b** in isolation.

Next, we abstractly map the elements around **b** in such a way that the image of **b** is above **0** (i.e., at coordinates $(0, 0, 1)$) and that $U, U', \tilde{U}',$ and $\tilde{U}$, the images of $V, V', \tilde{V}',$ and $\tilde{V}$, are tetrahedra with three right angles at the image of **b**, see Figure 10. We can further assume that these four tetrahedra have exactly the same shape. Of course, “physically” mapping these elements could lead to self-penetration with other patch elements. However, here, we only perform this operation abstractly since no other elements are involved (we work in isolation). The mapped configuration around **b** is obtained by a piecewise affine bilipschitz mapping whose norm only depends on the shape regularity parameter of $\mathcal{T}_0$, and hence, arguing as in Lemma 7.2, it does not change the end result.
The goal is now to extend the patch $\mathcal{T}_0$ into a new patch $\tilde{\mathcal{T}}_0$ containing all the tetrahedra $K'_j$, $\tilde{K}'_j$, and $\tilde{K}_j$ in $V'$, $\tilde{V}'$, and $\tilde{V}$. For simplicity, we perform this extension in the mapped configurations containing $U$, $U'$, $\tilde{U}'$, and $\tilde{U}$, see Figure 10. Specifically, following very closely Corollary 7.11, we symmetrize $U$ twice. The extension is thus performed in two steps: we first extend the patch by including $U'$ by symmetrizing over $\{x_1 = 0\}$, and then carry out a second extension which includes $\tilde{U}'$ and $\tilde{U}$ with a symmetrization over $\{x_2 = 0\}$. These symmetrizations around planes are performed as in Definition 7.9 and in Lemma 7.10, and the process is illustrated in Figure 11. As shown in Figures 9–10, in terms of connectivity, the vertex patch around **b** in the new patch will contain 4 copies of the original one. Besides, the extension only introduces edges with one interior vertex (namely, **b**), so that it does not introduce any new problematic edges/vertices in $[\tilde{\mathcal{T}}_0]$.

The boundary of $U$ consists of four faces. One of those, which we denote by $\Gamma_{\text{int}}$, connects $U$ to the remainder of the patch. We denote by $\Gamma_{\text{top}}$ the face that does not touch the vertex **0** (it is the one in which Figures 9–11 are drawn). We denote by $\Gamma_{\delta}$ and $\Gamma_{\partial}$ the other two faces of $U$. They lie on the boundary of the patch subdomain $\omega_0$ and contain the vertex **0**. In what follows, we need to distinguish between cases of boundary conditions on $\Gamma_{\delta}$ and $\Gamma_{\partial}$. To fix the ideas, we will assume here that $\Gamma_{\delta} \subset \{x_1 = 0\}$ and $\Gamma_{\partial} \subset \{x_2 = 0\}$ as represented in Figures 10–11, although it is not important. For the sake of simplicity, we denote by $\omega_U$ the domain covered by $U$, $U'$, $\tilde{U}'$, and $\tilde{U}$. We also employ the notation $\Gamma'_{\text{int}}$ for the mirror image of $\Gamma_{\text{int}}$ around $\{x_1 = 0\}$ and we denote by $\tilde{\Gamma}_{\text{int}}$ and $\tilde{\Gamma}'_{\text{int}}$ the images of $\Gamma_{\text{int}}$ and $\Gamma'_{\text{int}}$ when symmetrizing around $\{x_2 = 0\}$. All this notation is illustrated in Figure 11.

**Case 1.** We first consider the case where natural boundary conditions are considered on $\Gamma_{\delta}$ and $\Gamma_{\partial}$, i.e. $\Gamma_{\delta}, \Gamma_{\partial} \subset \Gamma_0^{\text{nat}}$. In this case, we will construct an extension operator from $H(\text{curl}, U)$ to $H(\text{curl}, \omega_U)$ and the corresponding restriction operator, as well as divergence-conforming counterparts. Crucially, the restriction operator will preserve the trace on $\Gamma_{\text{int}}$, so that it also corresponds to a restriction operator for the whole patch. Here, using the notation of Definition 7.9, we set $\mathcal{E}^{\bullet} := M_2^{\bullet} \circ M_1^{\bullet}$ and $\mathcal{R}^{\bullet} := R_1^{\bullet} \circ R_2^{\bullet}$. It should be observed that the natural boundary condition on $\Gamma_{\delta}$ and $\Gamma_{\partial}$ is replaced by a natural boundary condition on $\Gamma'_{\text{int}}$, $\tilde{\Gamma}'_{\text{int}}$, and $\tilde{\Gamma}_{\text{int}}$ in the extended patch. Hence, we let $\tilde{\Gamma} := \Gamma$ and we easily verify that both $\tilde{\Gamma}_0^{\text{nat}}$ and $\tilde{\Gamma}_0^{\text{ess}}$ are still connected and have Lipschitz boundaries.

**Case 2.** We now consider the more complicated case where essential boundary conditions are imposed everywhere on $\Gamma_{\delta}$ and $\Gamma_{\partial}$. The goal here is to construct extension and restriction mappings operating between $H_{0,\gamma_U}(\text{curl}, U)$ and $H_{0,\gamma_{\omega_U}}(\text{curl}, \omega_U)$ with $\gamma_U := \Gamma_{\delta} \cup \Gamma_{\partial}$ and $\gamma_{\omega_U} := \Gamma'_{\text{int}} \cup \tilde{\Gamma}'_{\text{int}} \cup \tilde{\Gamma}_{\text{int}}$. Because we only extend through essential boundary conditions, we can simply use the trivial extension operator $\mathcal{E}^{\bullet} := E_2^{\bullet} \circ E_1^{\bullet}$. We must however, be careful in analyzing the restriction operator. In particular, the trace of the function of $\Gamma_{\text{int}}$ must be preserved, so as to ensure conformity of the restricted function in the entire $\omega_0$. The restriction operator is constructed by first folding over $\{x_2 = 0\}$ and then folding over $\{x_1 = 0\}$, i.e. $\mathcal{R}^{\bullet} := F_1^{\bullet} \circ F_2^{\bullet}$. Crucially, we can check that only $\tilde{\Gamma}_{\text{int}}$, $\tilde{\Gamma}'_{\text{int}}$, and $\Gamma'_{\text{int}}$ are folded over $\Gamma_{\text{int}}$ in the restriction operation. Since essential conditions
are imposed on these parts of the boundary, the trace on $\Gamma_{\text{int}}$ is left intact. As in Case 1, the boundary conditions on $\gamma_{\omega_U}$ in the extended patch are of the same type as the ones originally imposed on $\gamma_U$. Therefore, we set $\tilde{\Gamma} := \Gamma \setminus \gamma_U \cup \gamma_{\omega_U}$ and we see that both $\tilde{\Gamma}_0^{\text{nat}}$ and $\tilde{\Gamma}_0^{\text{ess}}$ are connected and have Lipschitz boundaries.

**Case 3.** We finally address the case of mixed boundary conditions. Here, we assume that the boundary has been labeled so that $\Gamma_\delta$ corresponds to the natural boundary condition, whereas essential boundary conditions are required on $\Gamma_\partial$, i.e. $\Gamma_\delta \subset \Gamma_0^{\text{nat}}$ and $\Gamma_\partial \subset \Gamma_0^{\text{ess}}$. We are therefore going to construct operators acting between $H_{0,\gamma_U}(\text{curl}, U)$ and $H_{0,\gamma_{\omega_U}}(\text{curl}, \omega_U)$ where $\gamma_U = \Gamma_\partial$, and $\gamma_{\omega_U}$ is covered by $\tilde{\Gamma}'_{\text{int}}$ and $\tilde{\Gamma}_{\text{int}}$. As can be seen in Figure 11, it thus means that the extended patch will have natural boundary conditions on $\Gamma'_{\text{int}}$ (instead of $\Gamma_\delta$ in the original patch) so that both $\tilde{\Gamma}_0^{\text{ess}}$ and $\tilde{\Gamma}_0^{\text{nat}}$ remain connected with Lipschitz boundaries. Concretely, we start by mirroring around $\{x_1 = 0\}$ and then we extend by zero around $\{x_2 = 0\}$. Specifically, we set $\mathcal{E}^\bullet := E_2^\bullet \circ M_1^\bullet$ and $\mathcal{R}^\bullet := R_1^\bullet \circ F_2^\bullet$. It is important to note the second step of the extension properly works because in the intermediate configuration $U \cup U'$, essential boundary conditions are imposed on both $\Gamma_\partial$ and its mirror image $\Gamma'_\partial$ around $\{x_1 = 0\}$. Similarly, the restriction operator does preserve the trace on $\Gamma_{\text{int}}$, since the fold around $\{x_2 = 0\}$ maps $\tilde{\Gamma}_{\text{int}}$ onto $\Gamma_{\text{int}}$. $\square$

**Corollary 7.13 (Extension into a tetrahedron patch).** Every parachute patch admits an extension to a reference tetrahedron patch.

*Proof.* We recursively apply Lemma 7.12 to the possible problematic vertices until no remain. Note that the number of problematic vertices is finite and that their number in $\tilde{T}_0$ is always diminished by at least one in comparison with $T_0$. Finally, when there is no problematic vertex left, we can apply Proposition A.4 to the last $[\tilde{T}_0]$ to obtain a planar triangular mesh of the reference triangle. This then first corresponds to a parachute patch of a form of a tetrahedron and finally to a reference tetrahedron patch in the sense of Definition 7.8. More precisely, as a first possibility, $\Gamma_a^{\text{nat}}$ is empty, i.e., $\Gamma_a$ is empty, as in Figure 1, right. As a second possibility, $\Gamma_a^{\text{ess}}$ is empty, i.e, $\Gamma_a$ collects all the faces from the boundary of $\omega_a$ sharing the vertex $a$, as in Figure 2, left. In these two cases, we obtain unique boundary conditions in the sense of Definition 7.8. As a third and last possibility, both $\Gamma_a^{\text{nat}}$ and $\Gamma_a^{\text{ess}}$ contain at least one face from the boundary of $\omega_a$ sharing the vertex $a$. Then, in Proposition A.4, we note that we can organize all edges corresponding to, say, $\Gamma_a^{\text{nat}}$, in one edge of the reference triangle and all edges corresponding to $\Gamma_a^{\text{ess}}$ in the two remaining edges of the reference triangle. This then leads to mixed boundary conditions in the sense of Definition 7.8. $\square$

7.8. **Proof of Theorem 3.3 for boundary patches.** We are now finally ready to prove Theorem 3.3 for boundary patches.

*Proof of Theorem 3.3 for boundary patches.* First, Lemma 7.7 states that $T_a$ is equivalent to a reference parachute patch $\tilde{T}_0 \in \tilde{\mathcal{T}}_{\kappa T_a}$, and Lemma 7.2 ensures that

$$C_{\text{st},p, T_a, \Gamma} \leq C(\kappa_{T_a}) C_{\text{st},p, \tilde{T}_0, \tilde{\Gamma}},$$
since $\kappa_{\hat{T}_0}$ only depends on $\kappa_{\mathcal{T}_a}$. We then follow Corollary 7.13 to extend $\hat{T}_0$ into a reference tetrahedron patch $\tilde{T}_0$ with extension and restriction operator norms only depending on $\kappa_{\hat{T}_0}$, and hence, only on $\kappa_{\mathcal{T}_a}$, so that

$$C_{\text{st},p,\hat{T}_0,\hat{\Gamma}} \le C(\kappa_{\mathcal{T}_a})C_{\text{st},p,\tilde{T}_0,\tilde{\Gamma}}.$$

Then, the result follows from Corollary 7.11 which states that

$$C_{\text{st},p,\tilde{T}_0,\tilde{\Gamma}} \le C(\kappa_{\tilde{T}_0})$$

and from the fact that $C(\kappa_{\tilde{T}_0}) \le C(\kappa_{\mathcal{T}_a})$. $\square$

<figure><img src="image_13.png" /></figure>

## REFERENCES

[1] R. Adams and J. Fournier, Sobolev spaces, Academic Press, 2003.

[2] M. Ainsworth and J. Oden, A posteriori error estimation in finite element analysis, Wiley, 2000.

[3] D. N. Arnold, R. S. Falk, and R. Winther, Finite element exterior calculus, homological techniques, and applications, Acta Numer. 15 (2006), 1–155. MR 2269741

[4] D. Boffi, F. Brezzi, and M. Fortin, Mixed finite element methods and applications, Springer Series in Computational Mathematics, vol. 44, Springer, Heidelberg, 2013. MR 3097958

[5] D. Braess, V. Pillwein, and J. Schöberl, Equilibrated residual error estimates are p-robust, Comput. Meth. Appl. Mech. Engrg. 198 (2009), 1189–1197.

[6] D. Braess and J. Schöberl, Equilibrated residual error estimators for edge elements, Math. Comp. 77 (2008), no. 262, 651–672.

[7] T. Chaumont-Frelet, A. Ern, and M. Vohralík, Polynomial-degree-robust $H(\text{curl})$-stability of discrete minimization in a tetrahedron, C. R. Math. Acad. Sci. Paris 358 (2020), no. 9–10, 1101–1110.

[8] ————, On the derivation of guaranteed and p-robust a posteriori error estimates for the Helmholtz equation, Numer. Math. 148 (2021), no. 3, 525–573.

[9] ————, Stable broken $H(\text{curl})$ polynomial extensions and p-robust a posteriori error estimates by broken patchwise equilibration for the curl-curl problem, Math. Comp. 91 (2022), no. 333, 37–74.

[10] T. Chaumont-Frelet and M. Vohralík, Equivalence of local-best and global-best approximations in $H(\text{curl})$, Calcolo 58 (2021), 53.

[11] ————, p-robust equilibrated flux reconstruction in $H(\text{curl})$ based on local minimizations. Application to a posteriori analysis of the curl-curl problem, SIAM J. Numer. Anal. 61 (2023), no. 4, 1783–1818.

[12] P. G. Ciarlet, The finite element method for elliptic problems, Classics in Applied Mathematics, vol. 40, Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 2002, Reprint of the 1978 original [North-Holland, Amsterdam; MR0520174 (58 \#25001)]. MR MR1930132

[13] M. Costabel and A. McIntosh, On Bogovskiǐ and regularized Poincaré integral operators for de Rham complexes on Lipschitz domains, Math. Z. 265 (2010), no. 2, 297–320. MR 2609313 (2011f:58030)

[14] L. Demkowicz, J. Gopalakrishnan, and J. Schöberl, Polynomial extension operators. Part I, SIAM J. Numer. Anal. 46 (2008), no. 6, 3006–3031. MR 2439500 (2009j:46080)

[15] ————, Polynomial extension operators. Part II, SIAM J. Numer. Anal. 47 (2009), no. 5, 3293–3324. MR 2551195 (2010h:46043)

[16] ————, Polynomial extension operators. Part III, Math. Comp. 81 (2012), no. 279, 1289–1326. MR 2904580

[17] P. Destuynder and B. Métivet, Explicit error bounds in a conforming finite element method, Math. Comp. 68 (1999), no. 228, 1379–1396. MR 1648383 (99m:65211)

[18] A. Ern and M. Vohralík, Polynomial-degree-robust a posteriori estimates in a unified setting for conforming, nonconforming, discontinuous Galerkin, and mixed discretizations, SIAM J. Numer. Anal. 53 (2015), no. 2, 1058–1081.
[19] A. Ern, T. Gudi, I. Smears, and M. Vohralík, *Equivalence of local- and global-best approximations, a simple stable local commuting projector, and optimal hp approximation estimates in H(div), IMA J. Numer. Anal.* **42** (2022), no. 2, 1023–1049.

[20] A. Ern and J.-L. Guermond, *Finite Elements I. Approximation and Interpolation*, Texts in Applied Mathematics, vol. 72, Springer International Publishing, Springer Nature Switzerland AG, 2021. MR 4242224

[21] A. Ern, I. Smears, and M. Vohralík, *Guaranteed, locally space-time efficient, and polynomial-degree robust a posteriori error estimates for high-order discretizations of parabolic problems*, SIAM J. Numer. Anal. **55** (2017), no. 6, 2811–2834.

[22] A. Ern and M. Vohralík, *Stable broken H¹ and H(div) polynomial extensions for polynomial-degree-robust potential and flux reconstruction in three space dimensions*, Math. Comp. **89** (2020), no. 322, 551–594. MR 4044442

[23] P. Fernandes and G. Gilardi, *Magnetostatic and electrostatic problems in inhomogeneous anisotropic media with irregular boundary and mixed boundary conditions*, Math. Meth. Appl. Sci. **47** (1997), no. 4, 2872–2896.

[24] V. Girault and P. Raviart, *Finite element methods for Navier-Stokes equations: theory and algorithms*, Springer-Verlag, 1986.

[25] S. Hong and H. Nagamochi, *Convex drawings of graphs with non-convex boundary constraints*, Discret. Appl. Math. **156** (2008), no. 12, 2368–2380.

[26] P. Ladevèze and L. Chamoin, *The constitutive relation error method: a general verification tool*, Verifying calculations—forty years on, SpringerBriefs Appl. Sci. Technol., Cham, 2016, pp. 59–94. MR 3409341

[27] R. Luce and B. Wohlmuth, *A local a posteriori error estimator based on equilibrated fluxes*, SIAM J. Numer. Anal. **42** (2004), no. 4, 1394–1414.

[28] J. Nédélec, *Mixed finite elements in $\mathbb{R}^3$*, Numer. Math. **35** (1980), 315–341.

[29] W. Prager and J. Synge, *Approximations in elasticity based on the concept of function space*, Quart. Appl. Math. **5** (1947), no. 3, 241–269.

[30] P. Raviart and J. Thomas, *A mixed finite element method for 2nd order elliptic problems*, Mathematical Aspect of Finite Element Methods, Springer-Verlag, 1977.

[31] S. Repin, *A posteriori estimates for partial differential equations*, Radon Series on Computational and Applied Mathematics, vol. 4, Walter de Gruyter GmbH & Co. KG, Berlin, 2008. MR 2458008

[32] I. Smears and M. Vohralík, *Simple and robust equilibrated flux a posteriori estimates for singularly perturbed reaction-diffusion problems*, ESAIM Math. Model. Numer. Anal. **54** (2020), no. 6, 1951–1973. MR 4160328

[33] F. Tantardini, A. Veeser, and R. Verfürth, *Robust localization of the best error with finite elements in the reaction-diffusion norm*, Constr. Approx. **42** (2015), no. 2, 313–347. MR 3392493

[34] W. Tutte, *How to draw a graph*, Proc. London Math. Soc. **13** (1963), no. 3, 743–768.

[35] A. Veeser, *Approximating gradients with continuous piecewise polynomial functions*, Found. Comput. Math. **16** (2016), no. 3, 723–750. MR 3494508

## APPENDIX A. MAPPING A TWO-DIMENSIONAL TRIANGULAR MESH INTO A REFERENCE TRIANGLE

In this appendix, we study two-dimensional triangular meshes that correspond to the planar meshes $[T_0]$ from Section 7. We will use some basic notions from the graph theory and use Tutte’s embedding theorem [34]. We start by recalling the following basic notion:
<figure><img src="image_14.png" /></figure>

(A) Original mesh with vertices **a**, **b** ∈ V
V<sup>ext</sup> not forming a boundary edge

<figure><img src="image_15.png" /></figure>

(B) Disconnected graph after deletion of the vertices
**a** and **b**

<caption>FIGURE 12. A non-triconnected graph</caption>

**Definition A.1** (Triconnected graph). A graph ($\mathcal{V}$, $\mathcal{E}$), with the vertex set $\mathcal{V}$ and the edge set $\mathcal{E}$, is triconnected if it has at least four vertices and if it remains connected if any two vertices, together with its corresponding edges, are removed from respectively $\mathcal{V}$ and $\mathcal{E}$.

**Lemma A.2** (Triconnected graph). Consider a conforming planar triangular mesh $\mathcal{T}$ with at least two elements $K$, and assume that the set $\omega \subset \mathbb{R}^2$ covered by the elements of $\mathcal{T}$ is connected with a connected Lipschitz boundary. Let us denote by $\mathcal{V}$ and $\mathcal{E}$ the sets of vertices and edges of $\mathcal{T}$ and by $V^{\text{ext}}$ and $\mathcal{E}^{\text{ext}}$ the set of boundary vertices and edges of $\mathcal{T}$. If all edges $e = [a, b] \in \mathcal{E}$ that have two vertices $a, b \in V^{\text{ext}}$ are boundary edges (i.e. $e \in \mathcal{E}^{\text{ext}}$), then the undirected graph $(V, \mathcal{E})$ is triconnected.

**Remark A.3** (Non-triconnected graph). A counterexample showing that, in general, a triangular mesh $\mathcal{T}$ does not have a triconnected graph, is presented in Figure 12. There, the assumption that all edges with two boundary vertices are boundary edges is violated.

*Proof*. Notice first that the assumption that $\mathcal{T}$ contains at least two elements ensures that $\mathcal{V}$ contains at least four vertices, so that we fit in the context of Definition A.1. Considering a mesh $\mathcal{T}$ satisfying the assumptions above, we need to show that if we remove any pair of vertices $a, b \in \mathcal{V}$, the associated graph $(\mathcal{V}, \mathcal{E})$ remains connected. It means that if $c, d \in \mathcal{V}$ are two other points, we can join $c$ to $d$ via a sequence of edges without passing through $a$ or $b$.

For the sake of clarity, we use the additional notation $\mathcal{V}^{\text{int}} := \mathcal{V} \setminus \mathcal{V}^{\text{ext}}$ and $\mathcal{E}^{\text{int}} := \mathcal{E} \setminus \mathcal{E}^{\text{ext}}$
in the remainder of the proof. Let us first consider the operation of removing a single
vertex $a \in \mathcal{V}$. Then, since the set $\omega \subset \mathbb{R}^2$ covered by $\mathcal{T}$ has a Lipschitz boundary, the
patch of elements $K \in \mathcal{T}$ sharing the vertex $a$ either forms an open domain around $a$
when $a \in \mathcal{V}^{\text{int}}$, or it forms an open domain with $a$ on the boundary if $a \in \mathcal{V}^{\text{ext}}$. In both
cases, the boundary of the vertex patch is connected and consists of a subset of $\mathcal{E}$, and this
property remains true after the vertex $a$ has been removed. This is illustrated in Figure 13.
If there exists a path joining two vertices $b, c \in \mathcal{V} \setminus \{a\}$ through $a$, then the path must go
through two vertices $b', c' \in \mathcal{V}$ on the boundary of the vertex patch surrounding $a$. Once
<figure><img src="image_16.png" /><figcaption>(A) An interior patch with its vertex **a**</figcaption></figure>

<figure><img src="image_17.png" /><figcaption>(B) An interior patch without its vertex **a**</figcaption></figure>

<figure><img src="image_18.png" /><figcaption>(C) A boundary patch with its vertex **a**</figcaption></figure>

<figure><img src="image_19.png" /><figcaption>(D) A boundary patch without its vertex **a**</figcaption></figure>

<caption>FIGURE 13. Vertex patches: Examples of path joining vertices before and after the vertex has been removed</caption>

**a** is removed, **b'** and **c'** can still be connected via remaining edges on the boundary of the patch. This shows the graph of the mesh is biconnected: it remains connected after we remove one vertex. Here, we need to show that the graph is triconnected, meaning that it remains connected after two vertices have been removed.

Let us first consider the case where the two vertices **a**, **b** ∈ V removed from the graph do not share an edge, i.e. [**a**, **b**] ⊈ E. Then, we can first remove, say, **a** and apply the reasoning above to show that the graph remains connected. Because there is no edge connecting **a** and **b**, the vertex patch around **b** remains untouched after the deletion of **a**. As a result, the reasoning presented above still applies, and the graph remains connected.

We therefore only need to consider cases where we remove two vertices **a**, **b** ∈ V such that e = [**a**, **b**] ∈ E. We then have to consider two cases, either e ∈ E^int or not. If e ∈ E^int, due to our assumptions, then either one or two vertices are interior, and in either case, the boundary of edge patch remains connected after the edge is removed. This is depicted on Figures 14 and 15. In both cases, if c, d ∈ V \ {**a**, **b**} are two vertices connected through **a** or **b**, we can still connect them through a path going around the boundary of the edge
<figure><img src="image_20.png" /><figcaption>FIGURE 14. Edge [a, b] such that both a, b lie in Vint: example of path joining two vertices before and after the edge is removed.</figcaption></figure>

<figure><img src="image_21.png" /><figcaption>FIGURE 15. Edge [a, b] such that b lies in Vint and a lies in Vext: example of path joining two vertices before and after the edge is removed.</figcaption></figure>

<figure><img src="image_22.png" /><figcaption>FIGURE 16. Edge [a, b] such that both a, b lie in Vext: example of path joining two vertices before and after the edge is removed.</figcaption></figure>
<figure><img src="image_23.png" /><figcaption>FIGURE 17. Triangular representation of a mesh</figcaption></figure>

patch. We finally consider the case where $e \in \mathcal{E}^{\text{ext}}$. In this case too, the boundary of the edge patch is connected, and it remains connected after the edge is removed. The process of modifying a path going through $e = [a, b] \in \mathcal{E}^{\text{ext}}$ after it is removed is shown in Figure 16. $\square$

**Proposition A.4** (Mapping a two-dimensional triangular mesh into a reference triangle). *Consider a triangular mesh* $\mathcal{T}$ *covering a domain* $\omega \subset \mathbb{R}^2$ *and either composed of a single element K or satisfying the assumptions of Lemma A.2. Then, there exists a bilipschitz mapping* $\Psi$ *from* $\bar{\omega}$ *to the reference triangle* $\hat{T} := \{(y_1, y_2) \in [0, 1]^2 | y_1 + y_2 \le 1\}$ *such that* $\Psi|_K$ *is affine for each* $K \in \mathcal{T}$. *In addition, if* $\{\Gamma^b, \Gamma^\sharp\}$ *is a partition of* $\partial\omega$ *into connected components consisting of entire edges, then we can always choose the mapping* $\Psi$ *so that* $\Psi(\bar{\Gamma}^b) = \hat{E}$ *or* $\Psi(\bar{\Gamma}^\sharp) = \hat{E}$, *with* $\hat{E} = \{(y_1, y_2) \in [0, 1]^2 | y_1 + y_2 = 1\}$.

*Proof.* We first note that if $\mathcal{T}$ consists of a single element $K$, then it is clear that the result is true by considering a simple affine map associating the relevant vertices of $K$ to the ones of $\hat{T}$. We therefore focus on the case where $\mathcal{T}$ has at least two elements hereafter.

Due to Lemma A.2, we know that the graph $(\mathcal{V}, \mathcal{E})$, where $\mathcal{V}$ and $\mathcal{E}$ are the vertices and edges of $\mathcal{T}$, is triconnected. Then [34, 9.2]), Tutte's embedding theorem ensures that we can place the boundary vertices $\mathcal{V}^{\text{ext}}$ so that they correspond to the vertices of an arbitrary convex polygon $P$, and draw the graph $(\mathcal{V}, \mathcal{E})$ in the plane such that the outer face of the graph is $P$. In fact, we can always do so for a large family of star-shaped polygons [25, Theorem 10], and it is in particular possible to place the boundary vertices on the boundary of the reference triangle $\hat{T}$. Since the original mesh covering $\omega$ and the drawing of the graph $(\mathcal{V}, \mathcal{E})$ in $\hat{T}$ are two drawings of the same graph, the mapping $\Psi$ that is piecewise affine on $\mathcal{T}$ and maps the vertices of $\mathcal{T}$ to the coordinates of the drawing in $\hat{T}$ is uniquely defined and satisfies the first statement of the proposition. This process is illustrated in Figure 17b.
If we further partition the boundary of $\omega$, then either $\Gamma^{\flat}$ or $\Gamma^{\#}$ consists of at least two edges. To fix the ideas, let us assume that $\Gamma^{\flat}$ has at least two edges. Then, we can place the vertices on the boundary of $\hat{T}$ so that $\Gamma^{\flat}$ is mapped on the horizontal and vertical edges of $\hat{T}$ (see Figure 17c), and $\Gamma^{\#}$ is then mapped onto the remaining edge. We proceed the other way around if $\Gamma^{\flat}$ consists of a single edge. $\square$