1 Introduction

Advances in computer technology and numerical computational techniques over the last decades have strengthened the use of electromagnetic wave simulations in a wide range of applications in physical sciences and engineering, such as satellite communication systems, signal processing in radar and antennas, electrical power generation, and laser light transmission in plasmas.

Owing to its attractive features such as flexibility in handling complex geometries, material heterogeneity and anisotropy, the finite element method (FEM) is favoured over other methods. The FEM has known significant growth in the computational electromagnetics. The standard \(H({\text {curl}})\)-conforming FEs have been introduced by Nédélec [1, 2], based on the moments of tangential components on edges and faces of the elements. The lowest-order Nédélec element has been independently proposed by several authors [3,4,5,6], which all conform to the simplicial geometric construction made by Whitney in the context of geometric integration theory [7]. The earliest applications of the lowest-order Nédélec element for the solution of eddy current problems can be found in [8, 9]. Meanwhile, motivated by differential forms, Bossavit introduced in [10,11,12] the so-called edge-elements for the solution of electromagnetic problems.

The design of FEs able to deal with electromagnetic waves at medium and high-frequency regimes is still ongoing. Due to the so-called pollution error, the use of the lowest-order Nédélec element requires high resolution to maintain engineering accuracy, and hence resulting in an excessive computational effort making the procedure less efficient. Many \(H({\text {curl}})\)-conforming FEs on triangular and tetrahedral elements up to the second order of approximation have been proposed in [5, 6, 13,14,15], and their comparison studies were performed in [6, 16]. The first example of high-order vector elements, in which interpolatory basis functions were generated by multiplying high-order interpolating polynomials by the lowest order vector basis function, is introduced by Graglia and co-authors [17]. Based on a hierarchical construction, Webb proposed high-order bases for \(H({\text {curl}})\)-conforming triangular and tetrahedral elements [18], where explicit basis functions up to the third order of approximation were formulated in terms of affine coordinates. A comparison study of these two interpolatory and hierarchical high-order bases was conducted in [19]. Following pioneering ideas by Nédélec [1, 2] and inspired by the work of Webb [18], many hierarchical bases have been developed, especially for triangular and tetrahedral elements [20,21,22,23,24,25,26,27]. These FE bases can span the Nédélec space of the first or second kind [1, 2]. For a complete classification, we refer the reader to [28]. A first attempt to design an arbitrary order hierarchical basis for \(H({\text {curl}})\)-conforming hybrid quadrilateral and triangular elements based on Legendre polynomials are presented in [20]. It was pointed out that the resulting high-order FE bases yield good conditioning and enable a reduction of the dispersion error. In the same regard, Schöberl and Zaglmayr [25] have proposed a set of hierarchical conforming basis functions based on a tensorial construction.

Another option to deal with the pollution error involves the use of high order Discontinuous Galerkin methods (DGM). While it maintains almost all the advantages of the conforming edge element method, the DGM has other distinct characteristics such as straightforward handling of non-conforming meshes, unrestricted choice of the local approximation space, natural treatment of discontinuous solutions and coefficient heterogeneities, and its remarkable parallelization properties. More recently, many authors have shown the effectiveness of various DG formulations in solving the time-harmonic Maxwell’s equations [29,30,31,32,33,34,35,36,37,38]. However, due to nodal duplication on the borders of interior elements, which results in a high number of degrees of freedom, DG methods are computationally expensive [39]. Hybridizable discontinuous Galerkin (HDG) methods have been devised in order to preserve the strengths of the DG methods and address their main drawbacks. Optimal convergence properties of some HDG methods have been achieved or demonstrated via numerical experiments for 2D time-harmonic Maxwell’s equations in [39,40,41,42,43,44].

Bernstein polynomials have been classically used in computer-aided design and approximation theory [45], and have recently gained increasing attention in the FEM community [46,47,48,49,50,51]. While they share common characteristics with other conventional high-order FE bases, Bernstein polynomials possess some of the key features of isogeometric analysis [52] and have a number of attractive properties [46, 53,54,55], namely: positivity, partition of unity and good conditioning. Moreover, they can be used to set up the mass and stiffness matrices, based on fast assembling algorithms taking advantage of the sum-factorization method [46, 55]. Kirby [56] has shown that these low complexity procedures are not limited to the \(H^1\)-conforming setting but extend to the entire de Rham sequence on simplices. Following the idea in [25], Ainsworth et al. [46, 57, 58] have proposed a set of Bernstein–Bézier basis functions for the de Rham sequence spaces on triangles and tetrahedra maintaining the exact sequence structure. Recently, Arnold et al. [59] have investigated FE bases for the space of differential k-forms, using Bernstein polynomials.

This work aims at investigating the performance of \(H({\text {curl}})\)-conforming Bernstein–Bézier FEs for the solution of time-harmonic Maxwell wave problems on unstructured mesh grids. We propose an enhanced higher-order basis with improved conditioning, by replacing the lower-order Whitney functions with higher-order functions and incorporating appropriate scale factors that multiply each of them. In addition, we describe the extension of the \(H({\text {curl}})\) basis to the tetrahedron. Numerical experiments are conducted to provide full details of the performance in terms of accuracy, conditioning, and wave resolution given by the number of degrees of freedom per wavelength. A wave transmission problem is also dealt with, where the geometry of curved elements sharing an edge with the interface is interpolated via the linear blending map of Gordon and Hall [60, 61].

The rest of this paper is organized as follows. In Sect. 2, we present the mathematical model and its weak form. Section 3 describes the discretization of the governing equation, using the Nédélec FE space of the first type. In Sect. 4, we recall the construction of \(H({\text {curl}})\)-conforming Bernstein–Bézier FEs and propose the enhanced basis for the reference triangle and tetrahedron. An overview of the solution method is presented in Sect. 5. Numerical results are given in Sect. 6. Finally, some conclusions are drawn in Sect. 7.

2 Notation

The following notation will be used throughout this paper. Vectors are distinguished from scalars by the use of boldface letters, but this convention does not, in general, carry over to operators. Vectors will be two-dimensional and either real in \(\mathbb {R}^2\) or complex in \(\mathbb {C}^2\) with \(\textrm{i} = \sqrt{-1}\) denoting the imaginary unit number. Each point \(\varvec{x}\) in \(\mathbb {R}^2\) is identified by its components \((x_1,x_2)\) relative to the Cartesian vector system denoted \((\varvec{e}_1,\varvec{e}_2)\), i.e. \(\varvec{x} = x_1 \varvec{e}_1 + x_2 \varvec{e}_2\). The dot product of two vectors \(\varvec{a}\) and \(\varvec{b}\) in \(\mathbb {C}^2\) is a scalar given by \(\varvec{a}\cdot \varvec{b}=\sum _{i=1,2}a_ib_i\). We denote the scalar product in \(\mathbb {C}^2\) by \((\cdot ,\cdot )\), that is, \((\varvec{a},\varvec{b})=\varvec{a}\cdot \overline{\varvec{b}}\), where the notation ’\(\overline{\;}\)’ refers to the complex conjugate, and the induced norm is denoted by \(\Vert \cdot \Vert \).

Let D be a bounded Lipschitz domain. We will denote the usual inner product on the complex-valued space \(L^2(D)\) by \((\cdot , \cdot )_{D}\), where u and v are scalar functions in \(L^{2}(D)\). For simplicity, we will adopt the same notation for the inner products on the space of vector valued functions \([L^2(D)]^2\), that is,

$$\begin{aligned} (\varvec{u}, \varvec{v})_{D}=\sum ^2_{i=1}(u_i,v_i)_{D},\quad \forall \varvec{u}, \varvec{v}\in [L^2(D)]^2. \end{aligned}$$
(1.1)

Likewise, for a given \(\varSigma \subset \partial D\), the \(L^2\) inner products on \(L^2(\varSigma )\) and \([L^2(\varSigma )]^{2}\) are denoted by \(\langle \cdot , \cdot \rangle _{\varSigma }\).

We recall the cross product of two vectors \(\varvec{a}\) and \(\varvec{b}\) in \(\mathbb {C}^2\), given by \(\varvec{a}\times \varvec{b}:= \varvec{a}\cdot \varvec{b}^\perp = a_1 b_2 - a_2 b_1\), where \(\varvec{b}^\perp = \left( b_{2}, -b_{1} \right) ^\top \).

In two-dimensional space, we have two \({\text {curl}}\) operators: the first acting on a vector field \(\varvec{v} = \begin{pmatrix} v_1, v_2 \end{pmatrix}^\top \) and defined by \({\text {curl}} \varvec{v}:= \varvec{\nabla } \times \varvec{v} =\frac{\partial v_{2}}{\partial x_{1}}-\frac{\partial v_{1}}{\partial x_{2}},\) while the second one is defined for a scalar function \(\varphi \) by the vector field \(\varvec{{\text {curl}}} \,\varphi :=\left( \varvec{\nabla }\varphi \right) ^\perp = \begin{pmatrix} \frac{\partial \varphi }{\partial x_{2}}, -\frac{\partial \varphi }{\partial x_{1}} \end{pmatrix}^\top \). We shall also need the following function spaces

$$\begin{aligned} H^1(D) =&\left\{ \varphi \in L^2(D) : \varvec{\nabla }\varphi \in \left[ L^2(D) \right] ^2 \right\} , \end{aligned}$$
(1.2)
$$\begin{aligned} H(\textrm{curl}, D) =&\left\{ \varvec{u} \in \left[ L^2(D) \right] ^2 : \textrm{curl}\ \varvec{u} \in L^2(D) \right\} ,\end{aligned}$$
(1.3)
$$\begin{aligned} H_0(\textrm{curl}, D) =&\left\{ \textbf{u} \in H(\textrm{curl}, D) : \textbf{u} \cdot \varvec{t} = 0 \text { on } \partial D \right\} ,\end{aligned}$$
(1.4)
$$\begin{aligned} L_{t}^{2}(\varSigma )=&\left\{ \varvec{u} \in \left[ L^{2}(\varSigma )\right] ^{2} : \varvec{u} \cdot \varvec{n} =0 \right\} , \end{aligned}$$
(1.5)

where \(\varvec{n}\) and \(\varvec{t}\) refer to the unit outward normal and the unit tangent vector to \(\partial D\), respectively. For \(\varvec{u}\in H({\text {curl}},D)\) such that \(\varvec{u}\cdot \varvec{t} \in L^2(\partial D)\) and \(\varphi \in H^{1}(D)\), we recall the Green’s formula

$$\begin{aligned} \left( \varphi , {\text {curl}} \varvec{u} \right) _{D} =\left( \varvec{{\text {curl}}} \;\varphi , \varvec{u} \right) _{D} +\left\langle \varphi ,\varvec{u} \cdot \varvec{t} \right\rangle _{\partial D}. \end{aligned}$$
(1.6)

Standard multi-index notation will be used. For \(\varvec{\alpha }\in \mathbb {Z}^{d+1}_+\) and \(\varvec{\lambda }\in \mathbb {R}^{d+1}\) (with \(d=2,3\)), we set \(|\varvec{\alpha }|=\sum ^{d+1}_{i=1}\alpha _i\), \(\varvec{\lambda }^{\varvec{\alpha }}=\prod ^{d+1}_{i=1}\lambda ^{\alpha _i}_i\), \(\varvec{\alpha }!=\prod ^{d+1}_{i=1}\alpha _i!\) and \(\left( {\begin{array}{c}|\varvec{\alpha }|\\ \varvec{\alpha }\end{array}}\right) = \frac{|\varvec{\alpha }|!}{\varvec{\alpha }!}\). If \(\varvec{\alpha },\varvec{\beta }\in \mathbb {Z}^{d+1}_+\) such that \(\varvec{\beta }\geqslant \varvec{\alpha }\), i.e., \(\beta _i \geqslant \alpha _i\), for all \( i\in \llbracket 1,d+1\rrbracket \), then \(\left( {\begin{array}{c}\varvec{\beta }\\ \varvec{\alpha }\end{array}}\right) =\prod ^{d+1}_{i=1}\left( {\begin{array}{c}\beta _i\\ \alpha _i\end{array}}\right) \), where for given integers k and l, with \(k\leqslant l\), the set \(\llbracket k,l\rrbracket \) is the interval of all integers between k and l included. We denote by \(\varvec{\mathbb {e}}_i\in \mathbb {Z}^{d+1}_+\) the multi-index whose i-th entry is unity and remaining entries are zero, and by \(\varvec{0} \in \mathbb {Z}^{d+1}_+\) the multi-index whose all its entries are zero.

For \(n \in \mathbb {Z}_{+}\), we will denote by \(\mathcal {I}^{d}_{n}\) the indexing set defined by

$$\begin{aligned} \mathcal {I}^{d}_{n}:=&\left\{ \varvec{\alpha } \in \mathbb {Z}_{+}^{d+1}:|\varvec{\alpha }|=n\right\} . \end{aligned}$$
(1.7)

