-
-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Laplacian of nullspace of trace in Q for internal dof functionals TNT quadrilateral #3559
base: main
Are you sure you want to change the base?
Conversation
1f9e6da
to
b434058
Compare
Could you tighten up the PR title and description and move the extra details to a post further down? |
Details: Reference implementation mathematica shape function tabulation (orders of vertices and edges are different): The only difference with symfem is that the dof functionals do not correspond to monomials but to normalized Legendre polynomials, as per the dof functional tabulation. |
04df188
to
e13379b
Compare
According to https://github.com/mscroggs/symfem/blob/main/symfem/elements/tnt.py, we need to multiply by the primary bubble function, and take the laplacian. To this end tabulation which also generates the derivatives is used.
Hexahedrons
Fix hex
fix hex
Fix prism
Tetrahedron, misc.
comments
I appreciate that this is still a draft but the PR is drifting away from the original purpose of the demo - showing how a relatively simple but non-trivial element can be implemented at runtime with Basix. |
Yeah, this IS getting out of hand, which is a good thing. Please be patient for now: I appear on track to a reference implementation for the whole TNT de Rham complex for all elements (including a fully compatible curl - prism). Up to now, a fully compatible and admissible TNT-curl-prism element is elusive as far as I know. https://arxiv.org/pdf/1605.00132. I have already not seen an implementation of the 0-Form TNT prism, which is already included here. Also this variant for the 0-Form for the triangle and tetrahedron may be novel, although a serendipity implementation would have the same degree of freedoms, just as it does for the interval. Pyramids may be more tricky. Let's see how far we get, and then see how about implementing them in c++ Basix and/or Symfem. The advantage of doing it here first is a very simple implementation, which can be easily tested. The TNT family appears to be the most complex, and other families can be done also. |
@mscroggs
According to https://github.com/mscroggs/symfem/blob/main/symfem/elements/tnt.py, we need to multiply by the primary bubble function, and take the Laplacian for the interior dofs. To this end tabulation which also generates the derivatives is used.
This will aid in generating 3D TNT elements in Basix.
Status: finishing hex.
Status: finishing prism. Todo: check elongated diagonal face and edges for functional scaling consistency