(Rh) -- (X0h);
\path[draw, arr] (X3h) -- (Zh);
%
\path[draw, arr] (X0) -- (X0h) node [midway, anchor=west, yshift=0.8mm] {$\Pibr^0$};
\path[draw, arr] (X1) -- (X1h) node [midway, anchor=west, yshift=0.8mm] {$\Pibr^1$};
\path[draw, arr] (X2) -- (X2h) node [midway, anchor=west, yshift=0.8mm] {$\Pibr^2$};
\path[draw, arr] (X3) -- (X3h) node [midway, anchor=west, yshift=0.8mm] {$\Pibr^3$};
\end{tikzpicture}
%%\includegraphics{img/de_rham/de_rham_2D_grad_rot_cont}\fsp,
\end{split}$$ The discrete spaces in  are built using sequences of two-dimensional Cartesian spaces defined on $\srfdomflat$. We therefore start introducing the standard two-dimensional Cartesian spaces with the corresponding discrete counterparts. We first introduce the basic definitions and the necessary assumptions on the discrete spaces, postponing the explicit definition of these to the following section. Let the standard spaces of square-integrable functions in Cartesian coordinates be defined as $$\begin{alignedat}{2}
&\Lsp^2(\srfdomflat) &&= \parG{u: \int_\srfdomflat
    u^2\,\dd\rho \dd z < \infty}~, \\ 
&\Lsp^2(\srfdomflat;\, \R^2) &&= \parG{\uv:
    \int_\srfdomflat\norm{\uv}_e^2\, \dd\rho \dd z < \infty}~, 
\end{alignedat}$$ along with the associated Hilbert spaces $\Hsp^s$, which is the space of functions in $\Lsp^2$ such that the weak derivatives up to order $s$ belong to $\Lsp^2$. We also define: $$\label{eq:cart_sps}
\begin{alignedat}{3}
&\CaSpB^{0} && = \Hsp^1(\srfdomflat)&& = \parG{u \in
    \Lsp^2(\srfdomflat): \gradt u \in \Lsp^2(S)},\\ 
&\CaSpB^{1} && = \Hsp(\curltsc;\,\srfdomflat) &&= \parG{\uv \in
    \Lsp^2(\srfdomflat;\,\R^2): \curltsc \uv \in \Lsp^2(\srfdomflat)},\\ 
&\CaSpB^{1*} && = \Hsp(\divergt;\,\srfdomflat)&& 