1 Introduction

We study the numerical approximation by finite elements of electromagnetic fields governed by the time-harmonic Maxwell equations, in the presence of a negative material surrounded by a classical material. A negative material can be a metal at optical frequencies, or a metamaterial, see for instance [2, 49]. So, in this setting, the electric permittivity, and possibly the magnetic permeability, can exhibit a sign-change at the interface between the two materials. We consider such a model in a bounded set of \(\mathbb {R}^3\), supplemented with a vanishing boundary condition on the tangential trace. To the author’s knowledge, the first attempt to address this situation theoretically can be found in [10, 11]; see also [16, 45]. However, little is known regarding the numerical approximation of the model. In the present paper, we provide the numerical analysis for a model with one sign-changing coefficient.

For the numerical approximation, we use (low-order) edge finite elements. We use some recent results [22, 23, 32] to interpolate low-regularity solutions that can occur both in a classical setting, that is for a model with fixed-sign, piecewise smooth coefficients [7, 24, 26], and in the presence of an interface between a classical material and a negative material.

In what follows, we shall assume that the electric permittivity \(\varepsilon \) has a sign-change, while the magnetic permeability \(\mu \) has a fixed sign (when the roles of \(\varepsilon \) and \(\mu \) are reversed, we refer to Sect. 8). Typically, this corresponds to an interface model between a metal surrounded by a classical material (in some ad hoc frequency range). Classically [3, §8], for solving the time-harmonic Maxwell equations, one can choose first-order formulations in both the electric and magnetic fields, or second-order formulations in the electric field only, or in the magnetic field only. Our choice will be a second-order formulation in the electric field.

The outline is as follows. We begin by introducing some notations, together with a precise definition of the mathematical framework considered hereafter. Before investigating the solution of this problem, we propose some comments in Sect. 2 to help identify the difficulties to be addressed. For that, we rely on some well-known facts regarding the classical setting (fixed-sign coefficient), that we shall apply to the new model. We introduce the companion scalar problem and tools, such as the T-coercivity to realize the inf-sup condition. In Sect. 3, we explain how to solve the time-harmonic Maxwell equations. Next, in Sect. 4, we recall the numerical approximation via edge finite elements, and in particular how one can interpolate the electric field, which can (possibly) be of low-regularity. To prove the results regarding convergence of the numerical method, we use some results regarding practical discrete T-coercivity (for the companion scalar problem) which is achieved with the help of T-conform meshes. These are recalled in the “Appendix A”. As a matter of fact, these results allow us to prove the uniform discrete inf-sup condition for the time-harmonic Maxwell equations: this is the object of the next two sections, where we use a result on the div–curl problem established in “Appendix B”. Then, in Sect. 7, we provide a numerical illustration to check that the expected convergence order is achieved, and how the use of T-conform meshes may impact the convergence rate. In Sect. 8, we outline how one can solve theoretically and numerically the case of \(\mu \) having a sign-change, and \(\varepsilon \) having a fixed sign. Finally, we give some concluding remarks in the last section.

We refer to [36] for the theoretical and numerical analyses of the two-dimensional time-harmonic Maxwell equations, and to [23] for the analyses of the three-dimensional, div–curl, or div–curlcurl, problem, with one sign-changing coefficient. Let us comment briefly on some alternative finite element methods that have previously been designed to solve numerically scalar problems with sign-changing coefficients (diffusion-like, or time-harmonic). As mentioned above, one uses T-conform meshes when one relies on the T-coercivity theory to prove convergence. On the one hand, the use of plain meshes is tempting. However, to the author’s knowledge, convergence theory is incomplete, namely convergence is not guaranteed for all well-posed problems (see Sect. 7); and, if one adds dissipation to restore well-posedness, convergence is suboptimal and can only be guaranteed in some special cases (see respectively sections 5.1 and 5.2 in [19]). On the other hand, one may ask whether it is possible to solve subproblems in regions where the sign of the coefficients is constant, coupled by transmission conditions on the interface. It turns out that an iterative solver based on optimal control theory (with a control defined on the interface) has been proposed in [1] to solve diffusion problems. However it requires extra-regularity of the solution. Finally, let us mention a recent work [25], also relying on optimal control theory (with a volume control), that allows one to solve iteratively diffusion problems without any regularity assumption.

2 Setting of the problem

As in [22], we denote constant fields by the symbol cst. Vector-valued (respectively tensor-valued) function spaces are written in boldface character (resp. blackboard bold characters). Unless otherwise specified, we consider spaces of real-valued functions. Given a non-empty open set \(\mathcal {O}\) of \(\mathbb {R}^3\), we use the notation \((\cdot |\cdot )_{0,\mathcal {O}}\) (respectively \(\Vert \cdot \Vert _{0,\mathcal {O}}\)) for the \(L^2(\mathcal {O})\) and the \(\varvec{L}^2(\mathcal {O}):=(L^2(\mathcal {O}))^3\) inner products (resp. norms). More generally, \((\cdot |\cdot )_{\texttt {s},\mathcal {O}}\) and \(\Vert \cdot \Vert _{\texttt {s},\mathcal {O}}\) (respectively \(|\cdot |_{\texttt {s},\mathcal {O}}\)) denote the inner product and the norm (resp. semi-norm) of the Sobolev spaces \(H^\texttt {s}(\mathcal {O})\) and \(\varvec{H}^\texttt {s}(\mathcal {O}):=(H^\texttt {s}(\mathcal {O}))^3\) for \(\texttt {s}\in \mathbb {R}\) (resp. for \(\texttt {s}>0\)). The index zmv indicates zero-mean-value fields. If moreover the boundary \(\partial \mathcal {O}\) is Lipschitz, \(\varvec{n}\) denotes the unit outward normal vector field to \(\partial \mathcal {O}\). It is assumed that the reader is familiar with function spaces related to Maxwell’s equations, such as \(\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\mathcal {O})\), \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\mathcal {O})\), \(\varvec{H}({{\,\mathrm{\mathrm {div}}\,}};\mathcal {O})\), \(\varvec{H}_0({{\,\mathrm{\mathrm {div}}\,}};\mathcal {O})\) etc. A priori, \(\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\mathcal {O})\) is endowed with the “natural” norm \(\varvec{v}\mapsto (\Vert \varvec{v}\Vert _{0,\mathcal {O}}^2+\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\Vert _{0,\mathcal {O}}^2)^{1/2}\), etc. We refer to the monographs [3, 41, 43] for details.

The symbol C is used to denote a generic positive constant which is independent of the meshsize, the mesh and the fields of interest; C may depend on the geometry, or on the coefficients defining the model. We use the notation \(A\lesssim B\) for the inequality \(A\le C B\), where A and B are two scalar fields, and C is a generic constant.

Let \(\varOmega \) be a domain in \(\mathbb {R}^3\), ie. an open, connected and bounded subset of \(\mathbb {R}^3\) with a Lipschitz-continuous boundary \(\partial \varOmega \). The domain \(\varOmega \) can be simply connected (sc) or not (nsc) [35]. This means that we assume that one of the two conditions below holds:

  • (sc) ‘for all curl-free vector field \(\varvec{v}\in \varvec{C}^1(\varOmega )\), there exists \( p\in C^0(\varOmega )\) such that \(\varvec{v}=\nabla p\) in \(\varOmega \)’;

  • (nsc) ‘there exist \(I>0\) non-intersecting, piecewise plane manifolds, \((\varSigma _j)_{j=1,\ldots ,I}\), with boundaries \(\partial \varSigma _i\subset \partial \varOmega \), such that, if we let \({\dot{\varOmega }}=\varOmega {\setminus }\bigcup _{i=1}^{I}\varSigma _i\), for all curl-free vector field \(\varvec{v}\), there exists \(\dot{p}\in C^0({\dot{\varOmega }})\) such that \(\varvec{v}=\nabla \dot{p}\) in \({\dot{\varOmega }}\)’.

To simplify the computations (without restricting the scope of the study), we assume that the boundary \(\partial \varOmega \) is connected.

We let \(\varOmega \) be surrounded by a perfect conductor. We recall that, for a given pulsation \(\omega >0\), the time-harmonic Maxwell equations set in \(\varOmega \) can be expressed in terms of the complex-valued electric field \(\varvec{e}\) only. They write

$$\begin{aligned} \left\{ \begin{array}{l} Find\, \varvec{e}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\, such\, that\\ \displaystyle {{\,\mathrm{\mathbf {curl}}\,}}(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e})-\omega ^2\varepsilon \varvec{e}=\imath \omega \varvec{j}\ \text{ in }\ \varOmega \\ {{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{e}=\varrho \ \text{ in }\ \varOmega . \end{array}\right. \end{aligned}$$
(1)

Above, the real-valued coefficient \(\varepsilon \) is the electric permittivity tensor and the real-valued coefficient \(\mu \) is the magnetic permeability tensor. The complex-valued source terms \(\varvec{j}\) and \(\varrho \) are respectively the current density and the charge density. They are related by the charge conservation equation

$$\begin{aligned} -\imath \omega \varrho +{{\,\mathrm{\mathrm {div}}\,}}\varvec{j}=0 \text{ in } \varOmega . \end{aligned}$$
(2)

Classically, in (1), the equation \({{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{e}=\varrho \) is implied by the second-order equation \({{\,\mathrm{\mathbf {curl}}\,}}(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e})-\omega ^2\varepsilon \varvec{e}=\imath \omega \varvec{j}\), together with the charge conservation equation (2), so it is omitted from now on. We fix the a priori regularity of the current density to \(\varvec{j}\in \varvec{L}^2(\varOmega )\), which implies that \(\varrho \in H^{-1}(\varOmega )\), with dependence \(\Vert \varrho \Vert _{-1,\varOmega }=\omega ^{-1}\Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{j}\Vert _{-1,\varOmega }\lesssim \Vert \varvec{j}\Vert _{0,\varOmega }\).

Finally, note that one can split the problem into two parts, where \(\Re (\varvec{e})\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\) is related to \(-\Im (\varvec{j})\in \varvec{L}^2(\varOmega )\), resp. \(\Im (\varvec{e})\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\) is related to \(\Re (\varvec{j})\in \varvec{L}^2(\varOmega )\). So, we carry on with \(\varvec{e}\) standing either for \(\Re (\varvec{e})\) or \(\Im (\varvec{e})\), resp. \(\varvec{f}\) standing for \(-\omega ^{-1}\Im (\varvec{j})\) or \(\omega ^{-1}\Re (\varvec{j})\), that is with real-valued fields. One can check that the equivalent variational formulation in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\) writes

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, \varvec{e}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\, such\, that}\\ a_\omega (\varvec{e},\varvec{v}) = \omega ^2 (\varvec{f}|\varvec{v})_{0,\varOmega },\ \forall \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ), \end{array}\right. \end{aligned}$$
(3)

where

$$\begin{aligned} a_\omega (\varvec{u},\varvec{v}):=(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{u}|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{v})_{0,\varOmega } - \omega ^2(\varepsilon \varvec{u}|\varvec{v})_{0,\varOmega },\ \forall \varvec{u},\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ). \end{aligned}$$

