Raviart-Thomas elements on shells in 3D

63 views
Skip to first unread message

M. Bakry

unread,
Nov 3, 2023, 5:06:26 PM11/3/23
to deal.II User Group
Dear all,

Raviart-Thomas elements are often used in the framework of boundary integral equations in electromagnetics, for example when solving the Electric Field Integral Equation (see this reference, p. 244 for example). The FE spaces are boundary spaces (see Tutorial 34 for example). I noticed that boundary RT elements are not available (codimension 1 is not implemented) and I have two questions
- looking at the implementation of the FE_RaviartThomas class, the MappingKind is 'mapping_raviart_thomas' but there also exists 'mapping_piola'. Why is one chosen over the other ? I had the impression that the evaluation of the shape functions on the "space" elements was performed by applying the Piola transform to the shape function evaluated on the reference element. Is there something more which is done by the 'mapping_raviart_thomas' ?
- it seems that the Piola transform is implemented for the 'codimension=1' case (according to the templatization). Could codim=1 RT elements be implemented by computing the RT on the reference quad then by applying the corresponding Piola transform ?

Thank you in advance for your answer(s)

Best regards,
M. Bakry

Wolfgang Bangerth

unread,
Nov 3, 2023, 10:45:33 PM11/3/23
to dea...@googlegroups.com
On 11/3/23 15:06, M. Bakry wrote:
> - it seems that the Piola transform is implemented for the 'codimension=1'
> case (according to the templatization). Could codim=1 RT elements be
> implemented by computing the RT on the reference quad then by applying the
> corresponding Piola transform ?

Marc -- quite possibly. The implementation of the RT element predates the
codimension-1 functionality by several years, and I suspect that the major
issue is that nobody has taken the time to convert the implementation to
support surfaces.

I will note that unless you have a C^1 manifold description -- for example if
you try to describe a surface by using bilinear quads without using a manifold
description -- then the normal vectors from adjacent cells are not going to
point in the same direction (more precisely, they will be tangential to the
cell, but not to the underlying manifold). In that case, you'll end up with a
non-conforming RT space because the normal component of the finite element
field is not continuous across cell interfaces.

Best
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/


Marc BAKRY

unread,
Nov 5, 2023, 10:37:42 AM11/5/23
to dea...@googlegroups.com
Dear Wolfgang,

thanks very much for your answer. I think I will give it a try when I find some time. Non-C1 manifolds are not an issue in the framework of the BEMs. One can, for example, take a look at this reference.

Best regards,

M.

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "deal.II User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dealii/6Z8jBTShIq8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/5b4695d4-b010-8591-135b-303cd6d27dc7%40colostate.edu.

blais...@gmail.com

unread,
Nov 13, 2023, 7:45:43 AM11/13/23
to deal.II User Group
If you need any help, feel free to reach out to the deal.II community, we are always glad to help

Marc BAKRY

unread,
Nov 15, 2023, 3:57:17 PM11/15/23
to dea...@googlegroups.com
I won't hesitate. At the moment, I tried to change the template from <int dim> to <int dim, int spacedim> and to make the corresponding changes in the FERaviartThomas class; however it seems that it is not that easy (I triggered a lot of errors at compile time, among them in the FETools namespace). As an intermediate step, I think I will first try to generate a dummy finite element class whose sole purpose is to generate the Hdiv connectivity on the surface, then use a 2D FERaviartThomas to compute the shape functions on the reference element. Finally, I'll use a Piola transform to compute the "true" shape value.

Best regards
M.

Wolfgang Bangerth

unread,
Nov 15, 2023, 6:59:18 PM11/15/23
to dea...@googlegroups.com

On 11/15/23 13:57, Marc BAKRY wrote:
> I won't hesitate. At the moment, I tried to change the template from
> <int dim> to <int dim, int spacedim> and to make the corresponding
> changes in the FERaviartThomas class; however it seems that it is not
> /that/ easy (I triggered /a lot/ of errors at compile time, among them
> in the FETools namespace).

Having gone through this thing before, my approach is usually "one error
at a time". It may be a long list, but you'll get them all fixed in due
time.

Whenever I need to fix something in other files (for example, add
spacedim template arguments to functions in FETools), I typically end up
making those into independent pull requests to already get those merged
so that the final pull request that does what I set out to do is not as
large any more.

Best
W.
Reply all
Reply to author
Forward
0 new messages