It should be noted that \(\#\mathcal {I}^{d}_{n}=\left( {\begin{array}{c} n+d\\ d\end{array}}\right) \), where the notation ’\(\#\)’ refers to the cardinality of a finite set. We will also denote by \(\mathring{\mathcal {I}}^{d}_{n}\), \(\hat{\mathcal {I}}^{d}_{n}\) and \(\check{\mathcal {I}}^{d}_{n}\) the auxiliary index subsets of \(\mathcal {I}^{d}_{n}\) defined as follows:

$$\begin{aligned} \mathring{\mathcal {I}}^{d}_{n}:=\left\{ \varvec{\alpha } \in \mathcal {I}^{d}_{n}: \varvec{\alpha } > \varvec{0}\right\} , \quad \hat{\mathcal {I}}^{d}_{n}:=\{n\varvec{\mathbb {e}}_i: i\in \llbracket 1,d+1\rrbracket \}\quad \text {and}\quad \check{\mathcal {I}}^{d}_{n}:=\mathcal {I}^{d}_{n} \setminus \hat{\mathcal {I}}^{d}_{n}. \end{aligned}$$

3 Mathematical Model

Let us consider a Lipschitz bounded domain \(\varOmega \) of \(\mathbb {R}^2\), with boundary \(\varGamma =\partial \varOmega \). We shall consider the first-order time-harmonic Maxwell’s system, in a transverse electric (TE) setting:

$$\begin{aligned} \left( -\textrm{i} \omega \epsilon +\sigma \right) \varvec{E}- \varvec{{\text {curl}}} H&=-\varvec{J} \quad \text {in}\quad \varOmega , \end{aligned}$$
(2.1)
$$\begin{aligned} -\textrm{i} \omega \mu H + {\text {curl}} \varvec{E}&=0 \qquad \text {in}\quad \varOmega , \end{aligned}$$
(2.2)

where \(\omega \) is the angular frequency, \(\varvec{E}(\varvec{x})= \begin{pmatrix} E_1(x_1,x_2), E_2(x_1,x_2) \end{pmatrix}^\top \) is the electric field, \(H(\varvec{x})=H_3(x_1,x_2)\) is the magnetic scalar field, and \(\varvec{J}(\varvec{x})= \begin{pmatrix} J_1(x_1,x_2), J_2(x_1,x_2) \end{pmatrix}^\top \) is a prescribed impressed current. The parameters \(\sigma \), \(\epsilon \) and \(\mu \) denote the material electrical conductivity, the electric permittivity and the magnetic permeability, respectively. Eliminating the scalar field H from (2.1)–(2.2), leads to a single second-order equation

$$\begin{aligned} \varvec{{\text {curl}}}\left( \mu ^{-1} {\text {curl}} \varvec{E} \right) -\left( \omega ^{2}\epsilon +\textrm{i}\omega \sigma \right) \varvec{E}&=\textrm{i} \omega \varvec{J} \quad \text {in}\quad \varOmega , \end{aligned}$$
(2.3)

to be solved for the complex vector field \(\varvec{E}\). The magnetic scalar field H can be computed from the time-harmonic version of Faraday law (2.2).

For simplicity, we complete equation (2.3), as in [62], by the following impedance boundary condition

$$\begin{aligned} \left( \mu ^{-1}{\text {curl}} \varvec{E}\right) \varvec{t} -\textrm{i}\omega \gamma \left( \varvec{E} \cdot \varvec{t}\right) \varvec{t}&=\varvec{G} \quad \text {on}\quad \varGamma , \end{aligned}$$
(2.4)

where \(\gamma = \sqrt{\frac{\varepsilon }{\mu } }\) is the wave impedance, and \(\varvec{G}\) is a tangential vector field. When the right hand side of equation (2.4) is vanishing, i.e., \(\varvec{G}=\varvec{0}\), the boundary condition (2.4) reduces to a first-order absorbing boundary condition [63]. In the case of \(\gamma \equiv 1\), it is called the Silver-Müller boundary condition [64]. Here, the source term \(\varvec{G}\) is introduced in order to enforce the analytical solution.

It is worth noticing that the impedance boundary condition (2.4) has no meaning in \(H(\textrm{curl}, \varOmega )\) [65, 66], therefore, we will introduce as in [64] the following energy space

$$\begin{aligned} H_{\textrm{imp}}(\varOmega ) =&\left\{ \textbf{u} \in H(\textrm{curl}, \varOmega ) : \textbf{u} \cdot \varvec{t} \in L^{2}(\varGamma ) \right\} , \end{aligned}$$
(2.5)

which is the natural space for setting our problem. We recall that the space \(H_{\textrm{imp}}(\varOmega )\) equipped with the inner product

$$\begin{aligned} \left( \varvec{u}, \varvec{v}\right) _{H_{\textrm{imp}}(\varOmega )}=\left( \varvec{u}, \varvec{v}\right) _\varOmega +\left( \varvec{\nabla } \times \varvec{u}, \varvec{\nabla } \times \varvec{v}\right) _\varOmega +\left\langle \varvec{u}\cdot \varvec{t}, \varvec{v}\cdot \varvec{t} \right\rangle _\varGamma , \end{aligned}$$
(2.6)

for \(\varvec{u}, \varvec{v} \in H_{\textrm{imp}}(\varOmega )\), is a Hilbert space.

Multiplying the time harmonic equation by the complex conjugate of a test function \(\varvec{F} \in H_{\textrm{imp}}(\varOmega )\), and using the Green’s formula (1.6), we get

$$\begin{aligned} \left( \mu ^{-1} {\text {curl}}\varvec{E}, {\text {curl}}\varvec{F}\right) _{\varOmega }-\left\langle \mu ^{-1} {\text {curl}}\varvec{E},\varvec{F} \cdot \varvec{t}\right\rangle _{\varGamma } -\left( \left[ \omega ^{2}\epsilon +\textrm{i}\omega \sigma \right] \varvec{E}, \varvec{F} \right) _{\varOmega } = \textrm{i}\omega \left( \varvec{J},\varvec{F} \right) _{\varOmega }. \end{aligned}$$

Then, by taking into account the impedance boundary condition (2.4), the integral around the boundary becomes

$$\begin{aligned} \left\langle \mu ^{-1} {\text {curl}}\varvec{E},\varvec{F} \cdot \varvec{t}\right\rangle _{\varGamma }=\textrm{i} \omega \left\langle \gamma \varvec{E} \cdot \varvec{t},\varvec{F} \cdot \varvec{t}\right\rangle _{\varGamma }+\left\langle \varvec{G}\cdot \varvec{t},\varvec{F} \cdot \varvec{t}\right\rangle _{\varGamma }. \end{aligned}$$

Finally, the weak form reads as

$$\begin{aligned} \left\{ \begin{aligned}&\text {Find } \varvec{E} \in H_{\textrm{imp}}(\varOmega ) \quad \text { such that} \\&\displaystyle a\left( \varvec{E},\varvec{F}\right) = \textrm{i}\omega \left( \varvec{J} ,\varvec{F} \right) _{\varOmega } +\left\langle \varvec{G}\cdot \varvec{t},\varvec{F} \cdot \varvec{t}\right\rangle _{\varGamma } , \qquad \forall \varvec{F} \in H_{\textrm{imp}}(\varOmega ), \end{aligned} \right. \end{aligned}$$
(2.7)

where the sesquilinear form \(a:H_{\textrm{imp}}(\varOmega )\times H_{\textrm{imp}}(\varOmega )\longrightarrow \mathbb {C}\) is given by

$$\begin{aligned} a\left( \varvec{E},\varvec{F}\right) =\left( \mu ^{-1} {\text {curl}}\varvec{E}, {\text {curl}}\varvec{F}\right) _{\varOmega } -\left( \left[ \omega ^{2}\epsilon +\textrm{i}\omega \sigma \right] \varvec{E}, \varvec{F} \right) _{\varOmega } - \textrm{i}\omega \langle \eta \varvec{E} \cdot \varvec{t}, \varvec{F} \cdot \varvec{t} \rangle _\varGamma . \end{aligned}$$

Here, we will assume that

\((\textbf{A}_1)\):

The domain \(\varOmega \) may be split into \(n_{\varOmega }\) disjoint open simply-connected Lipschitz subdomains \(\varOmega _l\) such that \(\overline{\varOmega }=\cup ^{n_{\varOmega }}_{l=1} \overline{\varOmega }_l\), where \(\overline{\varOmega }\) is the closure of \(\varOmega \) and \(l=1,\cdots ,n_{\varOmega }\);

\((\textbf{A}_2)\):

the material coefficients \(\epsilon \), \(\mu \) and \(\sigma \) are positive and constant on each subdomain;

\((\textbf{A}_3)\):

the source term \(\varvec{J} \in \left[ L^{2}(\varOmega )\right] ^{2}\) and the boundary data \(\varvec{G} \in L_{t}^{2}(\varGamma )\).

We end this section by stating the following existence and uniqueness result.

Theorem 2.1

Under assumptions (\(\textbf{A}_1\))–(\(\textbf{A}_3\)), the variational problem (2.7) has a unique solution.

Proof

The proof makes use of the Helmholtz decomposition [67], Fredholm alternative and the unique continuation principle for the Maxwell’s equations [63], and follows the lines in [64, Thm. 4.17]. \(\square \)

Remark 2.1

Assumption (\(\textbf{A}_2\)) could be weakened as in [64], for example, by considering the material coefficients \(\epsilon \), \(\mu \) and \(\sigma \) to be piecewise smooth and satisfying appropriate conditions.

4 Discretization

In this section, we will briefly present the Nédélec FE space of the first type in two space dimensions [1]. To this end, we introduce the triangular master element \(\widehat{T}\) defined by

$$\begin{aligned} \widehat{T}=\big \{\varvec{\xi }=(\xi _1, \xi _2): \quad 0\leqslant \xi _1\leqslant 1,\quad 0\leqslant \xi _2\leqslant 1-\xi _1\big \}, \end{aligned}$$
(3.1)

and whose vertices are \(\widehat{\varvec{q}}_{1}=(1,0)\), \(\widehat{\varvec{q}}_{2}=(0,1)\) and \(\widehat{\varvec{q}}_{3}=(0,0)\) (see Fig. 1). Before getting to the heart of the matter, we begin by introducing some spaces of bivariate polynomials that are used in the construction of the \(H({\text {curl}})\)-conforming FEs. We denote by \(\mathbb {P}^{2}_{p}(\widehat{T})\) the space of polynomials on \(\widehat{T}\) of total degree at most p. The space of homogeneous polynomials on \(\widehat{T}\) of degree p is given by

$$\begin{aligned} \overline{\mathbb {P}}^{2}_{p}(\widehat{T})={\text {span}}\left\{ \xi _{1}^{i} \xi _{2}^{j}:\ i+j=p,\ \varvec{\xi } \in \widehat{T}\right\} . \end{aligned}$$

We also introduce a special subspace of homogeneous vector polynomials on \(\widehat{T}\):

$$\begin{aligned} \overline{\mathbb {S}}^{2}_{p}(\widehat{T}):=\left\{ \varvec{q} \in \left[ \overline{\mathbb {P}}^{2}_{p}(\widehat{T})\right] ^{2}: \varvec{\xi }\cdot \varvec{q}(\varvec{\xi }) = 0,\quad \varvec{\xi } \in \widehat{T}\right\} . \end{aligned}$$
(3.2)
Fig. 1
figure 1

Reference map for a curved triangular element

Definition 3.1

For \(p \in \mathbb {Z}_{+},\) the two-dimensional \(H({\text {curl}})\)-conforming Nédélec space of the first type of order p is defined by

$$\begin{aligned} \mathbb{N}\mathbb{D}^{2}_{p} (\widehat{T}):=\left[ \mathbb {P}^{2}_{p}(\widehat{T})\right] ^{2} \oplus \overline{\mathbb {S}}^{2}_{p+1}(\widehat{T}). \end{aligned}$$
(3.3)

Since the linear transformation: \(\left[ \overline{\mathbb {P}}^{2}_{p}(\widehat{T})\right] ^2\ni \varvec{q}\longrightarrow \varvec{\xi }\cdot \varvec{q}\in \overline{\mathbb {P}}^{2}_{p+1}(\widehat{T})\) is onto, applying the rank-nullity theorem yields \({\text {dim}}(\overline{\mathbb {S}}^{2}_{p}(\widehat{T})) =2(p+1)-(p+2)=p\), for all \(p\in \mathbb {Z}_{+}\). Which gives

$$\begin{aligned} {\text {dim}}(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T}))=(p+1)(p+2)+p+1=(p+1)(p+3). \end{aligned}$$

The following inclusion properties [68] are useful in the sequel:

$$\begin{aligned}{} & {} \left[ \mathbb {P}^{2}_{p}(\widehat{T})\right] ^{2} \subset \mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\subset \left[ \mathbb {P}^{2}_{p+1}(\widehat{T})\right] ^{2}, \end{aligned}$$
(3.4)
$$\begin{aligned}{} & {} \mathbb {P}^{2}_{p}(\widehat{T})\mathbb {N D}^{2}_{0}(\widehat{T}) \subset \mathbb {N D}^{2}_{p}(\widehat{T}). \end{aligned}$$
(3.5)