Note that with these notations, one has \({{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{e}=-{{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\) in \(\varOmega \).

Then, the real-valued coefficient \(\xi \in \{\varepsilon ,\mu \}\) fulfills one of the two sets of conditions below, which we refer to as the classical case and the interface case hereafter.

Classical case:

$$\begin{aligned} \left\{ \begin{array}{l} \xi \text { is a real-valued, symmetric, measurable tensor field on } \varOmega ,\\ \exists \xi _-,\xi _+>0,\forall \varvec{z}\in \mathbb {R}^3,\ \xi _- |\varvec{z}|^2 \le \xi \varvec{z}\cdot \varvec{z}\le \xi _+ |\varvec{z}|^2 \ \text{ a.e. } \text{ in } \varOmega . \end{array}\right. \end{aligned}$$
(4)

Interface case: \(\varOmega \) is partitioned into the non-trivial partition \(\mathcal {P}:=(\varOmega _p)_{p=+,-}\), where \(\varOmega _{\pm }\) are domains, and \(\delta \xi \) fulfills (4), with \(\delta _{|\varOmega _+}=+1\) and \(\delta _{|\varOmega _-}=-1\).

For our studies of the time-harmonic Maxwell equations in the electric field, we assume from now on that

3 Some comments

Observe that if the electric field is curl-free, ie. \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}=0\), then it may be written as \(\varvec{e}=\nabla p_{\varvec{e}}\) for some \(p_{\varvec{e}}\in H^1_0(\varOmega )\) (cf. Theorem 3.3.9 in [3], as \(\partial \varOmega \) is connected). Moreover, \(p_{\varvec{e}}\) is such that \({{\,\mathrm{\mathrm {div}}\,}}\varepsilon \nabla p_{\varvec{e}} = -{{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\) in \(H^{-1}(\varOmega )\). So to ensure well-posedness, one must make an assumption on the companion scalar problem with Dirichlet boundary condition:

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, s\in H^1_0(\varOmega )\, such\, that}\\ (\varepsilon \nabla s|\nabla q)_{0,\varOmega } = \langle g, q\rangle _{H^1_0(\varOmega )},\ \forall q\in H^1_0(\varOmega ), \end{array}\right. \end{aligned}$$
(5)

namely, that this scalar problem is well-posed. In other words,

$$\begin{aligned} \exists C_\star >0,\ \forall g\in H^{-1}(\varOmega ),\ \exists ! s \text{ solution } \text{ to } (5), \text{ with } \ \Vert s\Vert _{{H^1_0(\varOmega )}} \le C_\star \,\Vert g\Vert _{-1,\varOmega }. \end{aligned}$$
(6)

To measure elements of \(H^1_0(\varOmega )\), we choose the norm \(q\mapsto \Vert q\Vert _{H^1_0(\varOmega )}:=\Vert \nabla q\Vert _{0,\varOmega }\).

If the permittivity \(\varepsilon \) were to fulfill (4), well-posedness of the scalar problem would automatically hold, as an obvious consequence of the fact that \((q,q')\mapsto (\varepsilon \nabla q|\nabla q')_{0,\varOmega }\) defines an inner product on \(H^1_0(\varOmega )\), whose associated norm is equivalent to the \(\Vert \cdot \Vert _{H^1_0(\varOmega )}\)-norm.

However, in the present setting, since \(\varepsilon \) is as in the interface case, this is an additional assumption, which is addressed with the help of T-coercivity [9, 13]. We recall the abstract framework below, see [19, 21] for details. Let V be a Hilbert space with norm \(\Vert \cdot \Vert _V\), and \(a(\cdot ,\cdot )\) a symmetric, continuous bilinear form on \(V\times V\). Then, the well-posedness of the problem

$$\begin{aligned} {Find\; u\in V\; such\, that }\; a(u,v) = \langle f, v\rangle _{V},\ \forall v\in V, \end{aligned}$$
(7)

which reads

$$\begin{aligned} \exists C >0,\ \forall f\in V',\ \exists ! u \text{ solution } \text{ to } (7), \text{ with } \ \Vert u\Vert _V \le C \,\Vert f\Vert _{V'}, \end{aligned}$$
(8)

can be addresssed as follows. One has to prove that the form a is T-coercive, cf. Theorem 1 and Remark 2 of [19]:

$$\begin{aligned} \exists \alpha >0,\ \exists T\in {\mathcal L}(V),\ \forall v\in V,\ |a(v,Tv)| \ge \alpha \,\Vert v\Vert _{V}^2. \end{aligned}$$
(9)

In other words, the operator T realizes the classical inf-sup condition (see eg. [6]) explicitly.

Hence, for the scalar problem (5), and because \(\varepsilon \) is a symmetric tensor field, well-posedness is equivalent to \((q,q')\mapsto (\varepsilon \nabla q|\nabla q')_{0,\varOmega }\) fulfilling an inf-sup condition:

$$\begin{aligned} \exists \gamma _0>0,\ \forall q\in H^1_0(\varOmega ),\quad \sup _{q'\in H^1_0(\varOmega ){\setminus }\{0\}} \frac{|(\varepsilon \nabla q|\nabla q')_{0,\varOmega }|}{ \Vert q'\Vert _{H^1_0(\varOmega )}} \ge \gamma _0\, \Vert q\Vert _{H^1_0(\varOmega )}. \end{aligned}$$
(10)

Or, as noted above, this is equivalent to

$$\begin{aligned} \exists \alpha _0>0,\ \exists T_0\in {\mathcal L}(H^1_0(\varOmega )), \forall q\in H^1_0(\varOmega ),\ |(\varepsilon \nabla q|\nabla (T_0 q))_{0,\varOmega }| \ge \alpha _0\,\Vert \nabla q\Vert _{0,\varOmega }^2. \end{aligned}$$

Note that the absolute value can be removed. Indeed, the quadratic mapping \(q\mapsto (\varepsilon \nabla q|\nabla (T_0 q))_{0,\varOmega }\) is continuous in \(H^1_0(\varOmega )\) and vanishes only for \(q=0\), so it takes either positive, or negative, values everywhere in \(H^1_0(\varOmega )\). Thus, (10) is also equivalent to

$$\begin{aligned} \begin{array}{l} \exists \alpha _0>0,\ \exists T_0\in {\mathcal L}(H^1_0(\varOmega )),\\ \forall q\in H^1_0(\varOmega ),\ (\varepsilon \nabla q|\nabla (T_0 q))_{0,\varOmega } \ge \alpha _0\,\Vert \nabla q\Vert _{0,\varOmega }^2. \end{array} \end{aligned}$$
(11)

To recapitulate, we assume from now on that

When we perform the numerical analysis, and in order to obtain explicit convergence rates between the exact and approximate solution to the time-harmonic Maxwell equations, we shall make two additional assumptions:

  • the coefficients \(\varepsilon ,\mu \) are piecewise smooth: there exists a partition \(\{\varOmega _p\}_{p=1,\ldots ,P}\) of \(\varOmega \), made of disjoint domains \((\varOmega _p)_{p=1,\ldots ,P}\), with \({\overline{\varOmega }}=\cup _{p=1}^P\overline{\varOmega _p}\), and such that \(\varepsilon _{|\varOmega _p},\mu _{|\varOmega _p}\in \mathbb {W}^{1,\infty }(\varOmega _p)\) for \(p=1,\ldots ,P\). In relation to the partition and for \(\texttt {s}\ge 0\), we define

    $$\begin{aligned} PH^\texttt {s}(\varOmega ):=\{ v \in L^2(\varOmega )\ :\ v_{|\varOmega _p}\in H^\texttt {s}(\varOmega _p),\ 1\le p\le P\}, \end{aligned}$$
    (12)

    endowed with the “natural” norm \(\displaystyle \Vert v\Vert _{PH^\texttt {s}(\varOmega )}:=\Big (\sum _{1\le p \le P} \Vert v_p\Vert _{\texttt {s},\varOmega _p} ^2\Big )^{1/2}\).

  • the data \(\varvec{f}\) has extra-regularity, in the sense that

    $$\begin{aligned} {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\in H^{-1+\tau _0}(\varOmega ),\ \text{ with } \tau _0\in (0,1] \text{ given } . \end{aligned}$$
    (13)

For further analysis, let us introduce the scalar problem with modified right-hand side

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, s\in H^1_0(\varOmega )\, such\, that}\\ (\varepsilon \nabla s|\nabla q)_{0,\varOmega } = \langle g, q\rangle _{H^1_0(\varOmega )}+(\varepsilon \varvec{g}|\nabla q)_{0,\varOmega },\ \forall q\in H^1_0(\varOmega ). \end{array}\right. \end{aligned}$$
(14)

If \(\varepsilon \) were as in the classical case [7, 26, 29, 31, 37, 40, 46], one could prove a shift theorem for the problem (14) when the data \((g,\varvec{g})\) has extra-regularity like

$$\begin{aligned} g\in H^{-1+\tau _0}(\varOmega ),\ \varvec{g}\in {\varvec{H}}^1(\varOmega ),\ \text{ with } \tau _0\in (0,1] \text{ given } . \end{aligned}$$

In the interface case, there exist similar results in this direction. We refer to [12, 14, 17, 18, 27] for a piecewise constant coefficient \(\varepsilon \). So we introduce \(\tau _{Dir}\in (0,1]\) depending only on the geometry and on \(\varepsilon \) such that

$$\begin{aligned}&\begin{array}{l} \forall \texttt {s}\in [0,\tau _{Dir}){\setminus }\{1/2\},\ \forall (g,\varvec{g})\in H^{-1+\texttt {s}}(\varOmega )\times {\varvec{H}}^1(\varOmega ),\\ \text{ the } \text{ solution } s \text{ to } (14) \text{ is } \text{ such } \text{ that } s\in PH^{1+\texttt {s}}(\varOmega ), \text{ and } \\ \Vert s\Vert _{PH^{1+\texttt {s}}(\varOmega )}\lesssim (\Vert g\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{g}\Vert _{1,\varOmega }). \end{array} \end{aligned}$$

Above, the constant hidden in \(\lesssim \) may depend on \(\texttt {s}\), but not on g nor on \(\varvec{g}\). By a slight abuse of vocabulary, we call this result the shift theorem, respectively \(\tau _{Dir}\) the limit regularity exponent. We assume from now on that

Remark 1

We shall also need a shift theorem for the scalar problem involving the magnetic permeability \(\mu \) with Neumann boundary condition, see (31) below. The result can be found in the above-mentioned references, because \(\mu \) is as in the classical case. \(\square \)

So far we focused on curl-free fields. To tackle fields with a non-vanishing curl, we use an ad hoc splitting of \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). Define

$$\begin{aligned} \varvec{K}_N(\varOmega ,\varepsilon ):=\{ \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\ :\ {{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{v}=0\}. \end{aligned}$$

An equivalent (variational) definition is

$$\begin{aligned} \varvec{K}_N(\varOmega ,\varepsilon ):=\{ \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\ :\ (\varepsilon \varvec{v}|\nabla q)_{0,\varOmega }=0,\ \forall q \in H^1_0(\varOmega )\}. \end{aligned}$$

Proposition 1

One has the continuous, direct sum

$$\begin{aligned} \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) = \nabla [H^1_0(\varOmega )] \oplus \varvec{K}_N(\varOmega ,\varepsilon ). \end{aligned}$$
(15)

Proof

Obviously, \(\nabla [H^1_0(\varOmega )] + \varvec{K}_N(\varOmega ,\varepsilon )\) is a subset of \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). Let \(\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). According to (6), there exists \(p_{\varvec{v}}\in H^1_0(\varOmega )\) such that

$$\begin{aligned} (\varepsilon \nabla p_{\varvec{v}}|\nabla q)_{0,\varOmega } = (\varepsilon \varvec{v}|\nabla q)_{0,\varOmega },\ \forall q\in H^1_0(\varOmega ). \end{aligned}$$
(16)

Now, let \(\varvec{k}_{\varvec{v}}=\varvec{v}- \nabla p_{\varvec{v}}\), one has \(\varvec{k}_{\varvec{v}}\in \varvec{K}_N(\varOmega ,\varepsilon )\) by construction. It follows that \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) = \nabla [H^1_0(\varOmega )] + \varvec{K}_N(\varOmega ,\varepsilon )\).

Next, let \(\varvec{z}\in \nabla [H^1_0(\varOmega )] \cap \varvec{K}_N(\varOmega ,\varepsilon )\) be given. There exists \(s\in H^1_0(\varOmega )\) such that \(\varvec{z}= \nabla s\) and, by definition of \(\varvec{K}_N(\varOmega ,\varepsilon )\), s is governed by (5) with zero right-hand side. By uniqueness of the solution, one has \(s=0\) and so \(\varvec{z}= 0\): the sum is direct.

Finally, by definition (16) of \(p_{\varvec{v}}\) and according to (11), one has \( \alpha _0\,\Vert \nabla p_{\varvec{v}}\Vert _{0,\varOmega }^2 \le (\varepsilon \nabla p_{\varvec{v}}|\nabla (T_0 p_{\varvec{v}}))_{0,\varOmega } = (\varepsilon \varvec{v}|\nabla (T_0 p_{\varvec{v}}))_{0,\varOmega } \le \Vert \varepsilon \varvec{v}\Vert _{0,\varOmega }\Vert \nabla (T_0 p_{\varvec{v}})\Vert _{0,\varOmega }\), so that

$$\begin{aligned}&\Vert \nabla p_{\varvec{v}}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=\Vert \nabla p_{\varvec{v}}\Vert _{0,\varOmega }\le \alpha _0^{-1}\varepsilon _+\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))}\Vert \varvec{v}\Vert _{0,\varOmega }, \\ \text{ and }&\Vert \varvec{k}_{\varvec{v}}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\le (1+ \alpha _0^{-1}\varepsilon _+\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))})\Vert \varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}. \end{aligned}$$

So the sum is continuous. \(\square \)

In other words, we may introduce the operators of \({\mathcal L}(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ),H^1_0(\varOmega ))\), resp. of \({\mathcal L}(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ))\)

$$\begin{aligned} \pi _1\ :\ \left\{ \begin{array}{l} \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) \rightarrow H^1_0(\varOmega ) \\ \varvec{v}\mapsto p_{\varvec{v}} \end{array}\right. , \quad {\varvec{\pi }}_2\ :\ \left\{ \begin{array}{l} \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) \rightarrow \varvec{K}_N(\varOmega ,\varepsilon ) \\ \varvec{v}\mapsto \varvec{k}_{\varvec{v}} \end{array}\right. \end{aligned}$$

and write, for all \(\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), \(\varvec{v}= \nabla (\pi _1\varvec{v}) + {\varvec{\pi }}_2\varvec{v}\). Note that \(({\varvec{\pi }}_2)^2={\varvec{\pi }}_2\).

We finally recall an important result on the measure of elements of \(\varvec{K}_N(\varOmega ,\varepsilon )\). For its proof, we refer the reader to Corollary 5.2 of [10].

Theorem 1

Elements of \(\varvec{K}_N(\varOmega ,\varepsilon )\) can be measured with the \(\Vert {{\,\mathrm{\mathbf {curl}}\,}}\cdot \Vert _{0,\varOmega }\)-norm:

$$\begin{aligned}&\exists C_W>0,\ \forall \varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon ),\quad \Vert \varvec{k}\Vert _{0,\varOmega } \le C_W\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}\Vert _{0,\varOmega }, \end{aligned}$$
(17)
$$\begin{aligned}&\exists C_W'>1,\ \forall \varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon ),\quad \Vert \varvec{k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \le C_W'\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}\Vert _{0,\varOmega }. \end{aligned}$$
(18)

4 Solving the exact problem

Recall that \(\mu \) is as in the classical case [cf. (4)], resp. \(\varepsilon \) is as in the interface case, and assumption (10)–(11) holds. Using operators \(\pi _1\) and \({\varvec{\pi }}_2\), one can provide an equivalent reformulation of the variational formulation (3). Its solution \(\varvec{e}\) may be split as

$$\begin{aligned} \varvec{e}= \varvec{e}_0 + \nabla \phi , \text{ with } \varvec{e}_0 ={\varvec{\pi }}_2\varvec{e} \text{ and } \phi =\pi _1\varvec{e}. \end{aligned}$$
(19)

By using the (variational) definition of \(\varvec{K}_N(\varOmega ,\varepsilon )\) (recall that \(\varepsilon \) is a symmetric tensor field), we notice that \(\varvec{e}_0\) and \(\phi \) are respectively governed by

$$\begin{aligned}&\left\{ \begin{array}{l} {Find\, \varvec{e}_0\in \varvec{K}_N(\varOmega ,\varepsilon )\, such\, that}\\ a_\omega (\varvec{e}_0,\varvec{v}) = \omega ^2 (\varvec{f}|\varvec{v})_{0,\varOmega },\ \forall \varvec{v}\in \varvec{K}_N(\varOmega ,\varepsilon ). \end{array}\right. \end{aligned}$$
(20)
$$\begin{aligned}&\left\{ \begin{array}{l} {Find\, \phi \in H^1_0(\varOmega )\, such\, that}\\ (\varepsilon \nabla \phi |\nabla q)_{0,\varOmega } = \langle {{\,\mathrm{\mathrm {div}}\,}}\varvec{f},q\rangle _{H^1_0(\varOmega )},\ \forall q\in H^1_0(\varOmega ). \end{array}\right. \end{aligned}$$
(21)

Actually, there is an equivalence result (the proof is left to the reader).

Proposition 2

A field \(\varvec{e}\) is a solution to (3) if, and only if, \({\varvec{\pi }}_2\varvec{e}\) is a solution to (20) and \(\pi _1\varvec{e}\) is a solution to (21).

According to the assumption on \(\varepsilon \), we already know that problem (21) is well-posed. Hence proving the well-posedness of (3) amounts to proving the well-posedness of (20). We recall Theorem 8.15 of [10].

Theorem 2

The imbedding of \(\varvec{K}_N(\varOmega ,\varepsilon )\) in \(\varvec{L}^2(\varOmega )\) is compact.

As a consequence (cf. Theorem 8.16 of [10]), one has the

Corollary 1

The variational formulation (20) with unknown \(\varvec{e}_0\) enters the Fredholm alternative:

  • either the problem (20) is well-posed, ie. it admits a unique solution \(\varvec{e}_0\) in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), which depends continuously on the data \(\varvec{f}\):

    $$\begin{aligned} \Vert \varvec{e}_0\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim \Vert \varvec{f}\Vert _{0,\varOmega }; \end{aligned}$$
  • or, the problem (20) has solutions if, and only if, the data \(\varvec{f}\) satisfies a finite number of compatibility conditions; in this case, the space of solutions is an affine space of finite dimension, and the component of the solution which is orthogonal (in the sense of the \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\) inner product) to the corresponding linear vector space, depends continuously on \(\varvec{f}\).

Finally, each alternative occurs simultaneously for variational formulation (20), and variational formulation (3) with unknown \(\varvec{e}\).

From now on, we assume that variational formulation (3) is well-posed:

$$\begin{aligned} \forall \varvec{f}\in \varvec{L}^2(\varOmega ), \exists !\varvec{e}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\,{\mathrm{sol}}^{\mathrm {n}}\,{\mathrm{to}}\,(3) \text{ and } \Vert \varvec{e}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\lesssim \Vert \varvec{f}\Vert _{0,\varOmega }. \end{aligned}$$
(22)

5 Approximation by Nédélec’s finite elements

For the ease of exposition,Footnote 1 we assume that \(\varOmega \) and \(\{\varOmega _p\}_{p=1,\ldots ,P}\) are Lipschitz polyhedra. We consider a family of simplicial meshes of \(\varOmega \), and we choose the Nédélec’s first family of edge finite elements [43, 44] to define finite dimensional subspaces \((\varvec{V}_h)_h\) of \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). So \(\overline{\varOmega }\) is triangulated by a shape regular family of meshes \((\mathcal {T}_h)_h\), made up of (closed) simplices, generically denoted by K. Each mesh is indexed by \(h:=\max _K h_K\) (the meshsize), where \(h_K\) is the diameter of K. And meshes are conforming with respect to the partition \(\{\varOmega _p\}_{p=1,\ldots ,P}\) induced by the coefficients \(\varepsilon ,\mu \): namely, for all h and all \(K\in \mathcal {T}_h\), there exists \(p\in \{1,\ldots ,P\}\) such that \(K\subset \overline{\varOmega _p}\). Nédélec’s \(\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\)-conforming (first family, first-order) finite element spaces are then defined by

$$\begin{aligned} \varvec{V}_h :=\{ \varvec{v}_h \in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\ :\ {\varvec{v}_h}_{|K}\in \mathcal {R}_1(K),\ \forall K\in \mathcal {T}_h\}, \end{aligned}$$

where \(\mathcal {R}_1(K)\) is the vector space of polynomials on K defined by

$$\begin{aligned} \mathcal {R}_1(K):=\{ \varvec{v}\in \varvec{P}_1(K)\ :\ \varvec{v}(\varvec{x})=\varvec{a}+\varvec{b}\times \varvec{x},\ \varvec{a},\varvec{b}\in \mathbb {R}^3\}. \end{aligned}$$

To approximate the curl-free fields, we need to define a suitable approximation of elements of \(H^1_0(\varOmega )\). So we introduce finite dimensional subspaces \((M_h)_h\) of \(H^1_0(\varOmega )\). Lagrange’s first-order finite element spaces are defined by

$$\begin{aligned} M_h := \{ q_h \in H^1_0(\varOmega )\ :\ {q_h}_{|K}\in P_1(K),\ \forall K\in \mathcal {T}_h\}. \end{aligned}$$

The discrete companion scalar problems are

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, s_h\in M_h\, such\, that}\\ (\varepsilon \nabla s_h|\nabla q_h)_{0,\varOmega } = \langle g, q_h\rangle _{H^1_0(\varOmega )},\ \forall q_h\in M_h. \end{array}\right. \end{aligned}$$
(23)

For approximation purposes, one can use the Lagrange interpolation operator \(\varPi _h^L\), or the Scott–Zhang interpolation operator \(\varPi _h^{SZ}\). The latter allows one to interpolate any element of \(H^1_0(\varOmega )\), with values in \(M_h\), at the expense of local interpolation operators that are not localized to each tetraedron, but are localized to the union of the tetrahedron and its neighbouring tetrahedra. We refer to [33] for details. Unless otherwise specified, we choose \(\varPi _h^{grad}=\varPi _h^{SZ}\).

For h given, the discrete variational formulation of the time-harmonic problem (3) is

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, \varvec{e}_h\in \varvec{V}_h\, such\, that}\\ a_\omega (\varvec{e}_h,\varvec{v}_h) = \omega ^2(\varvec{f}|\varvec{v}_h)_{0,\varOmega },\ \forall \varvec{v}_h\in \varvec{V}_h. \end{array}\right. \end{aligned}$$
(24)

To obtain explicit error estimates for the time-harmonic Maxwell equations, a natural idea is to use the interpolation of its solution \(\varvec{e}\). This requires some additional definitions and a priori analysis of the regularity of \(\varvec{e}\), and of its curl.

Let \(\varPi _h^{curl}\) be the classical global Raviart–Thomas–Nédélec interpolant in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\) with values in \(\varvec{V}_h\) [44]. We then denote by \(\varPi _h^{div}\) the classical global Raviart–Thomas–Nédélec interpolation operator in \(\varvec{H}_0({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\) with values in \(\varvec{W}_h\) [44, 48], where \((\varvec{W}_h)_h\) are designed with the help of \(\varvec{H}({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\)-conforming, first-order finite element spaces:

$$\begin{aligned} \varvec{W}_h :=\{ \varvec{w}_h \in \varvec{H}_0({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\ :\ {\varvec{w}_h}_{|K}\in \mathcal {D}_1(K),\ \forall K\in \mathcal {T}_h\}, \end{aligned}$$

where \(\mathcal {D}_1(K)\) is the vector space of polynomials on K defined by

$$\begin{aligned} \mathcal {D}_1(K):=\{ \varvec{v}\in \varvec{P}_1(K)\ :\ \varvec{v}(\varvec{x})=\varvec{a}+b\varvec{x},\ \varvec{a}\in \mathbb {R}^3,\ b\in \mathbb {R}\}. \end{aligned}$$

Let us recall a few useful properties (see Chapter 5 in [43]). To start with,

Proposition 3

For all h, it holds that

$$\begin{aligned}&\nabla [M_h] \subset \varvec{V}_h ; \end{aligned}$$
(25)
$$\begin{aligned}&\forall \varvec{v}_h\in \varvec{V}_h,\quad \varPi _h^{curl}\varvec{v}_h = \varvec{v}_h ; \end{aligned}$$
(26)
$$\begin{aligned}&{{\,\mathrm{\mathbf {curl}}\,}}[\varvec{V}_h] \subset \varvec{W}_h ; \end{aligned}$$
(27)
$$\begin{aligned}&\forall \varvec{w}_h\in \varvec{W}_h,\quad \varPi _h^{div}\varvec{w}_h = \varvec{w}_h ; \end{aligned}$$
(28)
$$\begin{aligned}&\forall \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) \text{ s.t. } \varPi _h^{curl}\varvec{v} \text{ exists } ,\ \varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v})={{\,\mathrm{\mathbf {curl}}\,}}(\varPi _h^{curl}\varvec{v}). \end{aligned}$$
(29)

There are useful additional properties regarding \(\varPi _h^{curl}\) listed next. Below, when we refer to piecewise-\(H^s\) fields, the partition is understood as in (12).

Proposition 4

(discrete exact sequence [44]) Let h be given, and let \(\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\) that can be written as \(\varvec{v}= \nabla q\) in \(\varOmega \), for some \(q\in H^1_0(\varOmega )\). Then if \(\varPi _h^{curl}\varvec{v}\) is well-defined, there exists \(q_h\in M_h\) such that \(\varPi _h^{curl}\varvec{v}=\nabla q_h\) in \(\varOmega \).

Proposition 5

(classical interpolation results) Assume that \(\varvec{v}\in \varvec{PH}^{\texttt {s}}(\varOmega )\) and \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\in \varvec{PH}^{\texttt {s}'}(\varOmega )\) for some \(\texttt {s}>1/2\), \(\texttt {s}'>0\). Then one can define \(\varPi _h^{curl}\varvec{v}\) and, in addition, one has the approximation result [5]:

$$\begin{aligned} \Vert \varvec{v}-\varPi _h^{curl}\varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim h^{\min (\texttt {s},\texttt {s}',1)}\{ \Vert \varvec{v}\Vert _{\varvec{PH}^\texttt {s}(\varOmega )}+ \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\Vert _{\varvec{PH}^{\texttt {s}'}(\varOmega )}\}. \end{aligned}$$
(30)

Furthermore, if \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\) is piecewise constant on \(\mathcal {T}_h\), one has the improved approximation result (cf. Theorem 5.41 in [43]):

$$\begin{aligned} \Vert \varvec{v}-\varPi _h^{curl}\varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim h^{\min (\texttt {s},1)}\{ \Vert \varvec{v}\Vert _{\varvec{PH}^\texttt {s}(\varOmega )}+ \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\Vert _{0,\varOmega }\}. \end{aligned}$$

Remark 2

When \(\varOmega _2\) is a domain of \(\mathbb {R}^2\), note that one can define the Raviart–Thomas–Nédélec interpolant of a field \(\varvec{v}\in \varvec{H}({{\,\mathrm{\mathrm {curl}}\,}};\varOmega _2)\) as soon as \(\varvec{v}\in \varvec{PH}^{\texttt {s}}(\varOmega _2)\) for some \(\texttt {s}>0\) (there is no requirement on the regularity of \({{\,\mathrm{\mathrm {curl}}\,}}\varvec{v}\)). This result is proven in [4] for fields in \(\varvec{H}({{\,\mathrm{\mathrm {div}}\,}};\varOmega _2)\), and it obviously carries over to fields in \(\varvec{H}({{\,\mathrm{\mathrm {curl}}\,}};\varOmega _2)\) by appropriate coordinates transform. Further, one has the approximation result:

$$\begin{aligned} \Vert \varvec{v}-\varPi _h^{curl}\varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathrm {curl}}\,}};\varOmega _2)} \lesssim h^{\min (\texttt {s},1)}\{ \Vert \varvec{v}\Vert _{\varvec{PH}^\texttt {s}(\varOmega _2)}+ \Vert {{\,\mathrm{\mathrm {curl}}\,}}\varvec{v}\Vert _{0,\varOmega _2}\}. \end{aligned}$$

\(\square \)

Our aim is to apply \(\varPi _h^{curl}\) to the electric field \(\varvec{e}\) governed by (3).

First, one must have \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\in \varvec{PH}^{\texttt {s}'}(\varOmega )\) for some \(\texttt {s}'>0\). Since \(\varvec{f}\in \varvec{L}^2(\varOmega )\), we immediately find that \(\varvec{c}=\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\) belongs to

$$\begin{aligned} \varvec{X}_T(\varOmega ,\mu ):=\{ \varvec{v}\in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\ :\ \mu \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\}. \end{aligned}$$

Then, using a shift theorem for the companion scalar problem with Neumann boundary condition

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, s\in H^1_{zmv}(\varOmega )\, such\, that}\\ (\mu \nabla s|\nabla q)_{0,\varOmega } = \langle {g'}, q\rangle _{H^1_{zmv}(\varOmega )},\ \forall q\in H^1_{zmv}(\varOmega ), \end{array}\right. \end{aligned}$$
(31)

and a regular plus gradient decomposition (see eg. [22, 26]), we introduce \(\tau _{Neu}\in (0,1]\) depending only on the geometry and on \(\mu \) such that

$$\begin{aligned} \varvec{X}_T(\varOmega ,\mu )\subset \cap _{\texttt {s}'\in [0,\tau _{Neu})}\varvec{PH}^{\texttt {s}'}(\varOmega ), \end{aligned}$$

with continuous imbedding for all \(\texttt {s}'\in [0,\tau _{Neu})\). Furthermore, using a Weber inequality (cf. Theorem 6.2.5 in [3]), one has that for all \(\texttt {s}'\in [0,\tau _{Neu})\),

$$\begin{aligned} \begin{array}{l} \forall \varvec{v}\in \varvec{X}_T(\varOmega ,\mu ), \\ \displaystyle \Vert \varvec{v}\Vert _{\varvec{PH}^{\texttt {s}'}(\varOmega )} \lesssim \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\Vert _{0,\varOmega } + \Vert {{\,\mathrm{\mathrm {div}}\,}}\mu \varvec{v}\Vert _{0,\varOmega } + \sum _{1\le i \le I} |\langle \mu \varvec{v}\cdot \varvec{n},1\rangle _{H^{1/2}(\varSigma _i)} |. \end{array} \end{aligned}$$
(32)

As a consequence, we note that since \(\mu \) is piecewise smooth, it also holds that

$$\begin{aligned} {{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\in \cap _{\texttt {s}'\in [0,\tau _{Neu})}\varvec{PH}^{\texttt {s}'}(\varOmega ). \end{aligned}$$
(33)

Then, to guarantee that \(\varPi _h^{curl}\) can be applied to the electric field \(\varvec{e}\), one must check whether \(\varvec{e}\in \varvec{PH}^{\texttt {s}}(\varOmega )\) for some \(\texttt {s}>1/2\). To evaluate the exponent \(\texttt {s}\) a priori, we use the following regular plus gradient decomposition (see Lemma 2.4 of [38]).

Proposition 6

There exist operators

$$\begin{aligned} \varvec{P}\in {\mathcal L}(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ),\varvec{H}^1(\varOmega )),\quad Q\in {\mathcal L}(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ),H^1_0(\varOmega )), \end{aligned}$$

such that

$$\begin{aligned} \forall \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ),\quad \varvec{v}=\varvec{P}\varvec{v}+ \nabla (Q\varvec{v}). \end{aligned}$$
(34)

This yields some useful results for elements of \(\varvec{K}_N(\varOmega ,\varepsilon )\).

Corollary 2

The a priori regularity of elements of \(\varvec{K}_N(\varOmega ,\varepsilon )\) is governed by the imbedding:

$$\begin{aligned} \varvec{K}_N(\varOmega ,\varepsilon )\subset \cap _{\texttt {s}\in [0,\tau _{Dir})}\varvec{PH}^{\texttt {s}}(\varOmega ). \end{aligned}$$

Moreover, for all \(\texttt {s}\in [0,\tau _{Dir})\),

$$\begin{aligned} \forall \varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon ),\quad \Vert \varvec{k}\Vert _{\varvec{PH}^{\texttt {s}}(\varOmega )} \lesssim \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}\Vert _{0,\varOmega }. \end{aligned}$$
(35)

Proof

Let \(\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )\). According to Proposition 6, one can write \(\varvec{k}=\varvec{k}^\star +\nabla s_{\varvec{k}}\) with \(\varvec{k}^\star \in \varvec{H}^1(\varOmega )\), resp. \(s_{\varvec{k}}\in H^1_0(\varOmega )\), and it holds that \(\Vert \varvec{k}^\star \Vert _{1,\varOmega }+\Vert s_{\varvec{k}}\Vert _{{H^1_0(\varOmega )}} \lesssim \Vert \varvec{k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\). In particular, \({{\,\mathrm{\mathrm {div}}\,}}(\varepsilon \nabla s_{\varvec{k}})=-{{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{k}^\star \) in \(\varOmega \), so \(s_{\varvec{k}}\) solves the modified scalar problem (14) with data \((0,-\varvec{k}^\star )\). Thanks to the shift theorem, we know that, for all \(\texttt {s}\in [0,\tau _{Dir})\), \(s_{\varvec{k}}\) belongs to \(PH^{1+\texttt {s}}(\varOmega )\), with the bound \(\Vert s_{\varvec{k}}\Vert _{PH^{1+\texttt {s}}(\varOmega )}\lesssim \Vert \varvec{k}^\star \Vert _{1,\varOmega }.\) Using the triangle inequality, we conclude that

$$\begin{aligned} \forall \texttt {s}\in [0,\tau _{Dir}),\ \varvec{k}\in \varvec{PH}^{\texttt {s}}(\varOmega ), \text{ and } \Vert \varvec{k}\Vert _{\varvec{PH}^{\texttt {s}}(\varOmega )}\lesssim \Vert \varvec{k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}. \end{aligned}$$

This proves the first part of the corollary. Using finally Theorem 1 on the equivalence of norms in \(\varvec{K}_N(\varOmega ,\varepsilon )\), we conclude that (35) holds. \(\square \)

Hence, it may happen that the field to be interpolated, eg. the electric field \(\varvec{e}\), does not belong to \(\cup _{\texttt {s}>1/2}\varvec{PH}^{\texttt {s}}(\varOmega )\). In the classical case, the occurence of such a situation is explained in section 7 of [26]. In the interface case, this can be inferred from the results obtained in [9, 12].

On the other hand, to interpolate such a low regularity field, one may still choose the quasi-interpolation operator of [32], or the combined interpolation operator of [22, 23]. We choose the latter. To get a definition for the combined interpolation operator, denoted by \(\varPi _h^{comb}\), one needs to be able to split low regularity fields defined on \(\varOmega \). To that end, we apply Proposition 6.

Definition 1

(combined interpolation operator) Let \(\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), with \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\in \varvec{H}^{\texttt {s}'}(\varOmega )\) for some \(\texttt {s}'>0\). We define

$$\begin{aligned} \varPi _h^{comb}\varvec{v}:= \varPi _h^{curl}(\varvec{P}\varvec{v})+\nabla (\varPi _h^{grad}(Q\varvec{v})). \end{aligned}$$

Then, the approximation results for the combined interpolation are a straightforward consequence of the available results for \(\varPi _h^{curl}\) and \(\varPi _h^{grad}\).

Proposition 7

(combined interpolation results) Let \(\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), with \(Q\varvec{v}\in PH^{1+\texttt {s}}(\varOmega )\) and \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\in \varvec{PH}^{\texttt {s}'}(\varOmega )\) for some \(\texttt {s}\ge 0\), \(\texttt {s}'>0\). One has the approximation result:

$$\begin{aligned} \Vert \varvec{v}-\varPi _h^{comb}\varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}&\lesssim h^{\min (\texttt {s},\texttt {s}',1)}\left\{ \Vert \varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\right. \nonumber \\&\quad \left. + \Vert Q\varvec{v}\Vert _{PH^{1+\texttt {s}}(\varOmega )} + \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\Vert _{\varvec{PH}^{\texttt {s}'}(\varOmega )}\right\} . \end{aligned}$$
(36)

Furthermore, if \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\) is piecewise constant on \(\mathcal {T}_h\), one has the improved approximation result:

$$\begin{aligned} \Vert \varvec{v}-\varPi _h^{comb}\varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim h^{\min (\texttt {s},1)}\{ \Vert \varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} + \Vert Q\varvec{v}\Vert _{PH^{1+\texttt {s}}(\varOmega )} \}. \end{aligned}$$

Together with this definition of the combined interpolation operator, we have the results below, to be compared with the well-known results (26) and (29) for the classical interpolation operator.

Proposition 8

For all h, it holds that

$$\begin{aligned}&\forall \varvec{v}_h\in \varvec{V}_h,\exists q_h\in M_h,\quad \varPi _h^{comb}\varvec{v}_h = \varvec{v}_h + \nabla q_h ; \end{aligned}$$
(37)
$$\begin{aligned}&\forall \varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) \text{ s.t. } {{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}\in \varvec{H}^{\texttt {s}'}(\varOmega ) \text{ for } \text{ some } \texttt {s}'>0, \nonumber \\&\qquad \qquad \qquad \qquad \qquad \quad \varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v})={{\,\mathrm{\mathbf {curl}}\,}}(\varPi _h^{comb}\varvec{v}). \end{aligned}$$
(38)

Proof

Let \(\varvec{v}_h\in \varvec{V}_h\). We note that because \(\varvec{v}_h\) is piecewise smooth on \(\mathcal {T}_h\), one has \(\varvec{v}_h,{{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}_h\in \varvec{PH}^{\texttt {t}}(\varOmega )\) for all \(\texttt {t}\in [0,1/2)\). Hence \(\varPi _h^{comb}\varvec{v}_h\) is well-defined according to Definition 1. If we write \(\varvec{v}_h=(\varvec{v}_h)^\star +\nabla s_{\varvec{v}_h}\), with \((\varvec{v}_h)^\star =\varvec{P}\varvec{v}_h\), resp. \(s_{\varvec{v}_h}=Q\varvec{v}_h\), we have \(\varPi _h^{comb}\varvec{v}_h :=\varPi _h^{curl}(\varvec{v}_h)^\star +\nabla (\varPi _h^{grad}s_{\varvec{v}_h})\).

On the other hand, \(\nabla s_{\varvec{v}_h} = \varvec{v}_h-(\varvec{v}_h)^\star \). Since \(\varPi _h^{curl}(\varvec{v}_h-(\varvec{v}_h)^\star )\) is well-defined, so is \(\varPi _h^{curl}(\nabla s_{\varvec{v}_h})\) and, according to Proposition 4, there exists \(q'_h\in M_h\) such that \(\varPi _h^{curl}(\nabla s_{\varvec{v}_h})=\nabla q'_h\). Applying now \(\varPi _h^{curl}\) to \((\varvec{v}_h)^\star =\varvec{v}_h-\nabla s_{\varvec{v}_h}\), it follows that

$$\begin{aligned} \varPi _h^{curl} (\varvec{v}_h)^\star = \varPi _h^{curl}\varvec{v}_h - \nabla q'_h = \varvec{v}_h - \nabla q'_h, \end{aligned}$$

where the second equality now follows from (26). One concludes that

$$\begin{aligned} \varPi _h^{comb}\varvec{v}_h := \varvec{v}_h + \nabla \big (\varPi _h^{grad}s_{\varvec{v}_h}-q'_h\big ), \end{aligned}$$

which is precisely (37) with \(q_h=\varPi _h^{grad}s_{\varvec{v}_h}-q'_h\in M_h\).

To check (38), let \(\varvec{v}\) be split as \(\varvec{v}= \varvec{P}\varvec{v}+ \nabla (Q\varvec{v})\). Since \( {{\,\mathrm{\mathbf {curl}}\,}}(\varvec{P}\varvec{v})\in \varvec{H}^{\texttt {s}'}(\varOmega )\), according to Proposition 5 one may apply (29) to \(\varvec{P}\varvec{v}\), leading to \(\varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}(\varvec{P}\varvec{v}))={{\,\mathrm{\mathbf {curl}}\,}}(\varPi _h^{curl}(\varvec{P}\varvec{v}))\). On the other hand, because of the Definition 1 of \(\varPi _h^{comb}\varvec{v}= \varPi _h^{curl}(\varvec{P}\varvec{v})+\nabla (\varPi _h^{grad}(Q\varvec{v}))\) one has

$$\begin{aligned} {{\,\mathrm{\mathbf {curl}}\,}}\big (\varPi _h^{curl}(\varvec{P}\varvec{v})\big ) = {{\,\mathrm{\mathbf {curl}}\,}}\big (\varPi _h^{comb}\varvec{v}-\nabla \big (\varPi _h^{grad}(Q\varvec{v})\big )\big ) = {{\,\mathrm{\mathbf {curl}}\,}}\big (\varPi _h^{comb}\varvec{v}\big ). \end{aligned}$$

Using finally the equality \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}= {{\,\mathrm{\mathbf {curl}}\,}}(\varvec{P}\varvec{v})\) leads to the claim. \(\square \)

We now have all the required results to bound the interpolation error of the electric field \(\varvec{e}\).

Proposition 9

Let \(\varvec{e}\) be the solution to the time-harmonic Maxwell equations. Let the extra-regularity of the data \(\varvec{f}\) be as in (13) with \(\tau _0>0\) given. One can define \(\varPi _h^{comb}\varvec{e}\), and moreover one has the approximation result, for all \(\texttt {s}\in [0,\min (\tau _0,\tau _{Dir},\tau _{Neu}))\),

$$\begin{aligned} \Vert \varvec{e}-\varPi _h^{comb}\varvec{e}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim h^{\texttt {s}}\{ \Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{f}\Vert _{0,\varOmega }\}. \end{aligned}$$

Proof

Let \(\texttt {s}\in [0,\min (\tau _0,\tau _{Dir},\tau _{Neu}))\); because \(\tau _{Dir}\le 1\), one has \(\texttt {s}<1\).

According to Proposition 6, we may write \(\varvec{e}=\varvec{e}^\star +\nabla s_{\varvec{e}}\) with \(\varvec{e}^\star \in \varvec{H}^1(\varOmega )\), \(s_{\varvec{e}}\in H^1_0(\varOmega )\), and \(\Vert \varvec{e}^\star \Vert _{1,\varOmega }+\Vert s_{\varvec{e}}\Vert _{{H^1_0(\varOmega )}} \lesssim \Vert \varvec{e}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\). By construction, \(s_{\varvec{e}}\) solves the modified scalar problem (14) with data \(({{\,\mathrm{\mathrm {div}}\,}}\varvec{f},-\varvec{e}^\star )\). But \(\texttt {s}<\min (\tau _0,\tau _{Dir})\) so, thanks to the shift theorem, \(s_{\varvec{e}}\in PH^{1+\texttt {s}}(\varOmega )\), with the bound \(\Vert s_{\varvec{e}} \Vert _{PH^{1+\texttt {s}}(\varOmega )}\lesssim \Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{e}^\star \Vert _{1,\varOmega }\). Using (22) for the last inequality below, we find

$$\begin{aligned} \Vert s_{\varvec{e}} \Vert _{PH^{1+\texttt {s}}(\varOmega )} \lesssim \Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{e}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim \Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{f}\Vert _{0,\varOmega }. \end{aligned}$$

On the other hand, one has \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\in \varvec{PH}^{\texttt {s}}(\varOmega )\), cf. (33). Then, with the help of the bound (32) on \(\Vert \mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\Vert _{\varvec{PH}^{\texttt {s}}(\varOmega )}\), noting that \({{\,\mathrm{\mathrm {div}}\,}}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}=0\) in \(\varOmega \), and \(\langle {{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\cdot \varvec{n},1\rangle _{H^{1/2}(\varSigma _i)} = 0\) for \(1\le i \le I\) (see Remark 3.5.2 in [3]), we find

$$\begin{aligned} \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\Vert _{\varvec{PH}^{\texttt {s}}(\varOmega )}\lesssim & {} \Vert \mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\Vert _{\varvec{PH}^{\texttt {s}}(\varOmega )} \lesssim \Vert {{\,\mathrm{\mathbf {curl}}\,}}(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}) \Vert _{0,\varOmega } \\\lesssim & {} \Vert \varvec{e}\Vert _{0,\varOmega } + \Vert \varvec{f}\Vert _{0,\varOmega }, \end{aligned}$$

where we used the relation \({{\,\mathrm{\mathbf {curl}}\,}}(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e})=\omega ^2\varepsilon \varvec{e}+\omega ^2\varvec{f}\) in \(\varOmega \). Therefore, one can define \(\varPi _h^{comb}\varvec{e}\) and, using (36) and (22) once more, one finds now

$$\begin{aligned} \Vert \varvec{e}-\varPi _h^{comb}\varvec{e}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\lesssim & {} h^{\texttt {s}}\{ \Vert \varvec{e}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} + \Vert s_{\varvec{e}}\Vert _{PH^{1+\texttt {s}}(\varOmega )} + \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}\Vert _{\varvec{PH}^{\texttt {s}}(\varOmega )}\} \\\lesssim & {} h^{\texttt {s}}\{ \Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{f}\Vert _{0,\varOmega } \}, \end{aligned}$$

which is the desired estimate. \(\square \)

Remark 3

In particular, we note that even when the electric field \(\varvec{e}\) does not belong to \(\cup _{\texttt {s}>1/2}\varvec{PH}^{\texttt {s}}(\varOmega )\), one may use the combined interpolation operator and still obtain “best” interpolation error. On the other hand, it is well-known by using classical interpolation that, when \(\tau _{Dir}=\tau _{Neu}=1\), and for a regular data \(\varvec{f}\in \varvec{H}({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\), the interpolation error behaves like O(h). \(\square \)

From this point on, to obtain the well-posedness result for the discretized problems, and finally convergence to the exact solution \(\varvec{e}\), one needs to prove a uniform discrete inf-sup condition. For that, we mimic in Sect. 5 the two ingredients that were used to solve the exact variational formulation: uniformly stable discrete decompositions in the spirit of Proposition 1; uniform equivalence of norms in the spirit of Theorem 1. The key ingredient is the study of the approximation (23) of the companion scalar problem (5). And, since it was originally solved with the help of T-coercivity, we consider two situations regarding its approximation. We refer to the “Appendix A” for details. Either we have at hand a “full” T-coercivity involution operator \(T_0\) to solve (5), that can also be used to establish to establish the uniform discrete T-coercivity (60)–(61) of the discrete scalar problems (23). Or, we only have at hand a “weak” explicit T-coercivity involution operator T, cf. (59). The first situation is addressed in Sect. 5.1, whereas the second situation is addressed in Sect. 5.2.

6 Uniform estimates

6.1 Case of a “full” T-coercivity operator

We assume in this section that we have at hand a “full” T-coercivity involution operator \(T_0\) to solve the companion scalar problem (5) (see Sect. A.1), and that the meshes are T-conform, such that (60)–(61) are fulfilled, with consequences listed in Sect. A.2. Define, for any h,

$$\begin{aligned} \varvec{K}_h(\varepsilon ):=\{ \varvec{v}_h \in \varvec{V}_h\ :\ (\varepsilon \varvec{v}_h|\nabla q_h)_{0,\varOmega }=0,\ \forall q_h \in M_h\}. \end{aligned}$$
(39)

Proposition 10

Assume that (60) holds. For all h, one has the direct sum

$$\begin{aligned} \varvec{V}_h = \nabla [M_h] \oplus \varvec{K}_h(\varepsilon ). \end{aligned}$$
(40)

Proof

Let h be given. Thanks to (25), we know that \(\nabla [M_h] + \varvec{K}_h(\varepsilon )\) is a subset of \(\varvec{V}_h\). Then for \(\varvec{v}_h \in \varvec{V}_h\) and because the discrete scalar problem (23) is well-posed, there exists one, and only one, \(p_{\varvec{v}_h}\in M_h\) such that

$$\begin{aligned} (\varepsilon \nabla p_{\varvec{v}_h}|\nabla q_h)_{0,\varOmega } = (\varepsilon \varvec{v}_h|\nabla q_h)_{0,\varOmega },\ \forall q_h\in M_h. \end{aligned}$$
(41)

And one has

$$\begin{aligned} \varvec{k}_{\varvec{v}_h}=\varvec{v}_h - \nabla p_{\varvec{v}_h}\in \varvec{K}_h(\varepsilon ), \end{aligned}$$
(42)

so \(\varvec{V}_h = \nabla [M_h] + \varvec{K}_h(\varepsilon )\). Using (60), the fact that the sum is direct is derived exactly as in the continuous case (see the proof of Proposition 1). \(\square \)

For all h, we can use the splitting (40) and the explicit definitions (41)–(42) to introduce the operators

$$\begin{aligned} \pi _{1h}\ :\ \left\{ \begin{array}{l} \varvec{V}_h \rightarrow M_h \\ \varvec{v}_h \mapsto p_{\varvec{v}_h} \end{array}\right. , \quad {\varvec{\pi }}_{2h}\ :\ \left\{ \begin{array}{l} \varvec{V}_h \rightarrow \varvec{K}_h(\varepsilon ) \\ \varvec{v}_h \mapsto \varvec{k}_{\varvec{v}_h} \end{array}\right. . \end{aligned}$$
(43)

In other words, one may write, for all h, for all \(\varvec{v}_h\in \varvec{V}_h\), \(\varvec{v}_h = \nabla (\pi _{1h}\varvec{v}_h) + {\varvec{\pi }}_{2h}\varvec{v}_h\). Also, one has for all h, \(({\varvec{\pi }}_{2h})^2={\varvec{\pi }}_{2h}\). Below, we prove the uniform stability of the decomposition (40).

Proposition 11

Assume that (60) holds. The continuity moduli of the operators \((\pi _{1h})_h\), \(({\varvec{\pi }}_{2h})_h\) are bounded independently of h.

Proof

Given h and \(\varvec{v}_h \in \varvec{V}_h\), one has according to (60) and (41)

$$\begin{aligned} \alpha '_0\,\Vert \nabla (\pi _{1h}\varvec{v}_h)\Vert _{0,\varOmega }^2\le & {} (\varepsilon \nabla (\pi _{1h}\varvec{v}_h)|\nabla (T_0(\pi _{1h}\varvec{v}_h)))_{0,\varOmega } = (\varepsilon \varvec{v}_h|\nabla (T_0(\pi _{1h}\varvec{v}_h)))_{0,\varOmega } \\\le & {} \Vert \varepsilon \varvec{v}_h\Vert _{0,\varOmega }\Vert \nabla (T_0(\pi _{1h}\varvec{v}_h))\Vert _{0,\varOmega } \\\le & {} \Vert \varepsilon \varvec{v}_h\Vert _{0,\varOmega }\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))}\Vert \nabla (\pi _{1h}\varvec{v}_h)\Vert _{0,\varOmega }, \end{aligned}$$

so that

$$\begin{aligned} \Vert \nabla (\pi _{1h}\varvec{v}_h)\Vert _{0,\varOmega } \le (\alpha '_0)^{-1}\varepsilon _+\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))}\Vert \varvec{v}_h\Vert _{0,\varOmega }. \end{aligned}$$

And then

$$\begin{aligned} \Vert {\varvec{\pi }}_{2h}\varvec{v}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\le (1+ (\alpha '_0)^{-1}\varepsilon _+\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))})\Vert \varvec{v}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}, \end{aligned}$$

so the claim follows. \(\square \)

Next, one has to check that \(\varvec{k}_h\mapsto \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }\) defines a norm on \(\varvec{K}_h(\varepsilon )\). And, if the answer is positive, whether this norm of uniformly equivalent in h (ie. with constants that are independent of h) to the \(\Vert \cdot \Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\)-norm on \(\varvec{K}_h(\varepsilon )\).

Proposition 12

Assume that (60) holds. For all h, \(\varvec{k}_h\mapsto \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }\) defines a norm on \(\varvec{K}_h(\varepsilon )\).

Proof

Let \(\varvec{k}_h\in \varvec{K}_h(\varepsilon )\) be such that \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h=0\) in \(\varOmega \). Since the boundary \(\partial \varOmega \) is connected, we get from Theorem 3.3.9 of [3] that there exists \(q\in H^1_0(\varOmega )\) such that \(\varvec{k}_h=\nabla q\) in \(\varOmega \). Since \(\varPi _h^{curl}\varvec{k}_h\) is well-defined (and equal to \(\varvec{k}_h\)), we know from Proposition 4 that there exists \(q_h\in M_h\) such that \(\varPi _h^{curl}\varvec{k}_h=\nabla q_h\) in \(\varOmega \). In other words, \(\varvec{k}_h=\varPi _h^{curl}\varvec{k}_h=\nabla q_h\in \nabla [M_h]\). So one has \(\varvec{k}_h\in \nabla [M_h]\cap \varvec{K}_h(\varepsilon )\) which reduces to \(\{0\}\) according to Proposition 10: this proves the result. \(\square \)

Theorem 3

Assume that (60) holds. Then

$$\begin{aligned} \exists C_W^\star >0,\ \forall h,\ \forall \varvec{k}_h\in \varvec{K}_h(\varepsilon ),\quad \Vert \varvec{k}_h\Vert _{0,\varOmega } \le C_W^\star \,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }. \end{aligned}$$
(44)

In addition, let \(\texttt {s}\in (0,\tau _{Dir})\):

$$\begin{aligned} \left\{ \begin{array}{l} \exists C_\texttt {s}>0,\ \forall h,\ \forall \varvec{k}_h\in \varvec{K}_h(\varepsilon ),\\ \inf _{\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )} \Vert \varvec{k}-\varvec{k}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \le C_\texttt {s}h^{\texttt {s}}\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }. \end{array}\right. \end{aligned}$$
(45)

Proof

Let

$$\begin{aligned} \varvec{H}_0^\varSigma ({{\,\mathrm{\mathrm {div}}\,}}0;\varOmega ) := \{\varvec{v}\in \varvec{H}_0({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\ :\ {{\,\mathrm{\mathrm {div}}\,}}\varvec{v}=0 \text{ in } \varOmega ,\ \langle \varvec{v}\cdot \varvec{n},1\rangle _{\varSigma _i}=0,\ 1\le i\le I\}. \end{aligned}$$

Let \(\varvec{k}_h\in \varvec{K}_h(\varepsilon )\) be given. According to Theorem 6.1.4 in [3], one has \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\in \varvec{H}_0^\varSigma ({{\,\mathrm{\mathrm {div}}\,}}0;\varOmega )\). So, using Corollary 3 in “Appendix B”, we find that there exists one, and only one, solution to the div–curl problem

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, \varvec{k}\in \varvec{L}^2(\varOmega )\, such\, that}\\ {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}= {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h \text{ in } \varOmega ,\\ {{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{k}= 0 \text{ in } \varOmega ,\\ \varvec{k}\times \varvec{n}=0 \text{ on } \partial \varOmega , \end{array}\right. \end{aligned}$$
(46)

with \(\Vert \varvec{k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\lesssim \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }\). By definition, \(\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )\), and it holds

$$\begin{aligned} \Vert \varvec{k}_h\Vert _{0,\varOmega }\le & {} \Vert \varvec{k}_h-\varvec{k}\Vert _{0,\varOmega } + \Vert \varvec{k}\Vert _{0,\varOmega } \nonumber \\\le & {} \Vert \varvec{k}_h-\varvec{k}\Vert _{0,\varOmega } + C_W\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}\Vert _{0,\varOmega } \nonumber \\= & {} \Vert \varvec{k}_h-\varvec{k}\Vert _{0,\varOmega } + C_W\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega } \end{aligned}$$
(47)

thanks to the triangle inequality, (17) and the definition of \(\varvec{k}\). To obtain (44), we bound \(\Vert \varvec{k}_h-\varvec{k}\Vert _{0,\varOmega }\) by \(\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }\), uniformly with respect to h.

By definition of \(\varvec{k}\), we know that \({{\,\mathrm{\mathbf {curl}}\,}}(\varvec{k}-\varvec{k}_h)=0\) in \(\varOmega \) so, thanks to Theorem 3.3.9. in [3], there exists \(q\in H^1_0(\varOmega )\) such that \(\varvec{k}-\varvec{k}_h = \nabla q\) in \(\varOmega \). Thus, using (11), we have the bound

$$\begin{aligned} \alpha _0\,\Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega }^2 = \alpha _0\,\Vert \nabla q\Vert _{0,\varOmega }^2 \le (\varepsilon \nabla q|\nabla (T_0 q))_{0,\varOmega } = (\varepsilon (\varvec{k}-\varvec{k}_h)|\nabla (T_0 q))_{0,\varOmega }. \end{aligned}$$

