Describe the current issue
After some thorough documentation research (with the help of Gemini) I came to learn that there is no native implementation of finite elements on the boundary of the domain. These are of particular interests in variational formulations in which one of the unknowns is sought in $H^{1/2}(\partial\Omega)$ or $H^{-1/2}(\partial\Omega)$, or even more generally, in $H^{1/2}(\Gamma_D)$ or $H^{-1/2}_{00}(\Gamma_N)$.
EDIT: As a toy example consider the problem
$-\Delta u = f$ on $\Omega$
$u = u_D$ on $\partial\Omega$.
Let $\gamma_0$ denote the trace operator from $H^1(\Omega)$ onto $H^{1/2}(\partial\Omega)$. Upon defining $\lambda := -\partial_\nu u \rvert_{\partial\Omega} \in H^{-1/2}(\partial\Omega)$ one arrives to the following variational formulation: Find $u \in H^1(\Omega)$ and $\lambda \in H^{-1/2}(\partial\Omega)$ such that
$\int_\Omega \nabla u \cdot \nabla v + \langle \lambda, v \rangle_{\partial\Omega} = \int_\Omega f v, \quad \forall v \in H^1(\Omega)$
$\langle \eta, \gamma_0(u) \rangle_{\partial\Omega} = \langle \eta, u_D \rangle_{\partial\Omega}, \quad \forall \eta \in H^{-1/2}(\partial\Omega)$.
Describe the solution you'd like
It would be great to have the equivalent of FacetFESpace, definedon or definedonbound from ngsolve https://docu.ngsolve.org/nightly/i-tutorials/unit-2.7-hybrid/hybrid.html or emptymesh from FreeFem++ https://doc.freefem.org/documentation/mesh-generation.html#d-finite-element-space-on-a-boundary.
Describe alternatives you've considered
I am aware of Nitsche method. However, for highly complex systems (e.g., coupled nonlinear PDEs) devising a consistent Nitsche formulation is usually very complicated.
EDIT: I forgot to mention that I have tried with submeshes but without success. The crux of the problem is that Firedrake does not allow creating a MixedFunctionSpace from two spaces that are defined on different meshes. Consequently, I don't know how to implement the simple toy problem from above.
Describe the current issue$H^{1/2}(\partial\Omega)$ or $H^{-1/2}(\partial\Omega)$ , or even more generally, in $H^{1/2}(\Gamma_D)$ or $H^{-1/2}_{00}(\Gamma_N)$ .
After some thorough documentation research (with the help of Gemini) I came to learn that there is no native implementation of finite elements on the boundary of the domain. These are of particular interests in variational formulations in which one of the unknowns is sought in
EDIT: As a toy example consider the problem
Let$\gamma_0$ denote the trace operator from $H^1(\Omega)$ onto $H^{1/2}(\partial\Omega)$ . Upon defining $\lambda := -\partial_\nu u \rvert_{\partial\Omega} \in H^{-1/2}(\partial\Omega)$ one arrives to the following variational formulation: Find $u \in H^1(\Omega)$ and $\lambda \in H^{-1/2}(\partial\Omega)$ such that
Describe the solution you'd like
It would be great to have the equivalent of
FacetFESpace,definedonordefinedonboundfrom ngsolve https://docu.ngsolve.org/nightly/i-tutorials/unit-2.7-hybrid/hybrid.html oremptymeshfrom FreeFem++ https://doc.freefem.org/documentation/mesh-generation.html#d-finite-element-space-on-a-boundary.Describe alternatives you've considered
I am aware of Nitsche method. However, for highly complex systems (e.g., coupled nonlinear PDEs) devising a consistent Nitsche formulation is usually very complicated.
EDIT: I forgot to mention that I have tried with submeshes but without success. The crux of the problem is that Firedrake does not allow creating a
MixedFunctionSpacefrom two spaces that are defined on different meshes. Consequently, I don't know how to implement the simple toy problem from above.