Let \(\mathscr {T}_{h}\) be a conforming partition of the domain \(\varOmega \) into triangular elements such that \(\overline{\varOmega }_h=\cup _{T\in \mathscr {T}_{h}} T\), where \({\varOmega }_h\) is an approximation of \(\varOmega \), with boundary \(\varGamma _h=\partial \varOmega _h\), and h is the mesh size of \(\mathscr {T}_{h}\) given by \(h=\max _{T\in \mathscr {T}_{h}}h_T\), where \(h_T=\text {diam}(T)\). Each \(T\in \mathscr {T}_{h}\) is the image of the triangular master element \(\widehat{T}\), i.e. \(T=F_T(\widehat{T})\), where \(F_T\) is a continuously differentiable, invertible and surjective reference map. Let us denote by \(\textsf {J}_T=\left( \frac{\text {D}F_T}{\text {D}\varvec{\xi }}\right) \) the Jacobian matrix of \(F_T\) and by \(|\textsf {J}_T|\) its determinant. It is well known that the covariant Piola mapping defined by

$$\begin{aligned} \varvec{u}=\mathcal {P}_T(\widehat{\varvec{u}}):=\textsf {J}_{T}^{-\top } \widehat{\varvec{u}} \circ F_{T}^{-1}, \end{aligned}$$
(3.6)

conserves vector function properties [64] and guarantees \(H({\text {curl}})\)-conformity [69], i.e., the continuity of tangential components across element interfaces [2]. For any \(\widehat{\varvec{u}} \in H({\text {curl}}, \widehat{T})\), it can be shown that \(\varvec{u}\in H({\text {curl}}, T)\) and

$$\begin{aligned} {\text {curl}} \varvec{u}=|\textsf {J}_{T}|^{-1}\;\widehat{{\text {curl}}} \;\widehat{\varvec{u}} \circ F_{T}^{-1}. \end{aligned}$$
(3.7)

This mapping ensures a local exact sequence property [70], summarized in the following commuting diagrams:

(3.8)

For further details, we refer the reader to [64, 71].

Let \(\varvec{V}_{h}\) be the finite dimensional approximation space defined by

$$\begin{aligned} \varvec{V}_{h}=\Big \{\varvec{v}\in H({\text {curl}},\overline{\varOmega }_h):\quad \textsf {J}_{T}^{\top }\varvec{v}\circ F_{T} \in \mathbb{N}\mathbb{D}^{2}_p(\widehat{T}),\quad \forall T\in \mathscr {T}_{h}\Big \}. \end{aligned}$$

Then the discrete analogous of the weak form (2.7) reads as

$$\begin{aligned} \left\{ \begin{aligned}&\text {Find } \varvec{E}_h \in \varvec{V}_{h} \;\text { such that} \\&\displaystyle a_h\left( \varvec{E}_h,\varvec{F}_h\right) = \textrm{i}\omega \left( \varvec{J} ,\varvec{F}_h \right) _{\varOmega _h} +\left\langle \varvec{G}\cdot \varvec{t},\varvec{F}_h \cdot \varvec{t}\right\rangle _{\varGamma _h} , \qquad \forall \varvec{F}_h \in \varvec{V}_{h}, \end{aligned} \right. \end{aligned}$$
(3.9)

where

$$\begin{aligned} a_h\left( \varvec{E}_{h},\varvec{F}_{h}\right)= & {} \left( \mu ^{-1} {\text {curl}}\varvec{E}_{h}, {\text {curl}}\varvec{F}_{h}\right) _{\varOmega _h} -\left( \left[ \omega ^{2}\epsilon +\textrm{i}\omega \sigma \right] \varvec{E}_{h}, \varvec{F}_{h} \right) _{\varOmega _h} \\{} & {} - \textrm{i}\omega \langle \gamma \varvec{E}_{h} \cdot \varvec{t}, \varvec{F}_{h} \cdot \varvec{t} \rangle _{\varGamma _h}. \end{aligned}$$

Herein, for convenience, the dependency on the polynomial order p is not indicated.

5 Bernstein–Bézier \(H({\text {curl}})\)-Conforming FE Basis

This section describes the Bernstein–Bézier \(H({\text {curl}})\)-conforming FE basis. We will recall the main steps behind its construction [58, 72]. The next Subsection gives the definitions of the barycentric coordinates and Bernstein polynomials.

5.1 Barycentric Coordinates and Bernstein Polynomials

Let us consider the barycentric coordinates \(\varvec{\lambda }=\left( \lambda _1,\lambda _2,\lambda _3\right) \) relative to the master element \(\widehat{T}\) defined by

$$\begin{aligned} \lambda _1(\varvec{\xi }) = \xi _1,\quad \lambda _2(\varvec{\xi }) = \xi _2,\quad \lambda _3(\varvec{\xi }) = 1-\xi _1-\xi _2. \end{aligned}$$
(4.1)

Now, we recall the definition of the bivariate Bernstein polynomials:

Definition 4.1

The Bernstein polynomials of degree p formulated on the reference element \(\widehat{T}\) read as

$$\begin{aligned} B^p_{\varvec{\alpha }}(\varvec{\xi }) =\left( {\begin{array}{c}p\\ \varvec{\alpha }\end{array}}\right) \varvec{\lambda }^{\varvec{\varvec{\alpha }}}(\varvec{\xi }),\quad \varvec{\alpha } \in \mathcal {I}^{2}_{p}. \end{aligned}$$
(4.2)

We also recall the following well known result:

Theorem 4.1

The set \(\{B^p_{\varvec{\alpha }} \}_{ \varvec{\alpha } \in \mathcal {I}^{2}_{p}}\) of Bernstein polynomials forms a basis for the space \(\mathbb {P}^{2}_{p}(\widehat{T})\).

5.2 Lower-Order Whitney Element

Here, we recall the definition of Whitney functions [7] and summarize some of their properties.

Definition 4.2

The Whitney functions are defined by

$$\begin{aligned} \varvec{\omega }_i:=\lambda _{i+1}\widehat{\varvec{\nabla }}\lambda _{i-1} - \lambda _{i-1}\widehat{\varvec{\nabla }}\lambda _{i+1},\quad i\in \llbracket 1,3\rrbracket , \end{aligned}$$
(4.3)

where \(\left( i-1, i, i+1\right) \) is a cyclic permutation of (1, 2, 3).

By using the definition of the barycentric coordinates (4.1), it can be shown that

$$\begin{aligned} \left\{ \varvec{\omega }_{1},\varvec{\omega }_{2},\varvec{\omega }_{3}\right\} \subset \mathbb{N}\mathbb{D}^{2}_0(\widehat{T}) =\left\{ \varvec{a} + b \varvec{\xi }^\perp : \varvec{a} \in \mathbb {R}^2, b \in \mathbb {R} \right\} , \end{aligned}$$

where \(\mathbb{N}\mathbb{D}^{2}_0(\widehat{T})\) is the lowest order Nédélec space, consisting of shape functions attached to the edges of the master element \(\widehat{T}\).

Let us denote by \(\widehat{e}_{i}\) the edge of the triangle \(\widehat{T}\) opposite to the vertex \(\widehat{\varvec{q}}_{i}\). Then, it can be seen that the barycentric coordinates satisfy

$$\begin{aligned} \left. \lambda _i \right| _{\widehat{e}_{i}} = 0, \quad \text {for}\quad i \in \llbracket 1,3\rrbracket . \end{aligned}$$
(4.4)

Let \(\varvec{t}_{i}\) be the positively oriented unit tangent vector to \(\widehat{e}_i\) given by \(\varvec{t}_{i}=-\varvec{n}_{i}^{\perp }\).

The most important properties of the Whitney functions are given in the following Lemma.

Lemma 4.1

The set of Whitney functions \(\left\{ \varvec{\omega }_{1},\varvec{\omega }_{2},\varvec{\omega }_{3}\right\} \) forms a basis for the lowest order Nédélec space \(\mathbb{N}\mathbb{D}^{2}_0(\widehat{T})\), and the following properties hold:

$$\begin{aligned} \left. \left( \varvec{\omega }_{i} \cdot \varvec{t}_j \right) \right| _{\widehat{e}_j} = \dfrac{\delta _{ij}}{l(\widehat{e}_j)}, \quad \text {for}\quad i,j \in \llbracket 1,3\rrbracket , \end{aligned}$$
(4.5)

where \(l(\widehat{e}_{j})\) is the length of the edge \(\widehat{e}_{j}\), and

$$\begin{aligned} \displaystyle {\int _{\partial \widehat{T}} \varvec{\omega }_{i} \cdot \varvec{t} \ \textrm{d} s =1, \quad \text {for}\quad i\in \llbracket 1,3\rrbracket }. \end{aligned}$$
(4.6)

Proof

Suppose that \(\varvec{u}=:\sum ^3_{i=1} c_i \varvec{\omega }_{i}=\varvec{0}.\) Then \(\left. \left( \varvec{u} \cdot \varvec{t}_i\right) \right| _{\widehat{e}_i}=0\), for all \(i\in \llbracket 1,3\rrbracket \). These yield according to (4.5), \( \frac{c_i}{l(\widehat{e}_i)} =0\), for all \(i\in \llbracket 1,3\rrbracket \). Hence, Whitney functions are linearly independent. Since \(\text {dim}\big ( \mathbb{N}\mathbb{D}^{2}_0(\widehat{T})\big )=3\), theses functions form a basis for \( \mathbb{N}\mathbb{D}^{2}_0(\widehat{T})\).

  1. (1)

    Let us now prove (4.5). Denote by \(\varvec{n}_{i}\) the unit outward normal vector to the edge \(\widehat{e}_{i}\). Then, we have

    $$\begin{aligned} \varvec{n}_i = -\dfrac{\widehat{\varvec{\nabla }}\lambda _i}{\Vert \widehat{\varvec{\nabla }}\lambda _i \Vert }, \end{aligned}$$
    (4.7)

    where \(\Vert \widehat{\varvec{\nabla }}\lambda _i \Vert = \frac{l(\widehat{e}_{i})}{2|\widehat{T}|} \) and \(|\widehat{T}|\) denotes the area of the reference element \(\widehat{T}\). According to (4.7) and the fact that

    $$\begin{aligned} l(\widehat{e}_{i})l(\widehat{e}_{i+1}) \;\varvec{n}_i \times \varvec{n}_{i+1}= 2|\widehat{T}|, \end{aligned}$$

    the barycentric coordinates satisfy

    $$\begin{aligned} \widehat{\varvec{\nabla }}\lambda _{i}\times \widehat{\varvec{\nabla }} \lambda _{i+1}=\frac{1}{2|\widehat{T}|}. \end{aligned}$$
    (4.8)

    Then, combining (4.7) and (4.8), yields

    $$\begin{aligned} \widehat{\varvec{\nabla }}\lambda _{i} \cdot \varvec{t}_{i}=0, \quad \text {and}\quad \widehat{\varvec{\nabla }} \lambda _{i-1} \cdot \varvec{t}_{i}=-\widehat{\varvec{\nabla }} \lambda _{i+1} \cdot \varvec{t}_{i}=\frac{1}{l(\widehat{e}_i)}, \quad \text {for}\quad i \in \llbracket 1,3\rrbracket . \end{aligned}$$
    (4.9)

    Moreover, by using (4.9), we get

    $$\begin{aligned} \varvec{\omega }_{i} \cdot \varvec{t}_{j}= {\left\{ \begin{array}{ll} -\lambda _{i-1}\widehat{\varvec{\nabla }}\lambda _{i+1}\cdot \varvec{t}_{i-1} &{} \text {if}\quad j=i-1,\\ \frac{\lambda _{i+1}+\lambda _{i-1}}{l(\widehat{e}_i)}= \frac{1-\lambda _{i}}{l(\widehat{e}_i)}&{} \text {if}\quad j=i,\\ \lambda _{i+1}\widehat{\varvec{\nabla }}\lambda _{i-1}\cdot \varvec{t}_{i+1} &{} \text {if}\quad j=i+1, \end{array}\right. } \end{aligned}$$

    and thus, thanks to (4.4), these prove (4.5).

  2. (2)

    Finally, the integral (4.6) over \(\partial \widehat{T}\) is a direct consequence of (4.5). \(\square \)

5.3 Bernstein–Bézier Gradient Based Functions

In two space dimensions, the construction of the Bernstein–Bézier basis for \(H({\text {curl}})\)-conforming Nédélec space of the first type relies on the so-called local exact sequence [25]:

(4.10)

Then the gradient of any \(H^1\)-conforming FE basis can be used in the construction of \(H({\text {curl}})\)-conforming FE basis. For \(p \in \mathbb {Z}_+\) and \(\varvec{\alpha } \in \mathcal {I}^{2}_{p+1}\), the Bernstein–Bézier gradient based function \(\widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}\in \mathbb{N}\mathbb{D}_{p}^{2}(\widehat{T})\) is given by

$$\begin{aligned} \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}=(p+1)\left[ B_{\varvec{\alpha }-\varvec{\mathbb {e}}_1}^{p} \widehat{\varvec{\nabla }} \lambda _{1}+B_{\varvec{\alpha }-\varvec{\mathbb {e}}_2}^{p} \widehat{\varvec{\nabla }} \lambda _{2}+B_{\varvec{\alpha }-\varvec{\mathbb {e}}_3}^{p} \widehat{\varvec{\nabla }} \lambda _{3}\right] , \end{aligned}$$
(4.11)

with the convention \(B^p_{\varvec{\beta }}= 0\) if \(\varvec{\beta }\notin \mathcal {I}^{2}_{p}\). We decompose this family according to indexes attached to the vertices, interior edge-based and bubble degrees of freedom of the master element \(\widehat{T}\):