Because \(\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )\) and \(\varvec{k}_h\in \varvec{K}_h(\varepsilon )\), we note that \((\varepsilon (\varvec{k}-\varvec{k}_h)|\nabla q'_h)_{0,\varOmega }=0\), for all \(q'_h\in M_h\). Or equivalently, if we recall (60) and its consequence \(T_0[M_h] = M_h\): \((\varepsilon (\varvec{k}-\varvec{k}_h)|\nabla (T_0q_h))_{0,\varOmega }=0\), for all \(q_h\in M_h\). Hence, it holds that, for all \(q_h \in M_h\):

$$\begin{aligned} \alpha _0\,\Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega }^2\le & {} (\varepsilon (\varvec{k}-\varvec{k}_h)|\nabla (T_0 (q-q_h)))_{0,\varOmega } \\\le & {} \varepsilon _+\,\Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega }\,\Vert \nabla (T_0 (q-q_h))\Vert _{0,\varOmega } \\\le & {} \varepsilon _+\,\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))}\,\Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega }\,\Vert \nabla (q-q_h)\Vert _{0,\varOmega }. \end{aligned}$$

This implies that

$$\begin{aligned} \Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega }\le \frac{\varepsilon _+}{\alpha _0}\,\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))}\,\inf _{q_h \in M_h}\Vert \nabla (q-q_h)\Vert _{0,\varOmega }. \end{aligned}$$

There remains to choose some ad hoc \(q_h\in M_h\). For that, we prove next that \(\varPi _h^{comb}\varvec{k}-\varvec{k}_h\) belongs to \(\nabla [M_h]\).

First, we remark that \({{\,\mathrm{\mathbf {curl}}\,}}(\varPi _h^{comb}\varvec{k}) = \varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k})\) according to (38). Next, we express \(\varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k})\) in terms of \({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\). By definition of \(\varvec{k}\), it holds that \(\varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k})=\varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h)\), so using (27)–(28), we get that \(\varPi _h^{div}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{k})= {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\). In other words, \({{\,\mathrm{\mathbf {curl}}\,}}(\varPi _h^{comb}\varvec{k}-\varvec{k}_h)=0\) in \(\varOmega \). According to Theorem 3.3.9. in [3], there exists \(q\in H^1_0(\varOmega )\) such that \(\varPi _h^{comb}\varvec{k}-\varvec{k}_h = \nabla q\) in \(\varOmega \). Moreover, \(\varPi _h^{curl}(\varPi _h^{comb}\varvec{k}-\varvec{k}_h)\) is well-defined and equal to \(\varPi _h^{comb}\varvec{k}-\varvec{k}_h\) [cf. (26)]. Hence we conclude from Proposition 4 that there exists \(q_h^0\in M_h\) such that \(\nabla q_h^0 \big (= \varPi _h^{curl}(\varPi _h^{comb}\varvec{k}-\varvec{k}_h)\big ) = \varPi _h^{comb}\varvec{k}-\varvec{k}_h\).

Now, we find that

$$\begin{aligned} \nabla \big (q-q_h^0\big ) = (\varvec{k}-\varvec{k}_h) - \big (\varPi _h^{comb}\varvec{k}-\varvec{k}_h\big ) = \varvec{k}-\varPi _h^{comb}\varvec{k}, \end{aligned}$$

so choosing \(q_h=q_h^0\) yields

$$\begin{aligned} \Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega }\le \frac{\varepsilon _+}{\alpha _0}\,\Vert T_0\Vert _{{\mathcal L}(H^1_0(\varOmega ))}\,\Vert \varvec{k}-\varPi _h^{comb}\varvec{k}\Vert _{0,\varOmega }. \end{aligned}$$

Thanks to Corollary 2 and Proposition 7, for any \(\texttt {s}\in (0,\tau _{Dir})\) it holds that

$$\begin{aligned} \Vert \varvec{k}-\varPi _h^{comb}\varvec{k}\Vert _{0,\varOmega } \lesssim h^{\texttt {s}}\{ \Vert \varvec{k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} + \Vert Q\varvec{k}\Vert _{PH^{1+\texttt {s}}(\varOmega )}\}. \end{aligned}$$

On the other hand, we know that \(\Vert Q\varvec{k}\Vert _{PH^{1+\texttt {s}}(\varOmega )}\lesssim \Vert \varvec{k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\) (see the proof of Corollary 2), so using (18) and the definition of \(\varvec{k}\), for any \(\texttt {s}\in (0,\tau _{Dir})\), it actually holds that

$$\begin{aligned} \Vert \varvec{k}-\varvec{k}_h\Vert _{0,\varOmega } \lesssim \Vert \varvec{k}-\varPi _h^{comb}\varvec{k}\Vert _{0,\varOmega } \lesssim h^{\texttt {s}}\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }. \end{aligned}$$

Since by construction \({{\,\mathrm{\mathbf {curl}}\,}}(\varvec{k}-\varvec{k}_h)=0\), we have obtained (45).

Noting finally that \(h\lesssim \text{ diam }(\varOmega )\), using (47) we conclude that (44) holds. \(\square \)

6.2 Case of a “weak” T-coercivity operator

As usual we assume in this section that the companion scalar problem (5) is well-posed. But that we only have at hand a “weak” explicit T-coercivity involution operator T, cf. (59) in Section A.1. At the discrete level, one can build “weak” discrete T-coercivity operators provided the meshes are locally T-conform (see Section A.2). This yields uniformly bounded discrete operators \((T_h)_{{h\le \texttt {h}_0}}\), where \(\texttt {h}_0>0\) is a threshold value, such that (62)–(63) are fulfilled, with consequences listed in Section A.2. Consequently, introducing \(\varvec{K}_h(\varepsilon )\) as before [see (39)], one has the...

Proposition 13

In the “weak” T-coercivity framework, for all \(h\le \texttt {h}_0\), one has the direct sum

$$\begin{aligned} \varvec{V}_h = \nabla [M_h] \oplus \varvec{K}_h(\varepsilon ). \end{aligned}$$
(48)

In addition, \(\varvec{k}_h\mapsto \Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }\) defines a norm on \(\varvec{K}_h(\varepsilon )\).

Finally, the operators \((\pi _{1h})_{h\le \texttt {h}_0}\) and \(({\varvec{\pi }}_{2h})_{h\le \texttt {h}_0}\) introduced in (43) are well-defined, and their continuity moduli are bounded independently of \(h \le \texttt {h}_0\).

To conclude the study, we now prove the result below, whose proof follows closely the proof of Theorem 3.

Theorem 4

In the “weak” T-coercivity framework, \(\Vert {{\,\mathrm{\mathbf {curl}}\,}}\cdot \Vert _{0,\varOmega }\) defines a norm that is uniformly equivalent to the \(\Vert \cdot \Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\)-norm on \(\varvec{K}_h(\varepsilon )\), for h small enough, ie.

$$\begin{aligned} \exists C_W^\star >0,\ \forall h\le \texttt {h}_0,\ \forall \varvec{k}_h\in \varvec{K}_h(\varepsilon ),\ \Vert \varvec{k}_h\Vert _{0,\varOmega } \le C_W^\star \,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }. \end{aligned}$$
(49)

In addition, let \(\texttt {s}\in (0,\tau _{Dir})\):

$$\begin{aligned} \left\{ \begin{array}{l} \exists C_\texttt {s}>0,\ \forall h\le \texttt {h}_0,\ \forall \varvec{k}_h\in \varvec{K}_h(\varepsilon ),\\ \inf _{\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )} \Vert \varvec{k}-\varvec{k}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \le C_\texttt {s}h^{\texttt {s}}\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h\Vert _{0,\varOmega }. \end{array}\right. \end{aligned}$$
(50)

Proof

Let \(\varvec{k}_h\in \varvec{K}_h(\varepsilon )\) be given, and let \(\varvec{k}\) be the solution to the div–curl problem (46). Exactly as in the proof of Theorem 3, we find that there exists \(q\in H^1_0(\varOmega )\) such that \(\varvec{k}-\varvec{k}_h = \nabla q\) in \(\varOmega \).

Let \(h\le \texttt {h}_0\). Then, for any \({\bar{q}}_h\in M_h\), we write the triangle inequality

$$\begin{aligned} \Vert \varvec{k}-\varvec{k}_h \Vert _{0,\varOmega } = \Vert \nabla q \Vert _{0,\varOmega } \le \Vert \nabla (q-{\bar{q}}_h) \Vert _{0,\varOmega } + \Vert \nabla {\bar{q}}_h \Vert _{0,\varOmega }. \end{aligned}$$

According to (63), there exists \(q'_h\in M_h{\setminus }\{0\}\) such that

$$\begin{aligned} \Vert \nabla {\bar{q}}_h \Vert _{0,\varOmega } \le (\underline{\gamma }_0)^{-1} \frac{|(\varepsilon \nabla {\bar{q}}_h|\nabla q'_h)_{0,\varOmega }|}{ \Vert \nabla q'_h\Vert _{0,\varOmega }}. \end{aligned}$$

Since \(\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )\) and \(\varvec{k}_h\in \varvec{K}_h(\varepsilon )\), one has \((\varepsilon (\varvec{k}-\varvec{k}_h)|\nabla q'_h)_{0,\varOmega }=0\) or, in other words, \((\varepsilon \nabla q|\nabla q'_h)_{0,\varOmega }=0\). Hence,

$$\begin{aligned} \Vert \nabla {\bar{q}}_h \Vert _{0,\varOmega } \le (\underline{\gamma }_0)^{-1} \frac{|(\varepsilon \nabla ({\bar{q}}_h-q)|\nabla q'_h)_{0,\varOmega }|}{ \Vert \nabla q'_h\Vert _{0,\varOmega }} \le \frac{\varepsilon _+}{\underline{\gamma }_0}\, \Vert \nabla (q-{\bar{q}}_h) \Vert _{0,\varOmega } . \end{aligned}$$

We find that \(\Vert \varvec{k}-\varvec{k}_h \Vert _{0,\varOmega } \le (1+ \varepsilon _+/\underline{\gamma }_0) \Vert \nabla (q-{\bar{q}}_h) \Vert _{0,\varOmega }\). Since the result holds for any \({\bar{q}}_h\in M_h\), we have actually proved that

$$\begin{aligned}\Vert \varvec{k}-\varvec{k}_h \Vert _{0,\varOmega } \lesssim \inf _{{\bar{q}}_h \in M_h} \Vert \nabla (q-{\bar{q}}_h) \Vert _{0,\varOmega }. \end{aligned}$$

We conclude the proof as before, by noting that \(\varPi _h^{comb}\varvec{k}-\varvec{k}_h\in \nabla [M_h]\). \(\square \)

7 Uniform discrete inf-sup condition and convergence

We consider directly the “weak” T-coercivity framework. Assuming (62)–(63) holds, we remark that \((\varvec{k}_h,\varvec{k}'_h)\mapsto (\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}'_h)_{0,\varOmega }\) fulfills a uniform discrete inf-sup condition on \(\varvec{K}_h(\varepsilon )\times \varvec{K}_h(\varepsilon )\), for h small enough. Indeed, according to Theorem 4, we have

$$\begin{aligned} \left\{ \begin{array}{l}\exists {\tilde{\gamma }}>0,\ \forall h\le \texttt {h}_0,\ \forall \varvec{k}_h\in \varvec{K}_h(\varepsilon ),\\ \displaystyle \sup _{\varvec{k}'_h\in \varvec{K}_h(\varepsilon ){\setminus }\{0\}} \frac{|(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_h|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}'_h)_{0,\varOmega }|}{ \Vert \varvec{k}'_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}}\ge {\tilde{\gamma }}\, \Vert \varvec{k}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}. \end{array}\right. \end{aligned}$$
(51)

Next, we introduce \(A_\omega \in {\mathcal L}(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ))\) defined by

$$\begin{aligned} (A_\omega \varvec{v},\varvec{w})_{\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} := a_\omega (\varvec{v},\varvec{w}),\quad \forall \varvec{v},\varvec{w}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ), \end{aligned}$$

and

$$\begin{aligned} |||a_\omega |||:= \sup _{\varvec{v},\varvec{w}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ){\setminus }\{0\}}\frac{|a_\omega (\varvec{v},\varvec{w})|}{\Vert \varvec{v}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\Vert \varvec{w}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}}< \infty . \end{aligned}$$

