DeRham sequences

here without boundary conditions

\mathbb{R} \hookrightarrow \Hgrad  \xrightarrow{\quad \Grad \quad}  \Hcurl  \xrightarrow{\quad \Curl \quad}   \Hdiv  \xrightarrow{\quad \Div \quad}  \Ltwo  \xrightarrow{\quad} 0

Pullbacks

In the case where the physical domain \Omega := \mathcal{F}(\hat{\Omega}) is the image of a logical domain \hat{\Omega} by a smooth mapping \mathcal{F} (at least \mathcal{C}^1), we have the following parallel diagrams

\begin{array}{ccccccc}
\Hgrad & \xrightarrow{\quad \Grad \quad} & \Hcurl & \xrightarrow{\quad \Curl \quad} &  \Hdiv & \xrightarrow{\quad \Div \quad} & \Ltwo \\
\igrad \Bigg\uparrow   &     & \icurl \Bigg\uparrow  &   & \idiv \Bigg\uparrow &  & \iltwo \Bigg\uparrow       \\
\HgradLogical & \xrightarrow{\quad \Grad \quad} & \HcurlLogical & \xrightarrow{\quad \Curl \quad} &  \HdivLogical & \xrightarrow{\quad \Div \quad} & \LtwoLogical \\
%
\end{array}

Where the mappings \igrad, \icurl, \idiv and \iltwo are called pullbacks and are given by

\phi (x) :=& \igrad \hat{\phi} (\hat{x}) = \hat{\phi}(\mathcal{F}^{-1}(x))
\\
\Psi (x) :=& \icurl \hat{\Psi} (\hat{x}) = \left( D \mathcal{F} \right)^{-T} \hat{\Psi}(\mathcal{F}^{-1}(x))
\\
\Phi (x) :=& \idiv \hat{\Phi} (\hat{x})  = \frac{1}{J} D \mathcal{F} \hat{\Phi}(\mathcal{F}^{-1}(x))
\\
\rho (x) :=& \iltwo \hat{\rho} (\hat{x}) = \hat{\rho}(\mathcal{F}^{-1}(x))

where D \mathcal{F} is the jacobian matrix of the mapping \mathcal{F}.

Note

The pullbacks \igrad, \icurl, \idiv and \iltwo are isomorphisms between the corresponding spaces.

Discrete Spaces

Let us suppose that we have a sequence of finite subspaces for each of the spaces involved in the DeRham sequence. The discrete DeRham sequence stands for the following commutative diagram between continuous and discrete spaces

\begin{array}{ccccccc}
\Hgrad & \xrightarrow{\quad \Grad \quad} & \Hcurl & \xrightarrow{\quad \Curl \quad} &  \Hdiv & \xrightarrow{\quad \Div \quad} & \Ltwo \\
\Pigrad \Bigg\downarrow   &     & \Picurl \Bigg\downarrow  &   & \Pidiv \Bigg\downarrow &  & \Piltwo \Bigg\downarrow       \\
\Vgrad & \xrightarrow{\quad \Grad \quad} & \Vcurl & \xrightarrow{\quad \Curl \quad}  & \Vdiv & \xrightarrow{\quad \Div \quad} & \Vltwo    \\
%
\end{array}

When using a Finite Elements methods, we often deal with a reference element, and thus we need also to apply the pullbacks on the discrete spaces. In fact, we have again the following parallel diagram

\begin{array}{ccccccc}
\Vgrad & \xrightarrow{\quad \Grad \quad} & \Vcurl & \xrightarrow{\quad \Curl \quad} &  \Vdiv & \xrightarrow{\quad \Div \quad} & \Vltwo \\
\igrad \Bigg\uparrow   &     & \icurl \Bigg\uparrow  &   & \idiv \Bigg\uparrow &  & \iltwo \Bigg\uparrow       \\
\VgradLogical & \xrightarrow{\quad \Grad \quad} & \VcurlLogical & \xrightarrow{\quad \Curl \quad} &  \VdivLogical & \xrightarrow{\quad \Div \quad} & \VltwoLogical \\
%
\end{array}

Since, the pullbacks are isomorphisms in the previous diagram, we can define a one-to-one correspondance

\phi :=& \igrad \hat{\phi}, \quad \phi \in \Vgrad, \hat{\phi} \in \VgradLogical
\\
\Psi :=& \icurl \hat{\Psi}, \quad \Psi \in \Vcurl, \hat{\Psi} \in \VcurlLogical
\\
\Phi :=& \idiv \hat{\Phi}, \quad \Phi \in \Vdiv, \hat{\Phi} \in \VdivLogical
\\
\rho :=& \iltwo \hat{\rho}, \quad \rho \in \Vltwo, \hat{\rho} \in \VltwoLogical

We have then, the following results

\Grad \phi =& \icurl \Grad \hat{\phi} , \quad \phi \in \Vgrad
\\
\Curl \Psi =& \idiv \Curl \hat{\Psi} , \quad \Psi \in \Vcurl
\\
\Div \Phi =& \iltwo \Div \hat{\Phi} , \quad \Phi \in \Vdiv

Projectors

In some cases, one may need to define projectors on smooth functions

\begin{array}{ccccccc}
\Cinfinity & \xrightarrow{\quad \Grad \quad} & \Cinfinity & \xrightarrow{\quad \Curl \quad}  & \Cinfinity & \xrightarrow{\quad \Div \quad} & \Cinfinity    \\
\Pigrad \Bigg\downarrow   &     & \Picurl \Bigg\downarrow  &   & \Pidiv \Bigg\downarrow &  & \Piltwo \Bigg\downarrow       \\
\Vgrad & \xrightarrow{\quad \Grad \quad} & \Vcurl & \xrightarrow{\quad \Curl \quad}  & \Vdiv & \xrightarrow{\quad \Div \quad} & \Vltwo    \\
\end{array}

Discrete DeRham sequence for B-Splines

Buffa et al [BSV09] show the construction of a discrete DeRham sequence using B-Splines, (here without boundary conditions)

\begin{array}{ccccccc}
\Hgrad & \xrightarrow{\quad \Grad \quad} & \Hcurl & \xrightarrow{\quad \Curl \quad}  & \Hdiv & \xrightarrow{\quad \Div \quad} & \Ltwo    \\
\Pigrad \Bigg\downarrow   &     & \Picurl \Bigg\downarrow  &   & \Pidiv \Bigg\downarrow &  & \Piltwo \Bigg\downarrow       \\
\Vgradspline &  \xrightarrow{\quad \Grad \quad}&   \Vcurlspline &  \xrightarrow{\quad \Curl \quad}  &  \Vdivspline&   \xrightarrow{\quad \Div \quad} &  \Vltwospline \\
\end{array}

1d case

  1. DeRham sequence is reduced to

\mathbb{R} \hookrightarrow
\underbrace{\mathcal{S}^{p}}_{\VgradLogical}  \xrightarrow{\quad \Grad \quad}
\underbrace{\mathcal{S}^{p-1}}_{\VltwoLogical}  \xrightarrow{\quad} 0

  1. The recursion formula for derivative writes

{N_i^p}'(t)=D_i^{p}(t)-D_{i+1}^{p}(t)
\quad \mbox{where} \quad
D_{i}^{p}(t) = \frac{p}{t_{i+p+1}-t_i}N_i^{p-1}(t)

  1. we have \mathcal{S}^{p-1} = \mathbf{span}\{ N_i^{p-1}, 1 \leq i \leq n-1 \} = \mathbf{span}\{ D_i^p, 1 \leq i \leq n-1 \} which is a change of basis as a diagonal matrix
  2. Now if u \in S^p, with and expansion u = \sum_i u_i N_i^p, we have

\begin{align*}
  u^{\prime} = \sum_i u_i \left( N_i^p \right)^{\prime} = \sum_i (-u_{i-1} + u_i) D_i^p
%  \label{}
  \end{align*}

  1. If we introduce the B-Splines coefficients vector \mathbf{u} := \left( u_i \right)_{1 \leq i \leq n} (and \mathbf{u}^{\star} for the derivative), we have

\mathbf{u}^{\star} = D \mathbf{u}

where D is the incidence matrix (of entries -1 and +1)

Discrete derivatives:

\mathcal{G} = D

2d case

In 2d, the are two De-Rham complexes:

\begin{array}{ccccc}
\Hgrad & \xrightarrow{\quad \Grad \quad} & \Hcurl & \xrightarrow{\quad \Rots \quad} & \Ltwo \\
\Pigrad \Bigg\downarrow   &     & \Picurl \Bigg\downarrow  &   & \Piltwo \Bigg\downarrow   \\
\Vgrad & \xrightarrow{\quad \Grad \quad} & \Vcurl & \xrightarrow{\quad \Rots \quad} & \Vltwo \\
\end{array}

and

\begin{array}{ccccc}
\Hgrad & \xrightarrow{\quad \Curl \quad} & \Hdiv & \xrightarrow{\quad \Div \quad} & \Ltwo \\
\Pigrad \Bigg\downarrow   &     & \Pidiv \Bigg\downarrow  &   & \Piltwo \Bigg\downarrow   \\
\Vgrad & \xrightarrow{\quad \Grad \quad} & \Vdiv & \xrightarrow{\quad \Div \quad} & \Vltwo \\
\end{array}

Let I be the identity matrix, we have

Discrete derivatives:

\mathcal{G} =
\begin{pmatrix}
  D \otimes I
  \\
  I \otimes D
\end{pmatrix}

\mathcal{C} =
\begin{pmatrix}
  I \otimes D
  \\
- D \otimes I
\end{pmatrix}
\quad \mbox{[scalar curl],} \quad
\mathcal{C} =
\begin{pmatrix}
- I \otimes D
 &
  D \otimes I
\end{pmatrix}
\quad \mbox{[vectorial curl]}

\mathcal{D} =
\begin{pmatrix}
  D \otimes I
 &
  I \otimes D
\end{pmatrix}

3d case

Discrete derivatives:

\mathcal{G} =
\begin{pmatrix}
  D \otimes I \otimes I
  \\
  I \otimes D \otimes I
  \\
  I \otimes I \otimes D
\end{pmatrix}

\mathcal{C} =
\begin{pmatrix}
  0    &    - I \otimes I \otimes D     &     I \otimes D \otimes I
  \\
  I \otimes I \otimes D   &    0   &   - D \otimes I \otimes I
  \\
  - I \otimes D \otimes I  & D \otimes I \otimes I & 0
\end{pmatrix}

\mathcal{D} =
\begin{pmatrix}
  D \otimes I \otimes I
  &
  I \otimes D \otimes I
  &
  I \otimes I \otimes D
\end{pmatrix}

Note

From now on, we will denote the discrete derivative by \mathbb{D}_k for the one going from V_k to V_{k+1}.

Algebraic identities

Let us consider the discretization of the exterior derivative

\omega^{k+1} = \diff  \omega^k

multiplying by a test function \eta^{k+1} and integrating over the whole computation domain, we get

\left( \eta^{k+1}, \omega^{k+1} \right)_{k+1} = \left( \eta^{k+1}, \diff \omega^{k} \right)_{k+1}

let E^{k+1}, W^{k} and W^{k+1} be the vector representation of \eta^{k+1}, \omega^{k} and \omega^{k+1}. We get

{E^{k+1}}^T M_{k+1} W^{k+1} = {E^{k+1}}^T D_{k+1,k} W^{k}

where

D_{k+1,k} = \left( \left( \eta^{k+1}_i, \diff \omega^{k}_j \right)_{k+1} \right)_{i,j}

On the other hand, using the coderivative, we get

\left( \eta^{k+1}, \omega^{k+1} \right)_{k+1} = \left( \delta \eta^{k+1}, \omega^{k} \right)_{k} + BC

Let us now introduce the following matrix

D_{k,k+1} = \left( \left( \delta \eta^{k+1}_i, \omega^{k}_j \right)_{k} \right)_{i,j}

hence,

{E^{k+1}}^T D_{k,k+1} W^{k} = \left( \mathbb{D}^{\star}_{k+1} E^{k+1} \right)^T M_{k} W^{k}

Therefor, we have the following important result

Proposition:

  • D_{k+1,k} = D_{k,k+1} + BC
  • D_{k+1,k} = M_{k+1} \mathbb{D}^T_k
  • D_{k,k+1} = {\mathbb{D}^{\star}_{k+1}}^T M_{k}

References

[BSV09]A. Buffa, G. Sangalli, and R. Vazquez. Isogeometric analysis in electromagnetics: b-splines approximation. Comput. Methods Appl. Mech. Engrg, 199:1143–1152, 2009.