$$\begin{aligned} \left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \mathcal {I}^{2}_{p+1}\right\}&= \left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \hat{\mathcal {I}}^{2}_{p+1} \right\} \displaystyle \cup \left( \cup _{i=1}^3 \left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_i)\right\} \right) \\&\cup \left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \mathring{ \mathcal {I}}^{2}_{p+1} \right\} , \end{aligned}$$

where

$$\begin{aligned} \mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_i):= \left\{ \varvec{\alpha } \in \mathcal {I}^{2}_{p+1}: \alpha _i = 0,\;\alpha _{i-1},\;\alpha _{i+1} > 0 \right\} , \end{aligned}$$

and cyclic permutation, as previously, is adopted. Thus, the collection of the index sets associated to interior edge-based and bubble degrees of freedom of the master element are

$$\begin{aligned} \cup _{i=1}^3\mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_i)\cup \mathring{\mathcal {I}}^{2}_{p+1}=\mathcal {I}^{2}_{p+1} \setminus \hat{\mathcal {I}}^{2}_{p+1} = \check{\mathcal {I}}^{2}_{p+1}. \end{aligned}$$

Lemma 4.2

The set \(\left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \check{\mathcal {I}}^{2}_{p+1}\right\} \) forms a linearly independent family of the Nédélec space \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\), that satisfies for all \(i\in \llbracket 1,3\rrbracket \)

$$\begin{aligned}{} & {} \left. \left( \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1} \cdot \varvec{t}_i \right) \right| _{\widehat{e}_i} =0, \quad \text {for all}\quad \varvec{\alpha } \in \mathring{ \mathcal {I}}^{2}_{p+1}, \end{aligned}$$
(4.12)
$$\begin{aligned}{} & {} \left. \left( \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1} \cdot \varvec{t}_j \right) \right| _{\widehat{e}_j} {=} {\left\{ \begin{array}{ll} \frac{p+1}{l(\widehat{e}_i)} \left. \left( B_{\varvec{\alpha }-\varvec{\mathbb {e}}_{i-1}}^{p} - B_{\varvec{\alpha }-\varvec{\mathbb {e}}_{i+1}}^{p} \right) \right| _{\widehat{e}_i} &{}\;\text {if } j=i\\ 0 &{}\;\text {otherwise} \end{array}\right. }, \quad \text {for all}\quad \varvec{\alpha }\in \mathring{ \mathcal {I}}^{2}_{p+1}(\widehat{e}_i),\nonumber \\ \end{aligned}$$
(4.13)

and

$$\begin{aligned} \int _{\partial \widehat{T}} \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}\cdot \varvec{t}\ \textrm{d} s= & {} 0, \quad \text {for all}\quad \varvec{\alpha } \in \check{\mathcal {I}}^{2}_{p+1}. \end{aligned}$$
(4.14)

Proof

Let us first prove linear independence. Suppose that \(\sum _{\varvec{\alpha }\in \check{\mathcal {I}}^{2}_{p+1}}c_{\varvec{\alpha }}\widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}=\varvec{0}\). Since \({\text {Ker}}(\widehat{\varvec{\nabla }})= \mathbb {P}^{2}_{0}(\widehat{T})\), by linearity of the gradient operator \(\widehat{\varvec{\nabla }}\), we have \(\sum _{\varvec{\alpha }\in \check{\mathcal {I}}^{2}_{p+1}}c_{\varvec{\alpha }} B_{\varvec{\alpha }}^{p+1}=c\), with \(c\in \mathbb {P}^{2}_{0}(\widehat{T})\). As, for any \(\varvec{\alpha }\in \check{\mathcal {I}}^{2}_{p+1}\), the Bernstein polynomial \(B_{\varvec{\alpha }}^{p+1}\) vanishes at all vertices of \(\widehat{T}\), the constant \(c=0\) and hence \(\sum _{\varvec{\alpha }\in \check{\mathcal {I}}^{2}_{p+1}}c_{\varvec{\alpha }} B_{\varvec{\alpha }}^{p+1}=0\). The set \(\{B^{p+1}_{\varvec{\alpha }} \}_{\varvec{\alpha } \in \mathcal {I}^{2}_{p+1}}\) being a basis for \( \mathbb {P}^{2}_{p+1}(\widehat{T})\), it follows that \(c_{\varvec{\alpha }}=0\), for all \(\varvec{\alpha } \in \check{\mathcal {I}}^{2}_{p+1}\).

  1. (1)

    Let us now prove (4.12). Let \(\varvec{\alpha } \in \check{\mathcal {I}}^{2}_{p+1}\). Then, using (4.9), dot product of both sides of Equation (4.11) yields

    $$\begin{aligned} \left. \left( \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1} \cdot \varvec{t}_i \right) \right| _{\widehat{e}_i}= & {} (p+1)\sum _{j=1,j\ne i}^3B_{\varvec{\alpha }-\varvec{\mathbb {e}}_j}^{p} \left. \left( \widehat{\varvec{\nabla }} \lambda _{j}\cdot \varvec{t}_i \right) \right| _{\widehat{e}_i}. \end{aligned}$$
    (4.15)

    In particular, for \(\varvec{\alpha }\in \mathring{\mathcal {I}}^{2}_{p+1}\) and thanks to (4.4), we have

    $$\begin{aligned} \left. \left( \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1} \cdot \varvec{t}_i \right) \right| _{\widehat{e}_i}= & {} (p+1)\underbrace{\left. \lambda _{i}\right| _{\widehat{e}_i}}_{=0}\sum _{j\ne i} \left( {\begin{array}{c}p\\ \varvec{\alpha }-\varvec{\mathbb {e}}_j\end{array}}\right) \left. \varvec{\lambda }^{\varvec{\alpha }-\varvec{\mathbb {e}}_j-\varvec{\mathbb {e}}_i}\right| _{\widehat{e}_i} \left. \left( \widehat{\varvec{\nabla }} \lambda _{j}\cdot \varvec{t}_i \right) \right| _{\widehat{e}_i}=0. \end{aligned}$$
  2. (2)

    To show (4.13), consider \(\varvec{\alpha }\in \mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_i)\). Using Eq. (4.15) once again (with i replaced by j) and the fact that \(B_{\varvec{\alpha }-\varvec{\mathbb {e}}_{i}}^{p}= 0\) (because \({\varvec{\alpha }-\mathbb {e}}_{i}\notin \mathcal {I}^{2}_{p}\)), \(\left. B_{\varvec{\alpha }-\varvec{\mathbb {e}}_{i+1}}^{p}\right| _{\widehat{e}_{i-1}}=0\) and \(\left. B_{\varvec{\alpha }-\varvec{\mathbb {e}}_{i-1}}^{p}\right| _{\widehat{e}_{i+1}}=0\), it can be shown that (4.13) holds true when \(j\ne i\). For the case \(j=i\), it suffices to combine (4.15) and (4.9).

  3. (3)

    Finally, owing to the fact that univariate Bernstein polynomials of the same order have the same well-known integral: \(\displaystyle \int _{\widehat{e}_i} B_{k}^{p}(s)ds = \frac{l(\widehat{e}_i)}{p+1}\), (4.14) directly follows from (4.13) and (4.9). \(\square \)

It is well known that

$$\begin{aligned} \widehat{{\text {curl}}} \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1} = 0, \quad \varvec{\alpha } \in \mathcal {I}^{2}_{p+1}. \end{aligned}$$
(4.16)

Thus, according to the rank-nullity theorem, we have

$$\begin{aligned} {\text {dim}} (\widehat{\varvec{\nabla }} \mathbb {P}^{2}_{p+1}(\widehat{T}))={\text {dim}} (\mathbb {P}^{2}_{p+1}(\widehat{T}))- {\text {dim}}({\text {Ker}}(\widehat{\varvec{\nabla }})) =\frac{(p+1)(p+4)}{2} < {\text {dim}}(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})). \end{aligned}$$

Hence, the Bernstein–Bézier gradient based functions must be completed by additional linearly independent set of vectors belonging to \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\) called non-gradient bubble based functions.

5.4 Non-gradient Bubble Based Functions

This subsection describes the non-gradient bubble based functions, following the ideas developed in [58].

Definition 4.3

Let \(p \in \mathbb {Z}_{+}\). Then the non-gradient bubble functions are defined by

$$\begin{aligned} \varvec{\varGamma }_{\varvec{\alpha }}^{p} =(p+1)\left( \alpha _{1} \varvec{\omega }_{1} + \alpha _{2} \varvec{\omega }_{2} + \alpha _{3} \varvec{\omega }_{3} \right) B_{\varvec{\alpha }}^{p}, \quad \text {for}\quad \varvec{\alpha }\in \mathcal {I}^{2}_{p}. \end{aligned}$$
(4.17)

By (3.5), it follows that \(\left\{ \varvec{\varGamma }_{\varvec{\alpha }}^{p}: \varvec{\alpha } \in \mathcal {I}^{2}_{p}\right\} \subset \mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\). Moreover, thanks to (4.4), we see that \(\left. \alpha _{i} B_{\varvec{\alpha }}^{p}\right| _{\widehat{e}_{i}}=0\), which implies, using (4.5),

$$\begin{aligned} \left. \left( \varvec{\varGamma }_{\varvec{\alpha }}^{p} \cdot \varvec{t}_{i}\right) \right| _{\widehat{e}_{i}}=0, \quad \text {for all}\quad i\in \llbracket 1,3\rrbracket . \end{aligned}$$

Hence

$$\begin{aligned} \int _{\partial \widehat{T}} \varvec{\varGamma }_{\varvec{\alpha }}^{p} \cdot \varvec{t}\ \textrm{d} s=0, \quad \text {for all}\quad \varvec{\alpha } \in \mathcal {I}^{2}_{p}. \end{aligned}$$
(4.18)

Consider \(\varvec{\alpha }_0\) an arbitrary index in \(\mathcal {I}^{2}_{p}\) and set \(\acute{\mathcal {I}}^{2}_{p}:=\mathcal {I}^{2}_{p} {\setminus } \left\{ \varvec{\alpha }_0 \right\} \) and \(\mathbb {G}^p:= {\text {span}}\left\{ \varvec{\varGamma }_{\varvec{\alpha }}^{p}: \varvec{\alpha } \in \acute{\mathcal {I}}^{2}_{p}\right\} \). The following lemma [58] recalls some useful properties of the non-gradient bubble functions.

Lemma 4.3

The set \(\left\{ \varvec{\varGamma }_{\varvec{\alpha }}^{p}: \varvec{\alpha } \in \acute{\mathcal {I}}^{2}_{p}\right\} \) consists of \(\frac{p(p+3)}{2}\) linearly independent functions of \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\cap H_0(\textrm{curl}, \widehat{T})\). Moreover,

$$\begin{aligned} \mathbb {G}^p\cap \widehat{\varvec{\nabla }} H^{1}(\widehat{T}) =\{\textbf{0}\}. \end{aligned}$$
(4.19)

Let us set \(\mathbb {W}:={\text {span}} \left\{ \varvec{\omega }_{1},\varvec{\omega }_{2},\varvec{\omega }_{3}\right\} \) and \(\mathbb {B}^{p}:=\mathbb {B}_e^{p} \oplus \mathbb {B}_{\widehat{T}}^{p}\), where

$$\begin{aligned} \mathbb {B}_{\widehat{e}}^{p} :=&\displaystyle \oplus _{i=1}^3{\text {span}}\left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_i)\right\} \quad \text {and}\quad \mathbb {B}_{\widehat{T}}^{p} :={\text {span}}\left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \varvec{\alpha } \in \mathring{\mathcal {I}}^{2}_{p+1} \right\} . \end{aligned}$$

Then, Lemmas 4.1, 4.2 and 4.3 yield [58, 72]:

Theorem 4.2

Let \(p \in \mathbb {Z}_{+}.\) Then, the two-dimensional Nédélec space \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\) of the first type of order p satisfies the following algebraic decomposition:

$$\begin{aligned} \mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})=\mathbb {W} \oplus \mathbb {B}^{p} \oplus \mathbb {G}^p. \end{aligned}$$
(4.20)

Proof

We first check, from the above, that \(\mathbb {W},\;\mathbb {B}^{p},\; \mathbb {G}^p \subset \mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\) and \({\text {dim}} (\mathbb {W})+{\text {dim}} (\mathbb {B}^p) +{\text {dim}} (\mathbb {G}^p ) ={\text {dim}} (\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T}))\). By (4.19), we can see that \(\mathbb {G}^p \cap \mathbb {B}^{p}=\{\textbf{0}\}\). Hence, by using (4.6), (4.14) and (4.18), it can be shown that \( (\mathbb {G}^p \oplus \mathbb {B}^p)\cap \mathbb {W}=\{\varvec{0}\}\). \(\square \)

5.5 Enhanced Bernstein–Bézier \(H({\text {curl}})\)-Conforming FE Basis

The \(H({\text {curl}})\)-conforming Bernstein–Bézier basis, as previously described, is constructed such that the gradient and non-gradient based shape functions are completed with lower-order Whitney functions. This construction is similar to the one developed for \(H({\text {curl}})\)-conforming hierarchical basis [20]. However, in other versions of \(H({\text {curl}})\)-conforming bases such as in [73], the edge based shape functions are chosen with the same order of approximation. Herein, we replace the lower-order Whitney functions with edge functions of order p, called high-order Whitney functions.

