The de`Rham complex

65. The de`Rham complex#

The spaces \(H^1\), \(H(\operatorname{curl})\), \(H(\operatorname{div})\), and \(L_2\) form a sequence:

\[ \begin{array}{ccccccc} H^1 & \stackrel{\nabla}{\longrightarrow} & H(\operatorname{curl}) & \stackrel{\operatorname{curl}}{\longrightarrow} & H(\operatorname{div}) & \stackrel{\operatorname{div}}{\longrightarrow} & L^2 \end{array} \]

Since \(\nabla H^1 \subset [L_2]^3\), and \(\operatorname{curl} \nabla = 0\), the gradients of \(H^1\) functions belong to \(H(\operatorname{curl})\). Similar, since \(\operatorname{curl} H(\operatorname{curl}) \subset [L_2]^3\), and \(\operatorname{div} \operatorname{curl} = 0\), the \(\operatorname{curl}\)s of \(H(\operatorname{curl})\) functions belong to \(H(\operatorname{div})\).

The sequence is an exact sequence. This means that the kernel of the right differential operator is exactly the range of the left one (on simply connected domains). We have used this property already in the analysis of the mixed system.

The same property holds on the discrete level: Let

  • \(W_h\) be the nodal finite element sub-space of \(H^1\)

  • \(V_h\) be the Nédélec (edge) finite element sub-space of \(H(\operatorname{curl})\)

  • \(Q_h\) be the Raviart-Thomas (face) finite element sub-space of \(H(\operatorname{div})\)

  • \(S_h\) be the piece-wise constant finite element sub-space of \(L_2\)

The finite element spaces form an exact sequence

\[ \begin{array}{ccccccc} W_h & \stackrel{\nabla}{\longrightarrow} & V_h & \stackrel{\operatorname{curl}} {\longrightarrow} & Q_h & \stackrel{\operatorname{div}}{\longrightarrow} & S_h \end{array} \]
Alternative text

This combination of finite elements allow to discretize Stokes’ theorem and Gauss’ theorem exactly:

  • Discretize the vector-potential \(A\) be edge elements, i.e. \(\int_E A_\tau\) is defined for every edge. Then the face integrals of the normal component of the \(\operatorname{curl} A\) can be evaluated as:

    \[ \int_F (\operatorname{curl} A)_n = \int_{\partial F} A_{\tau} = \sum_{E \subset \partial F} \int_E A_{\tau} \]

    \(B_h = \operatorname{curl} A_h\) lies in the Raviart-Thomas (face element) space.

  • Discretize a current \(j\) by face elements, i.e. \(\int_F j_n\) is defined for every face. Then the cell integral of \(\operatorname{div} j\) can be evaluated as:

    \[ \int_T \operatorname{div} j = \int_{\partial T} j_n = \sum_{F \subset \partial T} \int_F j_n \]

    \(\dot q_h = \operatorname{div} j_h\) lies in the element-wise constant (cell element) \(L_2\)-space.

Now, we discretize the mixed formulation of magnetostatics by choosing edge-finite elements for \(H(\operatorname{curl})\), and nodal finite elements for \(H^1\): Find \(A_h \in V_h\) and \(\varphi_h \in W_h\) such that

\[\begin{equation*} \begin{array}{ccccll} \int \mu^{-1} \operatorname{curl} A_h \, \cdot \operatorname{curl} v_h \, dx & + & \int \nabla \varphi_h \cdot v_h \, dx & = & \int j \cdot v_h \, dx \qquad & \forall \, v_h \in V_h \\[0.5em] \int A_h \cdot \nabla \psi_h \, dx & & & = & 0 & \forall \, \psi_h \in W_h \end{array} \end{equation*}\]

The stability follows (roughly) from the discrete sequence property. The verification of the LBB condition is the same as on the continuous level. The kernel of the \(a(.,.)\)- form are the discrete gradients, the kernel of the \(b(.,.)\)-form is orthogonal to the gradients. This implies solvability. The discrete kernel-coercivity (with \(h\)-independent constants) holds true, but requires a nontrivial proof.

The exact sequences on the continuous level and on the discrete level are connected via the de’Rham complex: Choose the canonical interpolation operators (vertex-interpolation \(I^W\), edge-interpolation \(I^V\), face-interpolation \(I^Q\), \(L_2\)-projection \(I^S\)). This relates the continuous level to the discrete level:

\[\begin{split} \begin{array}{ccccccc} H^1 & \stackrel{\nabla}{\longrightarrow} & H(\operatorname{curl}) & \stackrel{\operatorname{curl}}{\longrightarrow} & H(\operatorname{div}) & \stackrel{\operatorname{div}}{\longrightarrow} & L^2 \\[8pt] \Big\downarrow \vcenter{ \rlap{I^W}} & & \Big\downarrow \vcenter{ \rlap{I^V}} & & \Big\downarrow \vcenter{ \rlap{I^Q}} & & \Big\downarrow \vcenter{ \rlap{I^S}} \\[8pt] W_h & \stackrel{\nabla}{\longrightarrow} & V_h & \stackrel{\operatorname{curl}}{\longrightarrow} & Q_h & \stackrel{\operatorname{div}}{\longrightarrow} & S_h \:. \\[8pt] \end{array} \end{split}\]

The de’Rham complex is a commuting diagram:

\[ I^V \nabla = \nabla I^W \qquad I^Q \operatorname{curl} = \operatorname{curl} I^V \qquad I^S \operatorname{div} = \operatorname{div} I^Q \]

Proof: We prove the first part. Note that the ranges of both, \(\nabla I^W\) and \(I^V \nabla\), are in \(V_h\). Two functions in \(V_h\) coincide if and only if all functionals coincide. It remains to prove that

\[ \int_E (\nabla I^W w) \cdot \tau \, ds = \int_E (I^V \nabla w)\cdot \tau \, ds \]

Per definition of the interpolation operator \(I^V\) there holds

\[ \int_E (I^V \nabla w)\cdot \tau \, ds = \int_E \nabla w \cdot \tau \, ds \]

Integrating the tangential derivative gives the difference

\[ \int_E \nabla w \cdot \tau \, ds = \int_E \frac{\partial w}{\partial \tau} \, ds = w(E^2) - w(E^1) \]

Starting with the left term, and using the property of the nodal interpolation operator, we obtain

\[ \int_E (\nabla I^W w) \cdot \tau \, ds = (I^W w)(E^2) - (I^W w)(E^1) = w(E^2) - w(E^1). \]

We have already proven the commutativity of the \(H(\operatorname{div})-L_2\) part of the diagram. The middle one involves Stokes’{} theorem. \(\Box\)

This is the key for interpolation error estimates. E.g., in \(H(\operatorname{curl})\) there holds

\[\begin{eqnarray*} \| u - I^V u \|_{H(\operatorname{curl})}^2 & = & \| u - I^V u \|_{L_2}^2 + \| \operatorname{curl} (I-I^V) u \|_{L_2}^2 \\ & = & \| u - I^V u \|_{L_2}^2 + \| (I-I^Q) \operatorname{curl} u \|_{L_2}^2 \\ & \preceq & h^2 \, \| u \|_{H^1}^2 + h^2 \| \operatorname{curl} u \|_{H^1}^2 \end{eqnarray*}\]

Since the estimates for the \(L_2\)-term and the \(\operatorname{curl}\)-term are separate, one can also scale each of them by an arbitrary coefficient.

The sequence is also compatible with transformations. Let \(\Phi : \widehat T \rightarrow T\) be an (element) transformation, with \(F = \Phi^\prime\). Choose

\[\begin{eqnarray*} w(\Phi(x)) & = & \widehat w(x) \\ v(\Phi(x)) & = & F^{-T} \widehat v(x) \qquad \qquad \quad \, \mbox{(covariant transformation)}\\ q(\Phi(x)) & = & (\operatorname{det}{F})^{-1} (F) \widehat q(x) \qquad \mbox{(Piola-transformation)} \\ s(\Phi(x)) & = & (\operatorname{det}{F})^{-1} \widehat s(x) \end{eqnarray*}\]

Then

\[\begin{eqnarray*} \widehat v = \nabla \widehat w & \Rightarrow & v = \nabla \, w \\ \widehat q = \operatorname{curl} \widehat v & \Rightarrow & q = \operatorname{curl} \, v \\ \widehat s = \operatorname{div} \widehat q & \Rightarrow & s = \operatorname{div} \, q \end{eqnarray*}\]

Using these transformation rules, the implementation of matrix assembling for \(H(\operatorname{curl})\)-equations is very similar to the assembling for \(H^1\) problems (mapping to reference element).