Theorem 5

Assume that the variational formulation (3) is well-posed. In the “weak” T-coercivity framework, the form \(a_\omega \) fulfills a uniform discrete inf-sup condition on \(\varvec{V}_h\times \varvec{V}_h\) for h small enough, ie.

$$\begin{aligned} \left\{ \begin{array}{l}\exists C_\omega ,\texttt {h}_\omega >0,\ \forall h\le \texttt {h}_\omega ,\ \forall \varvec{v}_h\in \varvec{V}_h,\\ \displaystyle \sup _{\varvec{v}'_h\in \varvec{V}_h{\setminus }\{0\}} \frac{|a_\omega (\varvec{v}_h,\varvec{v}'_h)|}{ \Vert \varvec{v}'_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}}\ge C_\omega \, \Vert \varvec{v}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}. \end{array}\right. \end{aligned}$$
(52)

Remark 4

Next, we proceed in the spirit of the proof of Theorem 2.2 in [13].

Proof

We argue by contradiction. Namely, we assume that

$$\begin{aligned} \left\{ \begin{array}{l} \forall k\in \mathbb {N}{\setminus }\{0\},\ \exists h_k\le k^{-1},\ \exists \varvec{v}_{h_k}\in \varvec{V}_{h_k}, \\ \Vert \varvec{v}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=1 \quad \text{ and } \quad \displaystyle \sup _{\varvec{v}'_{h_k}\in \varvec{V}_{h_k}{\setminus }\{0\}}\frac{|a_\omega (\varvec{v}_{h_k},\varvec{v}'_{h_k})|}{\Vert \varvec{v}'_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}} \le k^{-1}. \end{array}\right. \end{aligned}$$
(53)

In particular, \(\lim _{k\rightarrow \infty } h_k = 0\), so it holds that \(h_k < \texttt {h}_0\) for k large enough. So from now on, we consider that \(h_k < \texttt {h}_0\). We write \(\varvec{v}_{h_k} = \nabla q_{h_k} + \varvec{k}_{h_k}\), where \(q_{h_k}=\pi _{1h_k}\varvec{v}_{h_k}\) and \(\varvec{k}_{h_k}={\varvec{\pi }}_{2h_k}\varvec{v}_{h_k}\). Note that \((\nabla q_{h_k})_k\) and \(( \varvec{k}_{h_k})_k\) are bounded sequences in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), because the continuity moduli of \((\pi _{1h_k})_k\) and \(({\varvec{\pi }}_{2h_k})_k\) are bounded uniformly with respect to k (cf. Proposition 13).

Step 1:

Let us show that \(\lim _{k\rightarrow \infty }\Vert \nabla q_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=0\). This is a simple consequence of (63). According to (53):

$$\begin{aligned} \sup _{q'_{h_k}\in M_{h_k}{\setminus }\{0\}}\frac{|a_\omega (\varvec{v}_{h_k},\nabla q'_{h_k})|}{\Vert \nabla q'_{h_k}\Vert _{0,\varOmega }} \le k^{-1}. \end{aligned}$$

But \(a_\omega (\varvec{v}_{h_k},\nabla q'_{h_k}) = - \omega ^2(\varepsilon \varvec{v}_{h_k}|\nabla q'_{h_k})_{0,\varOmega } = - \omega ^2(\varepsilon \nabla q_{h_k}|\nabla q'_{h_k})_{0,\varOmega }\). From (63), we infer that

$$\begin{aligned} \underline{\gamma }_0\,\omega ^2\,\Vert \nabla q_{h_k}\Vert _{0,\varOmega } \le k^{-1} \rightarrow 0 \text{ as } k\rightarrow \infty . \end{aligned}$$
Step 2:

Let us show that \(\lim _{k\rightarrow \infty }\Vert {\varvec{\pi }}_2\varvec{v}_{h_k}\Vert _{0,\varOmega }=0\). Let \(\varvec{w}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), and \(\varvec{w}_{h_k}\in \varvec{V}_{h_k}\):

$$\begin{aligned} |a_\omega (\varvec{v}_{h_k},\varvec{w})|\le & {} |a_\omega (\varvec{v}_{h_k},\varvec{w}-\varvec{w}_{h_k})| + |a_\omega (\varvec{v}_{h_k},\varvec{w}_{h_k})| \\\le & {} |||a_\omega |||\,\Vert \varvec{w}-\varvec{w}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} + k^{-1}\Vert \varvec{w}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}. \end{aligned}$$

According to the basic approximability property of \((\varvec{V}_{h_k})_k\) in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), one can choose \((\varvec{w}_{h_k})_k\) such that \(\lim _{k\rightarrow \infty }\Vert \varvec{w}-\varvec{w}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=0\). In particular, \((\varvec{w}_{h_k})_k\) is a bounded sequence in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), and one finds that

$$\begin{aligned} \lim _{k\rightarrow \infty }|a_\omega (\varvec{v}_{h_k},\varvec{w})|=0. \end{aligned}$$

This result holds for all \(\varvec{w}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), so we have proved that \(A_\omega \varvec{v}_{h_k} \rightharpoonup 0\) (weakly) in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). On the other hand, the variational formulation (3) is well-posed, so \(A_\omega ^{-1}\) exists and \(A_\omega ^{-1}\in {\mathcal L}(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ))\). Hence \(\varvec{v}_{h_k} \rightharpoonup 0\) (weakly) in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). This implies that \({\varvec{\pi }}_2\varvec{v}_{h_k} \rightharpoonup 0\) (weakly) in \(\varvec{K}_N(\varOmega ,\varepsilon )\). And because the imbedding of \(\varvec{K}_N(\varOmega ,\varepsilon )\) in \(\varvec{L}^2(\varOmega )\) is compact, one finds that \(\lim _{k\rightarrow \infty }\Vert {\varvec{\pi }}_2\varvec{v}_{h_k}\Vert _{0,\varOmega }=0\).

Step 3:

Let us show that \(\lim _{k\rightarrow \infty }\Vert \varvec{k}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=0\). According to (51),

$$\begin{aligned} \Vert \varvec{k}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \le {\tilde{\gamma }}^{-1}\,\sup _{\varvec{k}'_{h_k}\in \varvec{K}_{h_k}(\varepsilon ){\setminus }\{0\}} \frac{|(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_{h_k}|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}'_{h_k})_{0,\varOmega }|}{ \Vert \varvec{k}'_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}}. \end{aligned}$$

Let \(\varvec{k}'_{h_k}\in \varvec{K}_{h_k}(\varepsilon )\). By definition of \(\varvec{k}_{h_k}\), one finds that

$$\begin{aligned} \big (\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_{h_k}|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}'_{h_k}\big )_{0,\varOmega }= & {} \big (\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{v}_{h_k}|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}'_{h_k}\big )_{0,\varOmega } \\= & {} a_\omega \big (\varvec{v}_{h_k},\varvec{k}'_{h_k}\big )+\omega ^2\big (\varepsilon \varvec{v}_{h_k}|\varvec{k}'_{h_k}\big )_{0,\varOmega }. \end{aligned}$$

According to (53), one has \(|a_\omega (\varvec{v}_{h_k},\varvec{k}'_{h_k})| \le k^{-1}\,\Vert \varvec{k}'_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\).

On the other hand, \(\varvec{v}_{h_k} = \nabla (\pi _1\varvec{v}_{h_k}) + {\varvec{\pi }}_2\varvec{v}_{h_k}\), so

$$\begin{aligned} \big |\big (\varepsilon \varvec{v}_{h_k}|\varvec{k}'_{h_k}\big )_{0,\varOmega }\big | \le \big |\big (\varepsilon \nabla \big (\pi _1\varvec{v}_{h_k}\big )|\varvec{k}'_{h_k}\big )_{0,\varOmega }\big | + \big |\big (\varepsilon {\varvec{\pi }}_2\varvec{v}_{h_k}|\varvec{k}'_{h_k}\big )_{0,\varOmega }\big |. \end{aligned}$$

The last term is bounded by the Cauchy–Schwarz inequality

$$\begin{aligned} \big |\big (\varepsilon {\varvec{\pi }}_2\varvec{v}_{h_k}|\varvec{k}'_{h_k}\big )_{0,\varOmega }\big | \le \varepsilon _+\Vert {\varvec{\pi }}_2\varvec{v}_{h_k}\Vert _{0,\varOmega }\Vert \varvec{k}'_{h_k}\Vert _{0,\varOmega }. \end{aligned}$$

There remains to evaluate the first term. For all \(\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )\), one has

$$\begin{aligned} \big |\big (\varepsilon \nabla \big (\pi _1\varvec{v}_{h_k}\big )|\varvec{k}'_{h_k}\big )_{0,\varOmega }\big |= & {} \big |\big (\varepsilon \nabla \big (\pi _1\varvec{v}_{h_k}\big )|\varvec{k}'_{h_k}-\varvec{k}\big )_{0,\varOmega }\big |\\\le & {} \varepsilon _+\big \Vert \nabla \big (\pi _1\varvec{v}_{h_k}\big )\Vert _{0,\varOmega }\big \Vert \varvec{k}'_{h_k}-\varvec{k}\Vert _{0,\varOmega }. \end{aligned}$$

Now, let \(\varvec{k}\in \varvec{K}_N(\varOmega ,\varepsilon )\) be chosen as in Theorem 4 [see (50)]. Owing to the fact that \(\Vert \varvec{v}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=1\) [cf. (53)], one gets the bound

$$\begin{aligned} \big |\big (\varepsilon \nabla \big (\pi _1\varvec{v}_{h_k}\big )|\varvec{k}'_{h_k}\big )_{0,\varOmega }\big | \lesssim {h_k}^{\texttt {s}}\,\Vert {{\,\mathrm{\mathbf {curl}}\,}}\varvec{k}_{h_k}'\Vert _{0,\varOmega }. \end{aligned}$$

Aggregating the above estimates, one finds that

$$\begin{aligned} \Vert \varvec{k}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim \left( k^{-1} + \Vert {\varvec{\pi }}_2\varvec{v}_{h_k}\Vert _{0,\varOmega } + {h_k}^{\texttt {s}}\right) , \end{aligned}$$

thus leading to \(\lim _{k\rightarrow \infty }\Vert \varvec{k}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=0\) according to Step 2.

Step 4:

For all k, one has \(\Vert \varvec{v}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \le \Vert \nabla q_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} + \Vert \varvec{k}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\) by the triangle inequality, so one concludes that \(\lim _{k\rightarrow \infty }\Vert \varvec{v}_{h_k}\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}=0\), which contradicts (53).

\(\square \)

One can finally derive the (classical) error estimate.

Theorem 6

Let the assumptions of Theorem 5 be fulfilled, and let \(\texttt {h}_\omega >0\) be the threshold value introduced there. Then, for all \(h\le \texttt {h}_\omega \), the discrete variational formulation (24) is well-posed.

Without further assumption on the regularity of the data \(\varvec{f}\), one has

$$\begin{aligned} \lim _{h\rightarrow 0} \Vert \varvec{e}-\varvec{e}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}= 0. \end{aligned}$$
(54)

Let the extra-regularity of the data \(\varvec{f}\) be as in (13) with \(\tau _0>0\) given, then one has the error estimate, for all \(\texttt {s}\in [0,\min (\tau _0,\tau _{Dir},\tau _{Neu}))\),

$$\begin{aligned} \forall h\le \texttt {h}_\omega ,\quad \Vert \varvec{e}-\varvec{e}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}\lesssim h^{\texttt {s}}\{ \Vert {{\,\mathrm{\mathrm {div}}\,}}\varvec{f}\Vert _{-1+\texttt {s},\varOmega } + \Vert \varvec{f}\Vert _{0,\varOmega }\}. \end{aligned}$$
(55)

Proof

Because the form \(a_\omega \) fulfills a uniform discrete inf-sup condition for \(h\le \texttt {h}_\omega \), classical error analysis yields

$$\begin{aligned} \forall h\le \texttt {h}_\omega ,\quad \Vert \varvec{e}-\varvec{e}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )} \lesssim \inf _{\varvec{v}_h\in \varvec{V}_h}\Vert \varvec{e}-\varvec{v}_h\Vert _{\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )}. \end{aligned}$$

