You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I just open an issue on this, because it came up again on slack and I think we should keep track of this.
Currently it is not straight forward to implement H(curl) or H(div) elements, but it is a feature that is asked for rather often. Canonical examples are Nedelec (for H(curl)) and Raviart-Thomas (for H(div)). To support these elements, I think there are two assumptions made in the code that have to be investigated.
I think it is assumed that one of the "dim" parameters controls the vector length for the evaluated, while for the actual evaluation of basis functions on a reference element is seems to be assumed that a scalar is returned (
), which leads to the wrong number of dofs for the mentioned elements.
The mapping of basis functions is "broken" for such elements. They require special Piola mappings to conserve special properties (see e.g. https://defelement.com/ciarlet.html). We should be able to fix this rather easily by equipping each interpolation with a trait, which dispatches to the correct mapping if the basis function is evaluated. The trait system will also be useful for more exotic problems, as for example when the problem itself is matrix valued.
To test these we can add two new examples. One for the curl-curl problem from electromagnetics and one for the mixed Poisson problem, such that we also cover how to implement discontinuous Galerkin methods. Please note that the later is a bit more problematic, because we do not have a good framework to operate on interior faces yet.
The text was updated successfully, but these errors were encountered:
I just open an issue on this, because it came up again on slack and I think we should keep track of this.
Currently it is not straight forward to implement H(curl) or H(div) elements, but it is a feature that is asked for rather often. Canonical examples are Nedelec (for H(curl)) and Raviart-Thomas (for H(div)). To support these elements, I think there are two assumptions made in the code that have to be investigated.
Ferrite.jl/src/FEValues/cell_values.jl
Lines 129 to 138 in 4787e3d
Ferrite.jl/src/Dofs/DofHandler.jl
Lines 214 to 218 in 4787e3d
To test these we can add two new examples. One for the curl-curl problem from electromagnetics and one for the mixed Poisson problem, such that we also cover how to implement discontinuous Galerkin methods. Please note that the later is a bit more problematic, because we do not have a good framework to operate on interior faces yet.
The text was updated successfully, but these errors were encountered: