Justin,
> I am interested in solving vector valued pdes on 2d surfaces embedded in 3d space.
> More specifically the vectors lie in the tangent space, such that they only
> have 2 components rather than 3.
> Here I have a few questions:
>
> 1. Say I want to visualize the solution, i would expect that i have to somehow
> use the mapping from the reference cell to the real cell to obtain the
> solution vector (that is tangent to the surface) as a <1,3> Tensor. What is
> the canonical way of doing so?
> Attached I have a mimimum example of how I tried to do this using the
> DataOut<dim, DoFHandler<dim, spacedim> class, which fails if i set the
> FESystem to have only 2 components. It fails at the call DataOut<dim,
> DoFHandler<dim, spacedim>>::build_patches(mapping) with the following error:
> [...]
The way I would do this is to use a class derived from DataPostprocessorVector
that blows up the 2-component vector to a 3-component vector that happens to
be tangential to the manifold. You could be able to do this by using the
normal vector to the manifold at the point where you evaluate the solution.
> 2. Is it actually a good idea to represent a solution vector that should be
> tangent to the surface with a 2-dimensional finite element or should one
> rather use a 3-dim finite element and enforce the constraint that the vector
> lies in the tangent plane on every element using the facilities of the
> constraint matrix for every element?
That seems cumbersome and unnecessarily expensive. I think what you're doing
is useful as long as your manifold forms a graph over the 2d plane. It will of
course fail if your manifold is no longer a graph, e.g., if it is a sphere.
As for literature, you may want to look into some of the papers by Andrea
Bonito. I don't know if he has examples, but his works comes closest I think.
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email:
bang...@colostate.edu
www:
http://www.math.colostate.edu/~bangerth/