Definition 4.4

Let \(p\in \mathbb {Z}_+\). We define the high-order Whitney functions of order p by

$$\begin{aligned} \varvec{\omega }^{(p)}_{i}=\frac{1}{p}\lambda _{i+1}^p \widehat{\varvec{\nabla }} \lambda _{i-1}-\frac{1}{p}\lambda _{i-1}^p \widehat{\varvec{\nabla }} \lambda _{i+1},\quad \text {for}\quad i\in \llbracket 1,3\rrbracket . \end{aligned}$$
(4.21)

In [23], it was shown that the use of appropriate scaling factors in the \(H({\text {curl}})\)-conforming bases helps in improving the condition number of the resulting global FE matrix. To this end, we incorporate here the scaling factor 1/p in Equation (4.21).

Lemma 4.4

Let \(p\in \mathbb {Z}_+\). Then the set of high-order Whitney functions \(\left\{ \varvec{\omega }_{1}^{(p)},\varvec{\omega }_{2}^{(p)},\varvec{\omega }_{3}^{(p)}\right\} \) forms a linearly independent family for the Nédélec space \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\), that satisfies

$$\begin{aligned}{} & {} \left. \left( \varvec{\omega }_{i}^{(p)} \cdot \varvec{t}_{j}\right) \right| _{\widehat{e}_j}=\frac{\delta _{ij}}{p\; l(\widehat{e}_j)}\left. \left( \lambda _{j+1}^p+\lambda _{j-1}^p\right) \right| _{\widehat{e}_j}, \quad \text {for}\quad i,j\in \llbracket 1,3\rrbracket . \end{aligned}$$
(4.22)
$$\begin{aligned}{} & {} \displaystyle \int _{\partial \widehat{T}} \varvec{\omega }_{i}^{(p)} \cdot \varvec{t} \ \textrm{d} s =\frac{2}{p (p+1)}, \quad \text {for}\quad i\in \llbracket 1,3\rrbracket . \end{aligned}$$
(4.23)

Proof

It is clear that \(\varvec{\omega }_{i}^{(p)} \in \left[ \mathbb {P}^{2}_{p}(\widehat{T})\right] ^{2}\). Then, by (3.4), we have \(\left\{ \varvec{\omega }^{(p)}_{1},\varvec{\omega }_{2}^{(p)},\varvec{\omega }_{3}^{(p)}\right\} \subset \mathbb{N}\mathbb{D}^{2}_p(\widehat{T})\).

  1. (1)

    Let us first prove (4.22). The same arguments as in the proof of Lemma 4.1 yield

    $$\begin{aligned} \varvec{\omega }^{(p)}_{i} \cdot \varvec{t}_{j}= {\left\{ \begin{array}{ll} - \frac{1}{p}\lambda ^p_{i-1}\widehat{\varvec{\nabla }}\lambda _{i+1}\cdot \varvec{t}_{i-1} &{} \text {if}\quad j=i-1,\\ \frac{\lambda ^p_{i+1}+\lambda ^p_{i-1}}{pl(\widehat{e}_i)}&{} \text {if}\quad j=i,\\ \frac{1}{p}\lambda ^p_{i+1}\widehat{\varvec{\nabla }}\lambda _{i-1}\cdot \varvec{t}_{i+1} &{} \text {if}\quad j=i+1. \end{array}\right. } \end{aligned}$$

    So, thanks to (4.4), we conclude (4.22).

  2. (2)

    Let us now show linear independence. Suppose that \(\varvec{u}=:\sum ^3_{i=1} c_i \varvec{\omega }^{(p)}_{i}=\varvec{0}.\) Then, \(\varvec{u}\cdot \varvec{t}_i=0\) and by (4.22), we get \( \frac{c_i}{p\ l(\widehat{e}_i)}\left. \left( \lambda _{i+1}^p+\lambda _{i-1}^p\right) \right| _{\widehat{e}_i} =0\). Hence \(c_i = 0\), for all \(i\in \llbracket 1,3\rrbracket \).

  3. (3)

    Finally, (4.23) is a direct consequence of (4.22) and the fact that \(\int _{\widehat{e}_i} \lambda _{j}^p\ \textrm{d} s = \frac{p!(1-\delta _{ij})}{(p+1)!}l(\widehat{e}_i)\). \(\square \)

Remark 4.1

The curl of the high-order Whitney functions reads as

$$\begin{aligned} \widehat{{\text {curl}}}\varvec{\omega }^{(p)}_{i}= \left( \lambda _{i+1}^{p-1} + \lambda _{i-1}^{p-1} \right) \widehat{\varvec{\nabla }} \lambda _{i+1} \times \widehat{\varvec{\nabla }} \lambda _{i-1}. \end{aligned}$$

Then, by using (4.8), we have

$$\begin{aligned} \widehat{{\text {curl}}}\varvec{\omega }^{(p)}_{i}=\frac{\lambda _{i+1}^{p-1} + \lambda _{i-1}^{p-1}}{2|\widehat{T}|},\quad \text {for}\ i\in \llbracket 1,3\rrbracket , \end{aligned}$$
(4.24)

where i is taken in the cyclic permutations of the set \(\{1,2,3\}\). Since \(0 \le \lambda _j \le 1\) for \(j\in \llbracket 1,3\rrbracket \), it can be seen that the choice of the scaling factor 1/p guarantees \(\widehat{{\text {curl}}} \varvec{\omega }^{(p)}_{i} \le \widehat{{\text {curl}}}\varvec{\omega }_{i}\).

Let us set \(\mathbb {W}^p=\text {span}\left\{ \varvec{\omega }_{1}^{(p)},\varvec{\omega }_{2}^{(p)},\varvec{\omega }_{3}^{(p)}\right\} \). In the case of the lowest polynomial order \(p=0\), we take \(\mathbb {W}^0=\mathbb {W}\). By using Lemmas 4.1, 4.2 and 4.4, an analysis similar to that in the proof of Theorem 4.2, yields:

Theorem 4.3

Let \(p \in \mathbb {Z}_{+}.\) Then, the two-dimensional Nédélec space \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\) of the first type of order p satisfies the following algebraic decomposition:

$$\begin{aligned} \mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})=\mathbb {W}^p \oplus \mathbb {B}^{p} \oplus \mathbb {G}^p. \end{aligned}$$
(4.25)

5.6 Extension of the Bersntein–Bézier \(H({\text {curl}})\)-Basis to Tetrahedra

The Bernstein–Bézier \(H({\text {curl}})\)-basis functions can be extended to tetrahedrons, as described in [58]. To provide a brief summary of this extension, we introduce the tetrahedral reference element \(\widehat{T}\) defined by

$$\begin{aligned} \widehat{T}=\big \{\varvec{\xi }=(\xi _1, \xi _2, \xi _3): \quad 0\leqslant \xi _1\leqslant 1,\quad 0\leqslant \xi _2\leqslant 1,\quad 0\leqslant \xi _3\leqslant 1-\xi _1-\xi _2\big \}, \end{aligned}$$

and whose vertices are \(\widehat{\varvec{q}}_{1}=(1,0,0)\), \(\widehat{\varvec{q}}_{2}=(0,1,0)\), \(\widehat{\varvec{q}}_{3}=(0,0,1)\) and \(\widehat{\varvec{q}}_{4}=(0,0,0)\). Notably, \(\widehat{T}\) consists of four triangular faces:

$$\begin{aligned} \widehat{f}_1= & {} <\widehat{\varvec{q}}_{2},\widehat{\varvec{q}}_{3},\widehat{\varvec{q}}_{4}>,\; \widehat{f}_2 =<\widehat{\varvec{q}}_{3},\widehat{\varvec{q}}_{4},\widehat{\varvec{q}}_{1}>,\; \widehat{f}_3 =<\widehat{\varvec{q}}_{4},\; \widehat{\varvec{q}}_{1},\widehat{\varvec{q}}_{2}>\quad \text {and}\quad \\{} & {} \widehat{f}_4 = <\widehat{\varvec{q}}_{1},\widehat{\varvec{q}}_{2},\widehat{\varvec{q}}_{3} >, \end{aligned}$$

where each face \(\widehat{f}_i\) of \(\widehat{T}\) corresponds to the face opposite to the vertex \(\widehat{\varvec{q}}_i\).

Given the barycentric coordinates \(\varvec{\lambda }=\left( \lambda _1,\lambda _2,\lambda _3,\lambda _4\right) \) relative to the reference tetrahedron \(\widehat{T}\) defined by

$$\begin{aligned} \lambda _1(\varvec{\xi }) = \xi _1,\quad \lambda _2(\varvec{\xi }) = \xi _2,\quad \lambda _3(\varvec{\xi }) = \xi _3\quad \text {and} \quad \lambda _4(\varvec{\xi }) = 1-\xi _1-\xi _2-\xi _3, \end{aligned}$$

the trivariate Bernstein polynomials of degree p formulated on the reference tetrahedron \(\widehat{T}\) read as

$$\begin{aligned} B^p_{\varvec{\alpha }}(\varvec{\xi }) =\left( {\begin{array}{c}p\\ \varvec{\alpha }\end{array}}\right) \varvec{\lambda }^{\varvec{\varvec{\alpha }}}(\varvec{\xi }),\quad \varvec{\alpha } \in \mathcal {I}^{3}_{p}. \end{aligned}$$

The construction of the extended basis functions involves the gradients of the Bernstein–Bézier polynomials, as well as non-gradients basis functions consisting of:

  1. (1)

    The lowest-order Whitney edge functions:

    $$\begin{aligned} \varvec{\omega }_{ij}:=\lambda _{i}\widehat{\varvec{\nabla }}\lambda _{j} - \lambda _{j}\widehat{\varvec{\nabla }}\lambda _{i},\quad \text {for}\quad i,j\in \llbracket 1,4\rrbracket ,\quad i<j. \end{aligned}$$
  2. (2)

    The \(H({\text {curl}})\)-face bubbles: for \(i \in \llbracket 1,4\rrbracket \),

    $$\begin{aligned} \varvec{\varGamma }_{i,\varvec{\alpha }}^{p}:=(p+1) B_{\varvec{\alpha }}^n\left( \alpha _{i_1} \varvec{\omega }_{i_2 i_3}+\alpha _{i_2} \varvec{\omega }_{i_3 i_1}+\alpha _{i_3} \varvec{\omega }_{i_1 i_2}\right) ,\quad \text {for}\quad \varvec{\alpha } \in \acute{\mathcal {I}}^{3}_p(\widehat{f}_i), \end{aligned}$$

    where \(\left( i_1, i_2, i_3\right) \) is chosen such that \(\left( i, i_1, i_2, i_3\right) \) is a cyclic permutation of (1, 2, 3, 4),

    $$\begin{aligned} \acute{\mathcal {I}}^{3}_p(\widehat{f}_i):= \mathcal {I}^{3}_p(\widehat{f}_i) \setminus \left\{ p\varvec{\mathbb {e}}_{\varPi (i)} \right\} , \qquad \text {with} \qquad \mathcal {I}^{3}_p(\widehat{f}_i):=\left\{ \varvec{\alpha } \in \mathcal {I}^{3}_p: \alpha _i=0\right\} . \end{aligned}$$

    Herein, \(\varPi \) is the permutation of (1,2,3,4) defined by \(\varPi (i) = i+1\) for \(1\le i\le 3\) and \(\varPi (4) = 1\).

  3. (3)

    The \(H({\text {curl}})\)-cell bubbles: for \(i \in \llbracket 1,3\rrbracket \),

    $$\begin{aligned} \varvec{\varPsi }_{i,\varvec{\alpha }}^{p+1}=(p+2) B_{\varvec{\alpha }-\varvec{\mathbb {e}}_{i}}^{p+1} \widehat{\varvec{\nabla }} \lambda _{i}-\frac{\alpha _{i}}{p+2} \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+2},\quad \text {for}\quad \varvec{\alpha } \in \mathring{\mathcal {I}}^{3}_{p+2}. \end{aligned}$$

Let us denote by \(\mathbb{N}\mathbb{D}^{3}_{p}(\widehat{T})\) the three-dimensional Nédélec space of the first type of order p defined by [1]:

$$\begin{aligned} \mathbb{N}\mathbb{D}^{3}_{p} (\widehat{T}):= & {} \left[ \mathbb {P}^{3}_{p}(\widehat{T})\right] ^{3} \oplus \overline{\mathbb {S}}^{3}_{p+1}(\widehat{T}), \quad \text {with}\quad \overline{\mathbb {S}}^{3}_{p}(\widehat{T})\\:= & {} \left\{ \varvec{q} \in \left[ \overline{\mathbb {P}}^{3}_{p}(\widehat{T})\right] ^{3}: \varvec{\xi }\cdot \varvec{q}(\varvec{\xi }) = 0,\quad \varvec{\xi } \in \widehat{T}\right\} , \end{aligned}$$

where \(\mathbb {P}^{3}_{p}(\widehat{T})\) and \(\overline{\mathbb {P}}^{3}_{p}(\widehat{T})\), are respectively, the spaces of polynomials of total degree at most p and homogeneous polynomials of degree p defined on the reference tetrahedron \(\widehat{T}\). Then, following [58], it can be shown that the set:

