Open stevengj opened 4 years ago
It would be nice to implement Nedelec elements on tetrahedra/triangles. But due to time restrictions, it is not in my shortlist.
If @WenjieYao wants to develop it, it would be good to take as a starting point the Nedelec implementation for hexahedra. The way moments (degrees of freedom) for the Nedelec elements are different. I would start understanding Nedelec FEs for HEXs and TETs. You can use this publication.
For instance, the local finite element space (prebasis) for hexahedra defined below (see Eqs. (10) or (11) in the article)
must be replaced by the space defined in (14) in the article.
The cell moments basis here for HEX (see (17c) in the article)
should be replaced by MonomialBasis(et,ep,order-D+1)
where D
is the space dim.
In 3D, the basis used for the face moments for HEX in (17b) that is implemented here
must be modified to implement (19b). This change is not only a modification of the basis for the moments but also a change in the expression of the moment itself. In any case, the expression is quite simple.
With all these changes, we would have a Nedelec Ref FE (using a GenericRefFE
with these degrees of freedom and the prebasis). The local degrees of freedom are used in the GenericRefFE
to transform the prebasis into the final Nedelec local basis.
Further ingredients are the definition of degrees of freedom in the physical space (see Sect. 4.1.2) for interpolation of functions (e.g., for boundary or initial conditions) into this space, and the definition of the global FE space using a Piola covariant mapping from the reference FE to the physical FE (sect. 4.1), but this part is quite simple with the Gridap
machinery.
I can help in the process, if you want to look at this. The ReferenceFE
module is almost self-contained and quite small.
@santiagobadia Thanks for the detailed reply. Can you send a new link or email me the article? I can't get access to the publication as it requires a Monash University account.
@WenjieYao I have updated the link. Now it should work. We are working on the Piola transformations from the reference to the physical space, so the last part (not discussed in detail) about the physical space can be omitted. Hopefully, it will be ready soon. Still, you will need to implement the degrees of freedom / shape functions at the reference space.
Currently it seems to only support quadrilateral/hexahedral meshes. Are there any plans to implement this?
@WenjieYao would love to help with this, but is new to this kind of FE code so would need more guidance… What part of this implementation would need to be generalized/rewritten to handle tetrahedra?