Representing/Visualizing tangent vectors of codimension one manifolds

26 views
Skip to first unread message

justin....@gmail.com

unread,
May 15, 2017, 10:14:31 AM5/15/17
to deal.II User Group
Hi all,

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:

An error occurred in line <1240> of file </home/justin/PDE/dealii-8.5.0/source/numerics/data_out_dof_data.cc> in function
    std::vector<std::tuple<unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > dealii::DataOut_DoFData<DoFHandlerType, patch_dim, patch_space_dim>::get_vector_data_ranges() const [with DoFHandlerType = dealii::DoFHandler<2, 3>; int patch_dim = 2; int patch_space_dim = 3]
The violated condition was:
    i+patch_space_dim <= (*d)->n_output_variables
Additional information:
    When declaring that a number of components in a data set to be output logically form a vector instead of simply a set of scalar fields, you need to specify this for all relevant components. Furthermore, vectors must always consist of exactly <dim> components. However, the vector component at position 0 with name <test> does not satisfy these conditions.

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?

I have read "Tools for the Solution of PDEs Defined on Curved Manifolds with the deal.II Library" by Antonio DeSimone, Luca Heltai and Cataldo Manigrasso and the step-34 tutorial but in both publications only scalar problems are considered. It would probably also be very helpful to me if somebody could point me towards some publication discussing a vector valued problem on a codimension one manifold - if at all possible, I have not found anything helpful sofar.

Thanks and regards,
Justin
minimumexample.cc

Wolfgang Bangerth

unread,
May 18, 2017, 12:15:40 PM5/18/17
to dea...@googlegroups.com

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/

Reply all
Reply to author
Forward
0 new messages