$$\begin{aligned} \begin{aligned} \left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \quad \varvec{\alpha } \in \check{\mathcal {I}}^{3}_{p+1} \right\}&\cup \big \{\varvec{\omega }_{ij}:\quad i,j\in \llbracket 1,4\rrbracket , \quad i<j \big \} \cup \left( \cup _{i =1}^4\left\{ \varvec{\varGamma }_{i,\varvec{\alpha }}^{p}:\quad \varvec{\alpha } \in \acute{\mathcal {I}}^{3}_p(\widehat{f}_i)\right\} \right) \\&\cup \left( \cup _{i=1}^2\left\{ \varvec{\varPsi }_{i,\varvec{\alpha }}^{p+1}:\quad \varvec{\alpha } \in \mathring{\mathcal {I}}^{3}_{p+2}\right\} \right) \cup \left\{ \varvec{\varPsi }_{3,\varvec{\alpha }}^{p+1}: \quad \varvec{\alpha } \in \mathring{\mathcal {I}}^{3}_{p+2}, \quad \alpha _3=1\right\} \end{aligned} \end{aligned}$$

forms a basis for the space \(\mathbb{N}\mathbb{D}^{3}_{p}(\widehat{T})\).

Remark 4.2

Similarly as in two space dimensions, the lower-order Whitney functions can be replaced by the high-order Whitney functions of order p, defined as follows:

$$\begin{aligned} \varvec{\omega }^{(p)}_{ij}=\frac{1}{p}\lambda _{i}^p \widehat{\varvec{\nabla }} \lambda _{j}-\frac{1}{p}\lambda _{j}^p \widehat{\varvec{\nabla }} \lambda _{i},\quad \text {for}\quad i,j\in \llbracket 1,4\rrbracket ,\quad i<j, \end{aligned}$$

where the scaling factor 1/p is chosen such that \(\left\| \widehat{{\text {curl}}} \varvec{\omega }^{(p)}_{ij}\right\| \le \left\| \widehat{{\text {curl}}}\varvec{\omega }_{ij}\right\| \). Applying similar arguments as in the proof of Lemma 4.4, we can show that the set \(\left\{ \varvec{\omega }^{(p)}_{ij}:\; i,j\in \llbracket 1,4\rrbracket ,\; i<j\right\} \) forms a linearly independent family for the Nédélec space \(\mathbb{N}\mathbb{D}^{3}_{p}(\widehat{T})\). Moreover, it can be proven as in [58] that the set:

$$\begin{aligned} \begin{aligned} \left\{ \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}: \quad \varvec{\alpha } \in \check{\mathcal {I}}^{3}_{p+1} \right\}&\cup \big \{\varvec{\omega }^{(p)}_{ij}:\quad i,j\in \llbracket 1,4\rrbracket , \quad i<j \big \} \cup \left( \cup _{i =1}^4\left\{ \varvec{\varGamma }_{i,\varvec{\alpha }}^{p}:\quad \varvec{\alpha } \in \acute{\mathcal {I}}^{3}_p(\widehat{f}_i)\right\} \right) \\&\cup \left( \cup _{i=1}^2\left\{ \varvec{\varPsi }_{i,\varvec{\alpha }}^{p+1}:\quad \varvec{\alpha } \in \mathring{\mathcal {I}}^{3}_{p+2}\right\} \right) \cup \left\{ \varvec{\varPsi }_{3,\varvec{\alpha }}^{p+1}: \quad \varvec{\alpha } \in \mathring{\mathcal {I}}^{3}_{p+2}, \quad \alpha _3=1\right\} \end{aligned} \end{aligned}$$

forms a basis for the space \(\mathbb{N}\mathbb{D}^{3}_p(\widehat{T})\).

6 Solution Method

The approximate Bernstein–Bézier FE solution \(\varvec{E}_{h}\) of (3.9) can be written element-wise, for \(T\in \mathscr {T}_{h}\), in the form:

$$\begin{aligned} \varvec{E}_{h}(\varvec{x})= & {} \sum _{k=1}^3 E_{\omega }^{\widehat{e}_k} \left\{ \begin{array}{c} \varvec{\omega }_{k}(\varvec{\xi }) \\ \text {or} \\ \varvec{\omega }_{k}^{(p)}(\varvec{\xi }) \end{array} \right\} +\sum _{k=1}^3 \sum _{\varvec{\alpha } \in \mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_k) } E_{\varvec{\alpha }}^{\widehat{e}_k} \widehat{\varvec{\nabla }} B_{\varvec{\alpha }}^{p+1}(\varvec{\xi })\nonumber \\{} & {} +\sum _{\varvec{\alpha } \in \mathring{\mathcal {I}}^{2}_{p+1}} E_{\varvec{\alpha }}^{b_1} \widehat{\varvec{\nabla }}B_{\varvec{\alpha }}^{p+1}(\varvec{\xi }) +\sum _{\varvec{\alpha } \in \acute{\mathcal {I}}^{2}_{p}} E_{\varvec{\alpha }}^{b_2}\varvec{\varGamma }_{\varvec{\alpha }}^{p}(\varvec{\xi }), \end{aligned}$$
(5.1)

where the global coordinate \(\varvec{x}=F_T(\varvec{\xi })\) and \(E_{\omega }^{\widehat{e}_k},E_{\varvec{\alpha }}^{\widehat{e}_k},E_{\varvec{\alpha }}^{b_l} \in \mathbb {C}\) are unknown complex scalars.

It is worth noticing that the global edge-orientation is necessary to enable \(H({\text {curl}})\)-conformity (see [21], for more details).

The discrete weak form (3.9) yields the following algebraic system

$$\begin{aligned} \textsf {A} \textsf {E}=\textsf {B}. \end{aligned}$$
(5.2)

Here, \(\textsf {A}\) is \(n_{\text {dof}}\times n_{\text {dof}}\) sparse, complex symmetric matrix, \(\textsf {E}\) and \({\textsf {b}}\) are, respectively, the unknown and right-hand side column vectors of \(\mathbb {C}^{n_{\text {dof}}}\) and \(n_{\text {dof}}\) is the total number of Degrees of Freedom (DoF).

The global matrix \({\textsf {A}}\) and the right-hand side vector \({\textsf {b}}\) are computed by assembling the element contributions \(\textsf {A}^T\) and \(\textsf {B}^T\). The element matrix \(\textsf {A}^T\) can be written as

$$\begin{aligned} \textsf {A}^T = -\textsf {M}^T+ \textsf {K}^T-\textrm{i}\omega \textsf {S}^T. \end{aligned}$$
(5.3)

Let us denote by \(\mathscr {N}_L\) the mapping from the multi-index sets in the local FE basis denoted \(\left\{ \varvec{\varphi }^p_{\varvec{\alpha }}:\;\varvec{\alpha }\in \mathcal {I}_{n^{\widehat{T}}_{\text {dof}}}\right\} \) to the local DoF numbers, where

$$\begin{aligned} \mathcal {I}_{n^{\widehat{T}}_{\text {dof}}}={\hat{\mathcal {I}}^{2}_{p+1}} \cup \left( \cup _{k=1}^3 \mathring{\mathcal {I}}^{2}_{p+1}(\widehat{e}_k) \right) \cup \mathring{\mathcal {I}}^{2}_{p+1}\cup \acute{\mathcal {I}}^{2}_{p}, \end{aligned}$$

and the convention \({\varphi }^p_{\varvec{\alpha }}=\varvec{\omega }_{k}\;\text {or}\;\varvec{\omega }^{(p)}_{k}\), for \(\varvec{\alpha }=(p+1)\varvec{\mathbb {e}}_k\in {\hat{\mathcal {I}}^{2}_{p+1}}\), is adopted. Table 1 arranges the different degrees of freedom for each polynomial order p.

Table 1 Number and types of degrees of freedom in the basis of \(\mathbb{N}\mathbb{D}^{2}_{p}(\widehat{T})\)

Using the \(H({\text {curl}})\)-conforming transformation (3.6), the element matrices \(\textsf {M}^T\), \(\textsf {K}^T\) and \(\textsf {S}^T\) can be evaluated as follows

$$\begin{aligned} \textsf {M}^{T}_{ij}= & {} \left( \left[ \omega ^{2}\epsilon +\textrm{i}\omega \sigma \right] |\textsf {J}_T|\;\textsf {J}^{-\top }_T\varvec{\varphi }^p_{\varvec{\alpha }},\; \textsf {J}^{-\top }_T\varvec{\varphi }^p_{\varvec{\beta }}\right) _{\widehat{T}},\\ \textsf {K}_{ij}^{T}= & {} \left( \mu ^{-1}|\textsf {J}_T|^{-1} \widehat{{\text {curl}}}\;\varvec{\varphi }^p_{\varvec{\alpha }},\; \widehat{{\text {curl}}}\;\varvec{\varphi }^p_{\varvec{\beta }}\right) _{\widehat{T}},\\ \textsf {S}_{ij}^{T}= & {} \sum _{\mathcal {E}\subset \partial T\cap \varGamma _h}\left\langle \gamma l_{\mathcal {E}} \left( \textsf {J}^{-\top }_T\varvec{\varphi }^p_{\varvec{\alpha }}\right) \cdot \varvec{t}_{\mathcal {E}},\; \left( \textsf {J}^{-\top }_T\varvec{\varphi }^p_{\varvec{\beta }} \right) \cdot \varvec{t}_{\mathcal {E}} \right\rangle _{\widehat{I}}, \end{aligned}$$

where \(\varvec{\alpha },\;\varvec{\beta }\in \mathcal {I}_{n^{\widehat{T}}_{\text {dof}}}\), \(i=\mathscr {N}_L(\varvec{\alpha })\) and \(j=\mathscr {N}_L(\varvec{\beta })\). Here, \(\mathcal {E}\) is an edge of T and \(l_{\mathcal {E}}=\displaystyle \sqrt{{x^{\prime }}^2_1(s)+{x^{\prime }}^2_2(s)}\), with \(s\in \widehat{I}=[0,1]=F^{-1}_T(\mathcal {E})\).

The element right-hand side \(\textsf {b}^T\) is given by

$$\begin{aligned} \textsf {b}^T = \textrm{i} \omega \textsf {F}^{T} + \textsf {G}^T, \end{aligned}$$
(5.4)

in which

$$\begin{aligned} \textsf {F}_{j}^{T}=\left( |\textsf {J}_T|\varvec{J}, \textsf {J}^{-\top }_T\varvec{\varphi }^p_{\varvec{\beta }} \right) _{\widehat{T}}\quad \text {and}\quad \textsf {G}_{j}^{T}=\sum _{\mathcal {E}\subset \partial T\cap \varGamma _h}\left\langle l_{\mathcal {E}}\varvec{G}\cdot \varvec{t}_{\mathcal {E}},\left( \textsf {J}^{-\top }_T\varvec{\varphi }^p_{\varvec{\beta }} \right) \cdot \varvec{t}_{\mathcal {E}}\right\rangle _{\widehat{I}}. \end{aligned}$$

For the evaluation of the above element matrices, the geometry is interpolated with the quadratic Lagrange map, where the impedance boundary condition (2.4) is prescribed. By doing so, it should be noted that the overall discretization error is not affected by the error due to the interpolation of the geometry. Indeed, the numerical solution will be compared to the enforced analytical solution. The case of electromagnetic wave transmission problem dealt with here in the numerical study, requires an accurate representation of curved elements sharing an edge with the interface. For this end, the blending map method of Gordon and Hall [60, 61, 74] is used. For elements with straight edges, the transformation \(F_T\) reduces to an affine map and analytical rules are implemented as in [58]. However, high order Gauss-Legendre quadrature are used for curved elements. Fast quadrature procedures in \(H({\text {curl}})\) setting, taking advantage of sum factorisation, are investigated in [55, 72], but they are not considered in this work.

Static condensation is performed at the element level, in order to reduce memory requirements. This procedure which consists to eliminate the element internal DoFs leads to a condensed linear system involving only edge based DoFs. The condensed global matrix is assembled from local element matrices by using a coordinate storage format. The resulting condensed linear system is solved using the multi-frontal sparse direct solver MUMPS [75]. Once the solution related to the edge based DoFs is obtained, the internal modes are recovered at the post-processing stage by solving element-wise local small linear systems.

7 Numerical Results and Discussion

In this section, we investigate the computational efficiency and convergence properties of the proposed Bernstein–Bézier \(H({\text {curl}})\)-conforming FEs, through two-dimensional benchmark tests of varying levels of complexity.

We first introduce some indicators and notations used later in the analysis. The accuracy of the numerical solution is evaluated by the relative \(L^2\) error \(\varepsilon _2\) defined by

$$\begin{aligned} \varepsilon _2=\dfrac{\Vert \varvec{E}_h- \varvec{E}\Vert _{\varOmega _h} }{\Vert \varvec{E}\Vert _{\varOmega _h}}\times 100\%, \end{aligned}$$
(6.1)

where \(\varvec{E}\) represents the analytical solution of the considered problem. We will denote by \(\text {Re}(\varvec{E}_h)\) the real part of the approximate electric field \(\varvec{E}_h\) and by \(|\text {Re}(\varvec{E}_h)|\) its corresponding Euclidean norm.

For simplicity, we will keep the same notation used in Equation (5.2), for the condensed global linear system to be solved. The wave resolution, in the case of homogeneous media is measured, by the parameter