In the absence of extra-regularity of the data, according to the basic approximability property of \((\varvec{V}_h)_h\) in \(\varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), one finds (54). On the other hand, in the case of extra-regularity of the data \(\varvec{f}\), we then recover (55) by choosing \(\varvec{v}_h = \varPi _h^{comb}\varvec{e}\) (see Proposition 9). \(\square \)

8 Numerical illustrations

In this section, we study numerically a simple model. The domain \(\varOmega \) is \((0,1)\times (-1,1)\times (0,1)\). It is partitioned into \(\varOmega _+=(0,1)\times (0,1)\times (0,1)\) and \(\varOmega _-=(0,1)\times (-1,0)\times (0,1)\). Note that this partition is symmetric with respect to the interface \(\varSigma =(0,1)\times \{0\}\times (0,1)\). The pulsation and coefficients are respectively set to

$$\begin{aligned} \omega = 1;\quad \varepsilon _{|\varOmega _+} = 1,\ \mu _{|\varOmega _+} = 1;\quad \varepsilon _{|\varOmega _-} \in \{-1.5,-1.1,-1.01\},\ \mu _{|\varOmega _-} = .5. \end{aligned}$$

In this symmetric geometry, it is known that the companion scalar problem is well-posed as soon as \(\varepsilon _{|\varOmega _-}\ne -1\); that “full” T-coercivity is achieved with the help of the symmetry with respect to \(\varSigma \) (cf. [9]); and, as a consequence, that T-conform meshes are obtained using meshes that are symmetric with respect to \(\varSigma \) (cf. [19]). Below, we assume that the model set in \(\varOmega \) [cf. (3)] is well-posed for the above values of the pulsation and the coefficients.

We choose a piecewise smooth solution \(\varvec{e}\), which is consistent with the fact that, in this symmetric setting, \(\tau _{Dir}=\tau _{Neu}=1\) (cf. again [19]). Namely,

$$\begin{aligned} e_1(x_1,x_2,x_3)= & {} x_1^2\sin \left( \frac{\pi }{2}(x_2-1)\right) \sin \big (\pi x_3^2\big ), \\ e_2(x_1,x_2,x_3)= & {} \varepsilon ^{-1}\sin (\pi x_1)\,x_2\sin (5\pi x_3), \\ e_3(x_1,x_2,x_3)= & {} \sin (2\pi x_1)\sin \big (\pi x_2^2\big )\,x_3. \end{aligned}$$

It is easily checked that \(\varvec{e}\in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), with \({{\,\mathrm{\mathbf {curl}}\,}}(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e})\in \varvec{L}^2(\varOmega )\) and \({{\,\mathrm{\mathrm {div}}\,}}\varepsilon \varvec{e}\in L^2(\varOmega )\). Consequently, the data \(\varvec{f}= \omega ^{-2}{{\,\mathrm{\mathbf {curl}}\,}}(\mu ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{e}) - \varepsilon \varvec{e}\) belongs to \(\varvec{H}({{\,\mathrm{\mathrm {div}}\,}};\varOmega )\), so one has \(\tau _0=1\) in (13).

Computations are carried out on two series of meshes. A T-conform series: the meshes are generated by meshing \(\varOmega _+\) first, and then using the symmetry transform with respect to \(\varSigma \) to build the mesh on \(\varOmega _-\) (see Fig. 1, left). And a plain series, where the meshes can be nonsymmetric with respect to \(\varSigma \) (see Fig. 1, right).

Fig. 1
figure 1

Left: a T-conform mesh; right: a plain mesh

All results have been obtained with the help of the GetDP software [30].

In Fig. 2, the error results in \(\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\)-norm are reported. In abscissa, we choose the number of degrees of freedom \(N_h=\text{ dim }(\varvec{V}_h)\) to the power 1/3, to compare simulations with similar computational costs. Also, \(N_h^{1/3}\) is known to be equivalent to h for regular families of meshes.

Fig. 2
figure 2

Relative error in \(\varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\)-norm obtained for the three values of \(\varepsilon _{|\varOmega _-}\), with h varying from 0.1 to 0.01. The line corresponds to the linear scale \(O(h)=O(N_h^{1/3})\)

Overall, results are similar for both series of meshes. However, for the plain series, there are anomalies/glitches for \(\varepsilon _{|\varOmega _-} \in \{-1.1,-1.01\}\), ie. convergence is not monotonic. On the other hand, for the T-conform series, results indicate that the sign-change has little influence on the convergence.

We then report errors in \(\varvec{L}^2(\varOmega )\)-norm (Fig. 3), and also in \(\varvec{L}^2(\varOmega )\)-norm of the curl of the errors (Fig. 4). For the errors on the curl, results are more or less nominal (recall that \(\mu \) does not change sign). While for the \(\varvec{L}^2(\varOmega )\)-norm, results show that convergence is erratic for the plain series and, more to the point, it seems that \(\Vert \varvec{e}-\varvec{e}_h\Vert _{0,\varOmega }\) does not decrease when \(\varepsilon _{|\varOmega _-}=-1.01\). The numerical method is still in a pre-asymptotic regime regarding convergence, even though the meshsize is as small as one hundredth of the size (length) of the domain.Footnote 2 For the T-conform series, convergence is again nominal.

Fig. 3
figure 3

Relative error in \(\varvec{L}^2(\varOmega )\)-norm obtained for the three values of \(\varepsilon _{|\varOmega _-}\), with h varying from 0.1 to 0.01. The line corresponds to the linear scale \(O(h)=O(N_h^{1/3})\)

Fig. 4
figure 4

Relative error in \(\varvec{L}^2(\varOmega )\)-norm of the curl obtained for the three values of \(\varepsilon _{|\varOmega _-}\), with h varying from 0.1 to 0.01. The line corresponds to the linear scale \(O(h)=O(N_h^{1/3})\)

To conclude the analysis of the numerical results, we draw a parallel with some results available in the literature for the companion scalar problem set in a symmetric geometry [19]. Let us isolate the curl-free part of the exact and discrete solutions, that is \(\nabla \phi \) in (19), governed by (21):

$$\begin{aligned}\left\{ \begin{array}{l} {Find\, \phi \in H^1_0(\varOmega )\, such\, that}\\ (\varepsilon \nabla \phi |\nabla q)_{0,\varOmega } = ({{\,\mathrm{\mathrm {div}}\,}}\varvec{f}|q)_{0,\varOmega },\ \forall q\in H^1_0(\varOmega ) \end{array}\right. ; \end{aligned}$$

resp. \(\nabla \phi _h\) where \(\phi _h=\pi _{1h}\varvec{e}_h\) is governed by

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, \phi _h\in M_h\, such\, that}\\ (\varepsilon \nabla \phi _h|\nabla q_h)_{0,\varOmega } = ({{\,\mathrm{\mathrm {div}}\,}}\varvec{f}|q_h)_{0,\varOmega },\ \forall q_h\in M_h. \end{array}\right. \end{aligned}$$

These are respectively the companion scalar problem, and its discretization. The error \(\Vert \nabla \phi -\nabla \phi _h\Vert _{0,\varOmega }\) has been thoroughly investigated in [19]. In particular, numerical examples are provided in a rectangle (a domain of \(\mathbb {R}^2\)), partitioned into two squares, and it is observed that the use of nonsymmetric meshes leads to serious numerical instabilities: we refer the interested reader precisely to Figure 7, page 23 in [19]. In other words, we get the same behavior, now on the solution of time-harmonic Maxwell equations in a domain of \(\mathbb {R}^3\).

9 Case of sign-changing magnetic permeability

Let us briefly describe how one can proceed if

To address this situation, one expresses the time-harmonic Maxwell equations in terms of the magnetic field only

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, \varvec{h}\in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}},\varOmega )\, such\, that:}\\ {{\,\mathrm{\mathbf {curl}}\,}}(\varepsilon ^{-1}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{h}-\varvec{j}))-\omega ^2 \mu \varvec{h}= 0 \text{ in } \varOmega ,\\ {{\,\mathrm{\mathrm {div}}\,}}\mu \varvec{h}=0 \text{ in } \varOmega ;\\ \mu \varvec{h}\cdot \varvec{n}=0 \text{ and } \varepsilon ^{-1}({{\,\mathrm{\mathbf {curl}}\,}}\varvec{h}-\varvec{j})\times \varvec{n}=0 \text{ on } \partial \varOmega . \end{array} \right. \end{aligned}$$
(56)

As before, one can decouple the real and imaginary parts. E.g., if \(\varvec{h}\) stands for \(\Re (\varvec{h})\) and \(\varvec{g}\) stands for \(\varepsilon ^{-1}\Re (\varvec{j})\), then \(\varvec{h}\) solves the equivalent variational formulation

$$\begin{aligned} \left\{ \begin{array}{l} {Find\, \varvec{h}\in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\, such\, that}\\ a_\omega '(\varvec{h},\varvec{v}) = (\varvec{g}|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{v})_{0,\varOmega },\ \forall \varvec{v}\in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ), \end{array}\right. \end{aligned}$$
(57)

where

$$\begin{aligned} a_\omega '(\varvec{u},\varvec{v}):=(\varepsilon ^{-1}{{\,\mathrm{\mathbf {curl}}\,}}\varvec{u}|{{\,\mathrm{\mathbf {curl}}\,}}\varvec{v})_{0,\varOmega } - \omega ^2(\mu \varvec{u}|\varvec{v})_{0,\varOmega },\ \forall \varvec{u},\varvec{v}\in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ). \end{aligned}$$

We observe that one has to study the companion scalar problem with Neumann boundary condition, as introduced in (31). In the present situation however, one has to assume that this problem is well-posed, which can again be tackled with the help of T-coercivity: one finds results that are similar to those of “Appendix A”. Then, the study of the well-posedness of (57) proceeds as before. Namely, one introduces

$$\begin{aligned} \varvec{K}_T(\varOmega ,\mu ):=\{ \varvec{v}\in \varvec{X}_T(\varOmega ,\mu )\ :\ {{\,\mathrm{\mathrm {div}}\,}}\mu \varvec{v}=0\}. \end{aligned}$$

There holds the direct, continuous decomposition

$$\begin{aligned} \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega ) = \nabla [H^1(\varOmega )] \oplus \varvec{K}_T(\varOmega ,\mu ), \end{aligned}$$

together with equivalence of norms in \(\varvec{K}_T(\varOmega ,\mu )\), and the compact imbedding of \(\varvec{K}_T(\varOmega ,\mu )\) in \(\varvec{L}^2(\varOmega )\). We refer to the same bibliographical references as in Sects. 2 and 3.

One then uses

$$\begin{aligned} \varvec{V}_h^+:= & {} \{ \varvec{v}_h \in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\ :\ {\varvec{v}_h}_{|K}\in \mathcal {R}_1(K),\ \forall K\in \mathcal {T}_h\}, \\ M_h^+:= & {} \{ q_h \in H^1(\varOmega )\ :\ {q_h}_{|K}\in P_1(K),\ \forall K\in \mathcal {T}_h\}, \end{aligned}$$

to discretize (57), resp. (31). The analysis of the interpolation error on the magnetic field can again be carried out with the combined interpolation operator. To prove the uniform discrete inf-sup condition of the form \(a_\omega '\) on \(\varvec{V}_h^+\times \varvec{V}_h^+\) and error estimates, one has to study the properties of the discrete spaces

$$\begin{aligned} \varvec{K}_h(\mu ):=\big \{ \varvec{v}_h \in \varvec{V}_h^+\ :\ (\mu \varvec{v}_h|\nabla q_h)_{0,\varOmega }=0,\ \forall q_h \in M_h^+\big \}. \end{aligned}$$
(58)

Uniform equivalence of norms in \(\varvec{K}_h(\mu )\), resp. uniform discrete inf-sup condition, are obtained with techniques that are completely similar to those developed in the proofs of Theorems 3 (“full” T-coercivity) and 4 (“weak” T-coercivity), resp. Theorem 5.

10 Conclusions and extensions

We have studied the time-harmonic Maxwell equations for a model with one sign-changing coefficient. We have proved optimal convergence rates on the error, when the numerical approximation is computed with the help of the Nédélec’s first family of edge finite elements. For low-regularity solutions, those results are achieved with the help of the combined interpolation operator designed in [22, 23]. All those results have been obtained with the help of explicit T-coercivity operators for the derivation of the inf-sup condition.

A possible extension is to have a boundary data, illustrated below for the problem expressed in the electric field. In this case, let us assume for instance that \(\varvec{e}\) has a non-vanishing tangential trace, namely one replaces \(\varvec{e}\times \varvec{n}=0\) on \(\partial \varOmega \) by \(\varvec{e}\times \varvec{n}=\texttt {e}_\varGamma \) on \(\partial \varOmega \) in (1), where the data \(\texttt {e}_\varGamma \) defined on \(\partial \varOmega \) is actually equal to the tangential trace of some field \(\varvec{e}^\star \in \varvec{H}({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\). Introducing \(\varvec{e}_0=\varvec{e}-\varvec{e}^\star \in \varvec{H}_0({{\,\mathrm{\mathbf {curl}}\,}};\varOmega )\), one finds that \(\varvec{e}_0\) solves the time-harmonic Maxwell equations (1), with modified right-hand sides. Hence one may study these problems as before. In order to determine explicit convergence rates, one needs to have some ad hoc extra-regularity assumptions on \(\varvec{e}^\star \).

Another interesting extension to consider is to address the time-harmonic Maxwell equations, with two sign-changing coefficients.