$$\begin{aligned} \tau _{\varLambda }= \varLambda \sqrt{\frac{n_{\text {dof}}}{|\varOmega _h|}}, \end{aligned}$$
(6.2)

giving the number of DoF per wavelength \(\varLambda \). Here, \(n_{\text {dof}}\) is the total number of DoF of the condensed linear system and \(|\varOmega _h|\) is the surface area of the approximate domain \(\varOmega _h\).

We will also denote by \(\kappa _A\) the condition number of the condensed global linear system, provided by MUMPS and defined in [75] by

$$\begin{aligned} \kappa _A=\frac{||\ |\textsf {A}|\ |\textsf {A}^{-1}|\ |\hat{x}|\ +\ |\textsf {A}^{-1}|\ |\textsf {b}|\ ||_{\infty }}{||\hat{x}||_{\infty }}, \end{aligned}$$
(6.3)

where \(\hat{x}\) is the computed solution, \(||\cdot ||_{\infty }\) is the usual \(l_{\infty }\) norm, \(|\textsf {A}| = (|a_{ij}|)\) and \(|\textsf {b}| = (|b_i|)\).

7.1 Radial Wave Propagation from a Perfectly Conducting Circular Cavity

7.1.1 Description of the Problem

We consider the propagation of harmonic radial electromagnetic waves produced from a perfectly conducting circular cylinder of radius a surrounded by an infinite homogeneous medium suitable for electromagnetic wave propagation. We assume that the cavity consists of a dielectric material. This corresponds to a conductivity \(\sigma = 0\). The computational domain \(\varOmega \) has a circular annulus shape of inner radius a and outer radius \(R=2a\) as shown in Fig. 2.

Fig. 2
figure 2

Computational domain and problem specification

The adoption of TE setting means that the propagating waves are purely tangential. They are expressed in terms of the electric field by

$$\begin{aligned} \varvec{E}=\textrm{i}\sqrt{\frac{\mu }{\epsilon }}{H^{\prime }_{0}}^{(2)}\left( \kappa r\right) \varvec{e}_{\theta }. \end{aligned}$$
(6.4)

Herein, \(\kappa =\omega \sqrt{\mu \epsilon }\) is the wave number and \(H_{\nu }^{(2)}\) is the Hankel function of the second kind and order \(\nu \). The notation ’\({}^{\prime }\)’ refers to a derivative with respect to the argument.

The electromagnetic parameters used in this numerical study are chosen to be those of air and are summarized in Table 2.

Table 2 Parameters used in the numerical experiments

In order to perform the h-convergence analysis, a series of six gradually refined mesh grids \((M_i)^6_{i=1}\) is considered. Three typical examples of such meshes are displayed in Fig. 3.

In what follows, the abbreviation BBFEM\(_e\) refers to BBFEM in combination with the enhanced Bernstein–Bézier \(H({\text {curl}})\)-FE basis given by (4.25). This will help to make a distinction with the case where the Bernstein–Bézier basis defined by (4.20) is used.

Fig. 3
figure 3

Examples of unstructured mesh grids used for the pulsating cavity problem; from left to right: \(M_1\) \((h=0.375a)\), \(M_{3}\) \((h=0.125a)\) and \(M_{6}\) \((h=0.0625a)\)

7.1.2 Comparison of BBFEM Against BBFEM\(_e\)

First, a comparison study of BBFEM against BBFEM\(_e\), in terms of accuracy and conditioning, is presented. The numerical experiments are performed on the sequence of unstructured mesh grids defined in the previous subsection (see Fig. 3).

Table 3 reports the wave resolution \(\tau _{\varLambda }\), the \(L_2\) error \(\varepsilon _2\) and condition number \(\kappa _A\), at the frequencies \(f=1.00\) GHz, \(f=2.00\) GHz, \(f=4.00\) GHz and \(f=8.00\) GHz, for different values of the polynomial order p. The results of Table 3 show that BBFEM and BBFEM\(_e\) have a similar h-convergence behaviour. Moreover, as the frequency increases, both methods achieve good accuracy with a low number of DoF per wavelength \(\tau _\varLambda \) (see Table 3(d)), but yield non comparable condition numbers. Indeed, as can be observed from Table 3(d) for \(f=8.00\) GHz, the conditioning of BBFEM may be up to two orders of magnitude larger than that of BBFEM\(_e\). However, sometimes the conditioning of BBFEM\(_e\) may slightly worsen, for a relatively low polynomial order (see Table 3(c), for \(p=6\)).

Since both Bernstein–Bézier \(H({\text {curl}})\) bases in BBFEM and BBFEM\(_e\) span the same Nédélec space, they would therefore result in a similar performance, but conditioning may be different and, as a consequence, they produce different \(L^2\) errors.

Table 3 BBFEM versus BBFEM\(_e\); h-refinement, for different values of the polynomial order p: (a) \(f=1.00\) GHz, (b) \(f=2.00\) GHz, (c) \(f=4.00\) GHz and (d) \(f=8.00\) GHz

7.1.3 Error Analysis: h-Refinement

This subsection focuses on the h-convergence analysis of BBFEM\(_e\), with computations being performed on the sequence of unstructured mesh grids previously defined. The relative \(L^2\) error \(\varepsilon _2\) versus the number \(\tau _{\varLambda }\) of DoF per wavelength is shown in Fig. 4, at the frequencies \(f=1.00\) GHz, \(f=2.00\) GHz, \(f=4.00\) GHz and \(f=8.00\) GHz, for different values of the polynomial order p.

As expected, the h-convergence rate of BBFEM\(_e\) increases as a function the polynomial order p. More precisely, an asymptotically algebraic decay of the \(L^2\) error \(\varepsilon _2\), scaling as \(O(\tau _{\varLambda }^{-(p+1)})\), is clearly seen from Fig. 4. Due to the pollution effect when the frequency increases, a pre-asymptotic region of slower convergence can be observed from the results of Fig. 4d at the frequency \(f = 8.00\) GHz, for a low wave resolution \(\tau _{\varLambda }\). Also, as the frequency increases, it is clear that the method achieves better accuracy for lower values of the number of DOF per wavelength \(\tau _\varLambda \).

Fig. 4
figure 4

The \(L^2\) error versus \(\tau _{\mathrm {\varLambda }}\); h-refinement for different values of the polynomial order p: a \(f=1.00\) GHz, b \(f=2.00\) GHz, c \(f=4.00\) GHz and d \(f=8.00\) GHz

7.1.4 Error Analysis: p-Refinement

Here, we study the p-convergence analysis of BBFEM\(_e\). Computations are carried out on the mesh grid \(M_2\) at the same frequencies as in the previous subsection. Figure 5 shows the \(L^2\) error against the polynomial order p at the target frequencies \(f=1.00\) GHz, \(f=2.00\) GHz (Fig. 5a), \(f=4.00\) GHz and \(f=8.00\) GHz (Fig. 5b).

An exponential decay of the \(L^2\) error is clearly seen from the results of Fig. 5. This convergence rate is expected, as it is well known, for problems with smooth solutions. Because of the pollution error, a pre-asymptotic region of slower convergence can again be observed at a low polynomial order p, when the frequency increases (see Fig. 5b, for \(f=8.00\) GHz).

Fig. 5
figure 5

The \(L^2\) error versus the polynomial order for different frequencies; p-refinement with \(h=0.1875a\): a \(f=1.00\) GHz and \(f=2.00\) GHz, b \(f=4.00\) GHz and \(f=8.00\) GHz

For illustration purpose, we display in Fig. 6 the contour plots of \(|\text {Re}(\varvec{u}_h)|\) at the frequencies \(f=4.00\) GHz and \(f=8.00\) GHz. Here, the computations are carried out on the mesh grid \(M_3\) with a polynomial order \(p=8\).

Fig. 6
figure 6

Pulsating cavity; contour plots of \(|\text {Re}(\varvec{E}_h)|\); \(h=0.125a\) and \(p=8\): (left) \(f = 4.00\) GHz, \(\varepsilon _2=4.16\times 10^{-4}\%\) and \(\tau _{\varLambda }=7.20\); (right) \(f = 8.00\) GHz, \(\varepsilon _2=0.18\%\) and \(\tau _{\varLambda }=3.60\)

Good accuracy is achieved at the frequency \(f = 8.00\) GHz (see Fig. 6b), with only \(\tau _{\varLambda }=3.60\). It should be noted, in such case, that elements of the computational mesh grid \(M_3\), may contain up to \(h/\varLambda \simeq 2.17\) wavelengths.

Although the obtained numerical results so far show a high accuracy, they do not represent a great challenge, because the analytical solution does not involve a wave field with both propagating and evanescent modes. It is worth noticing that standard discretization schemes may not capture the rapid decay of higher-order evanescent modes. These motivate us to study in the sequel wave scattering problems.

7.2 Scattering of Plane Waves by a Conducting Circular Cylinder

7.2.1 Description of the Problem

This second benchmark deals with a scattering problem, where an incident electromagnetic plane wave traveling horizontally from left to right in a homogeneous dielectric medium and collides with a perfectly conductive circular cylinder of radius a. We denote the permittivity and the permeability of the surrounding medium by \(\epsilon \) and \(\mu \), respectively. The computational domain and the material parameters are considered as those of the first benchmark (see Fig. 2 and Table 2).

The analytical scattered electrical field in the case of TE configuration [76] is given, in the polar coordinate system, by

$$\begin{aligned} \varvec{E} = R \varvec{e}_{r}+ T \varvec{e}_{\theta }, \end{aligned}$$
(6.5)

where

$$\begin{aligned} R=&\frac{1}{\textrm{i} \omega \epsilon } \sum _{\nu =0}^{+\infty }\nu \left[ (-\textrm{i})^\nu \varepsilon _\nu \frac{J_{\nu }\left( \kappa r\right) }{r} + A_{\nu } \frac{H_{\nu }^{(2)}(\kappa r)}{r} \right] \sin {(\nu \theta )}, \\ T=&\frac{\kappa }{\textrm{i} \omega \epsilon } \sum _{\nu =0}^{+\infty } \left[ (-\textrm{i})^\nu \varepsilon _\nu J_{\nu }^\prime \left( \kappa r\right) + A_\nu {H^{\prime }_{\nu }}^{(2)}(\kappa r)\right] \cos {(\nu \theta )}. \end{aligned}$$

Herein, \(\kappa =\omega \sqrt{\mu \epsilon }\) is the wave number, \(J_\nu \) and \(H^{(2)}_\nu \) are, respectively, the Bessel function of the first kind and the Hankel function of the second kind and order \(\nu \). The sequence \(\{\varepsilon _{\nu }\}\) is defined by \(\varepsilon _{0}=1\) and \(\varepsilon _{\nu }=2\), for \(\nu \ge 1\). The constants \(A_\nu \) are chosen such that \(\varvec{E}\cdot \varvec{t}=0\) on the scatterer boundary.

In what follows, the above infinite series are truncated to a finite number \(N_t\) of terms. Note that the truncation does not affect the accuracy, because the truncated analytical solution is enforced through the impedance boundary condition (2.4).

7.2.2 Comparison of BBFEM Against BBFEM\(_e\)

In the same fashion as before, we conduct a comparison study of BBFEM against BBFEM\(_e\). In contrast to the previous benchmark, the analytical solution of the scattering problem is chosen such that all propagating modes are included, where \(N_t\simeq \kappa a\). The numerical experiments are carried out on the same unstructured mesh grids depicted in Fig. 3.

We report in Table 4 the wave resolution \(\tau _{\varLambda }\), the \(L_2\) error \(\varepsilon _2\) and condition number \(\kappa _A\), at the frequencies \(f=1.00\) GHz, \(f=2.00\) GHz, \(f=4.00\) GHz and \(f=8.00\) GHz, for different values of the polynomial order p. A similar trend as previously shown can be seen from the results of Table 4, namely, a similar h-convergence behaviour of BBFEM and BBFEM\(_e\) and better conditioning of BBFEM\(_e\) as the frequency increases.

It should be noted that these numerical experiments make use of the same mesh grids and polynomial order as in the first benchmark. However, the values of the computed condition number \(\kappa _A\) differ from those reported in Table 3. This is because the metric defining \(\kappa _A\) by equation (6.3) also depends on the right hand side of the linear system to be solved.

Table 4 BBFEM versus BBFEM\(_e\); h-refinement, for different values of the polynomial order p: (a) \(f=1.00\) GHz, (b) \(f=2.00\) GHz, (c) \(f=4.00\) GHz and (d) \(f=8.00\) GHz

7.2.3 Error Analysis: h-Refinement

In a similar fashion, we perform h-convergence study using the same computational mesh grids as before (see Fig. 3). We first take \(N_t\simeq \kappa a\), so that analytical solutions involve only propagating wave modes \((\nu \le \kappa a)\).

Fig. 7
figure 7

The \(L^2\) error versus \(\tau _{\mathrm {\varLambda }}\); h-refinement for different values of the polynomial order p: a \(f=1.00\) GHz, b \(f=2.00\) GHz, c \(f=4.00\) GHz and d \(f=8.00\) GHz

In Fig. 7, the \(L^2\) error against the number \(\tau _{\varLambda }\) of DoF per wavelength is plotted at the typical frequencies \(f=1.00\) GHz, \(f=2.0\times 10^4\) Hz, \(f=4.00\) GHz and \(f=8.00\) GHz, for different values of the polynomial order p.

The results of Fig. 7 show a similar h-convergence behaviour, compared to those of the previous benchmark. Most importantly, the asymptotically algebraic decay of the \( L^2 \) error, which scales as \(O(\tau _{\varLambda }^{-(p+1)})\), is recovered. Moreover, a pre-asymptotic region of slower convergence is again observed at a low wave resolution \(\tau _{\varLambda }\), when the frequency increases (see Fig. 7d, for \(f=8.00\) GHz).

7.2.4 Error Analysis: p-Refinement

In the same way as before, we carry out p-convergence analysis. Figure 8 displays the \(L^2\) error against the polynomial order p at the frequencies \(f=1.00\) GHz, \(f=2.00\) GHz (Fig. 8a), \(f=4.00\) GHz and \(f=8.00\) GHz (Fig. 8b).

The results of Fig. 8 show a similar trend in terms of p-convergence, compared to those performed previously for the radial wave problem. Most notably, exponential decay of the \(L^2\) error is seen for the considered range of frequencies. Moreover, a pre-asymptotic region of slower convergence is again observed, when the frequency increases and the wave pattern is not sufficiently resolved (Fig. 8b, for \(f=8.00\) GHz).

Fig. 8
figure 8

The \(L^2\) error versus the polynomial order for different frequencies; p-refinement with \(h = 0.1875a\): a \(f=1.00\) GHz and \(f=2.00\) GHz; b \(f=4.00\) GHz and \(f=8.00\) GHz

Figure 9 shows the contour plot of \(|\text {Re}(\varvec{u}_h)|\) for the frequencies \(f = 4.00\) GHz and \(f = 8.00\) GHz. The numerical experiments are carried out on the mesh grid \(M_3\), with the polynomial order \(p = 8\). Here, we take \(N_t \simeq 2 \kappa a\), so that the analytical solution includes, in addition to the propagating wave modes \(( \nu \leqslant \kappa a) \), higher-order evanescent wave modes \( (\kappa a <\nu \leqslant 2 \kappa a) \).

A good quality result for \(f = 8.00\) GHz is obtained, with a low number of DoF per wavelength \(\tau _{\varLambda } =3.60\). It should be noted that in this case, elements of the mesh grid \(M_3\) may contain up to \(h/\varLambda \simeq 2.17\) wavelengths.

Fig. 9
figure 9

Wave scattering; contour plots of \(|\text {Re}(\varvec{E}_h)|\); \(h=0.125a\), \(p=8\) and \(N_t\simeq 2\kappa a\): (left) \(f = 4.00\) GHz, \(\varepsilon _2=3.89\times 10^{-4}\%\) and \(\tau _{\varLambda }=7.20\); (right) \(f = 8.00\) GHz, \(\varepsilon _2=0.17\%\) and \(\tau _{\varLambda }=3.60\)

7.3 Scattering of a Plane Wave by a Circular Dielectric Cylinder

7.3.1 Description of the Problem

In this last benchmark, we consider the scattering problem of an horizontal electromagnetic plane wave by a homogeneous dielectric cylinder, surrounded by an infinite homogeneous medium with material parameters that are different from those of the dielectric cylinder. The computational domain is chosen to be a disk of radius a representing the scatterer, surrounded by concentric annulus, of exterior radius \(R=2a\). The geometry of the problem is depicted in Fig. 10.

Fig. 10
figure 10

Schematic diagram defining the parameters of the wave transmission problem

The material properties of medium \(\varOmega _1= (a< r< R)\) are chosen such that \(\mu ^{(1)}=\mu \), \(\epsilon ^{(1)}=\epsilon \) and \(\sigma ^{(1)}=0\), where \(\mu \) and \(\epsilon \) are given in Table 2, while those of medium \(\varOmega _2= (r < a)\) are given by \(\mu ^{(2)}=n\mu \), \(\epsilon ^{(2)}=n\epsilon \) and \(\sigma ^{(2)}=0\), with \(n=2\) or 4. These yield a ratio \(\kappa _{2}/\kappa _{1}=n\), where \(\kappa _{i}=\omega \sqrt{\mu ^{(i)}\epsilon ^{(i)}}\) is the wavenumber in the medium \(\varOmega _i\), \(i=1,2\).

In this benchmark, the wave resolution is measured by the parameter

$$\begin{aligned} \tau _{\varLambda }= \sqrt{\frac{n_{\text {dof}}}{\frac{|\varOmega _1|}{\varLambda _1^2} +\frac{|\varOmega _2|}{\varLambda _2^2}}}, \end{aligned}$$
(6.6)

where \(\varLambda _i\) is the wavelength in the subdomain \(\varOmega _i\).

The incident plane wave is travelling from left to right in the horizontal direction along the \(x_1\)-axis. Compared to the conducting scatterer benchmark dealt with previously, part of the wave field can penetrate into the dielectric scatterer. Therefore, there is an internal field inside the scatterer which generates a standing wave.

For the TE polarization case, the total electric field analytical solution can be found in [76]. It is given in the polar coordinate system by

$$\begin{aligned} \varvec{E} = {\left\{ \begin{array}{ll} R_1 \varvec{e}_{r}+ T_1 \varvec{e}_{\theta } &{} \text {in}\quad \varOmega _1 \\ R_2\varvec{e}_{r}+ T_2 \varvec{e}_{\theta } &{} \text {in}\quad \varOmega _2, \end{array}\right. } \end{aligned}$$
(6.7)

where

$$\begin{aligned} R_1= & {} \frac{1}{\textrm{i} \omega \epsilon ^{(1)}} \sum _{\nu =0}^{+\infty }\nu \left[ (-\textrm{i})^\nu \varepsilon _\nu \frac{J_{\nu }\left( \kappa _{1} r\right) }{r} +A_{\nu } \frac{H_{\nu }^{(2)}(\kappa _1 r)}{r}\right] \sin {(\nu \theta )},\nonumber \\ T_1= & {} \frac{\kappa _{1}}{\textrm{i} \omega \epsilon ^{(1)}} \sum _{\nu =0}^{+\infty } \left[ (-\textrm{i})^\nu \varepsilon _\nu J_{\nu }^\prime \left( \kappa _{1} r\right) +A_\nu {H^{\prime }_{\nu }}^{(2)}(\kappa _1 r) \right] \cos {(\nu \theta )}, \nonumber \\ R_2= & {} \frac{1}{\textrm{i} \omega \epsilon ^{(2)}} \sum _{\nu =0}^{+\infty }\nu B_{\nu } \frac{J_{\nu }(\kappa _2 r)}{r} \sin {(\nu \theta )},\qquad \qquad T_2=\frac{\kappa _2}{\textrm{i} \omega \epsilon ^{(2)}} \sum _{\nu =0}^{+\infty } B_\nu J_{\nu }^{\prime }(\kappa _2 r) \cos {(\nu \theta )}.\nonumber \\ \end{aligned}$$
(6.8)

The amplitude coefficients \(A_\nu \) and \(B_\nu \) in equations (6.8) are to be evaluated by using the following transmission conditions at the interface \(\varSigma \):

$$\begin{aligned} \left. \varvec{E}\right| _{\varOmega _1} \cdot \varvec{t}&=\left. \varvec{E}\right| _{\varOmega _2} \cdot \varvec{t}\quad \qquad \text {and}&\frac{1}{\mu _1}{\text {curl}} \left. \varvec{E}\right| _{\varOmega _1}&=\frac{1}{\mu _2}{\text {curl}} \left. \varvec{E}\right| _{\varOmega _2}&\text {on}\quad \varSigma . \end{aligned}$$

As before, the above infinite series are truncated to a finite number \(N_t\simeq \kappa a\) of terms. Here, computations are performed on the interface fitted mesh grids depicted in Fig. 11.

Fig. 11
figure 11

Typical interface fitted mesh grids; from left to right: \(M_1\) \((h=0.375a)\), \(M_{3}\) \((h=0.125a)\) and \(M_{6}\) \((h=0.0625a)\)

Table 5 BBFEM versus BBFEM\(_e\); h-refinement, for different values of the polynomial order p, with \(\kappa _{2}/\kappa _{1}=2\): (a) \(f=1.00\) GHz, (b) \(f=2.00\) GHz, (c) \(f=4.00\) GHz and (d) \(f=8.00\) GHz
Table 6 BBFEM versus BBFEM\(_e\); h-refinement, for different values of the polynomial order p, with \(\kappa _{2}/\kappa _{1}=4\): (a) \(f=1.00\) GHz, (b) \(f=2.00\) GHz, (c) \(f=4.00\) GHz and (d) \(f=8.00\) GHz

This benchmark was designed to demonstrate the ability of BBFEM in efficiently solving wave transmission problems with high wave speed contrast and a curved interior interface.

7.3.2 Comparison of BBFEM Against BBFEM\(_e\)

To further assess the performance of BBFEM\(_e\) in terms of accuracy and conditioning, a comparison study against BBFEM is carried out. Herein, the numerical experiments are performed on the mesh grids shown in Fig. 11. Table 5 reports the wave resolution \(\tau _{\varLambda }\), the \(L_2\) error \(\varepsilon _2\) and condition number \(\kappa _A\), when the ratio \(\kappa _{2}/\kappa _{1}=2\), at the frequencies \(f=1.00\) GHz, \(f=2.00\) GHz, \(f=4.00\) GHz and \(f=8.00\) GHz. Once again, a similar trend can be seen from the results of Table 5 compared to those of the previous benchmarks.

The results corresponding to the ratio \(\kappa _{2}/\kappa _{1}=4\) are reported in Table 6. Up to the frequency \(f=4.00\) GHz, BBFEM\(_e\) yields a reduction of the condition number by up to two orders of magnitude, as the polynomial order p increases (see Table 6(a), (b) and (c)). For the target frequency \(f=8.00\) GHz, the polynomial order is further increased to achieve accuracy below 1%. This leads to high levels of the condition number \(\kappa _A\) for both Bernstein–Bézier \(H({\text {curl}})\) bases. It should be noted that elements of the finest mesh \(M_6\) used in such a case may contain up to \(h/\varLambda _2\simeq 4.42\) wavelengths. The results of Table 6(d) show that BBFEM and BBFEM\(_e\) yield comparable accuracies and almost the same condition numbers.

Figure 12 shows the contour plot of \(|\text {Re}(\varvec{u}_h)|\) at \(f = 4.00\) GHz for both ratios \(\kappa _2/\kappa _1 = 2\) and \(\kappa _2/\kappa _1 = 4\), where \(p=10\) and \(N_t\simeq \kappa _2 a\). Computations are carried out on mesh grids \(M_2\) and \(M_4\), where \(h = 0.187 a\) and \(h = 0.094a\), respectively.

Fig. 12
figure 12

Wave transmission problem; contour plots of \(|\text {Re}(\varvec{E}_h)|\) at \(f = 4.00\,\text {GHz}\), with \(p=10\) and \(N_t\simeq \kappa _2 a\): (left) \(\kappa _2/\kappa _1=2\), mesh grid \(M_2\), \(\varepsilon _2=0.72\%\) and \(\tau _{\varLambda }=4.12\); (right) \(\kappa _2/\kappa _1=4\), mesh grid \(M_4\), \(\varepsilon _2=0.85\%\) and \(\tau _{\varLambda }=4.70\)

Good accuracies are achieved, with only \(\tau _{\varLambda }=4.12\) and \(\tau _{\varLambda }=4.70\), on computational meshes capable to contain multi-wavelength sized elements such that \(h/\varLambda _{2}\simeq 3.04 \) and \(h/\varLambda _{2}\simeq 3.52\), respectively.

8 Conclusions

In this paper, BBFEM has been successfully implemented for the solution of time-harmonic Maxwell wave problems, on unstructured triangular mesh grids. An enhanced \(H({\text {curl}})\) FE basis, with improved conditioning, is proposed by incorporating high-order Whitney functions. Static condensation is performed element-wise in order to efficiently solve the resulting condensed linear system.

The performance of BBFEM has been evaluated, in terms of accuracy conditioning and wave resolution, by considering three benchmark tests. As expected, the h- and p-convergence studies confirmed that the suggested method enables the recovery of the algebraic and exponential convergence rates, respectively. Moreover, p-BBFEM has shown to be more effective in reducing the pollution effect and capturing high-order evanescent wave modes involved in the wave scattering problems. Furthermore, the high geometric flexibility of BBFEM in combination with a blending map method enables to represent computational domains including curved interfaces with very high accuracy.

Future work should take into account hp-adaptivity to further improve the computational efficiency as well as optimal complexity algorithms to speed up the assembly process and take full advantage of BBFEM. Other possible potential research directions include the use of a robust preconditioned iterative method to solve the resulting linear systems, which are typically complex valued and tend to be highly indefinite at higher frequencies. Nonoverlapping domain decomposition methods have demonstrated to provide efficient iterative algorithms for the solution of the time-harmonic Maxwell’s equations [77,78,79]. It is believed that the modified basis will help in enhancing the convergence of such iterative algorithms. Based on these encouraging results, it is also planned to extend the method to solve 3D Maxwell wave problems with material discontinuity, in the presence of curved interface, and anisotropy.