basix icon indicating copy to clipboard operation
basix copied to clipboard

Rational functions for pyramid

Open jmv2009 opened this issue 1 year ago • 1 comments

This commit generates the proper orthonormal rational functions for the pyramid. See https://github.com/FEniCS/basix/issues/894

Still doing more checks on the derivatives, especially around p=q.

The Lagrangian elements have a problem with these functions at the top vertex (nan), even though the limit is well defined.

These are not yet the orthonormal rational functions that we want though. The first generated proper rational function here are (2x-1+z)(2y-1+z)/(1-z). This should be x y/(1-z) as in Cockburn and Fu and https://defelement.org/elements/examples/pyramid-lagrange-equispaced-1.html However, for orthogonality purposes, the base should then be from -1,-1,zmin to 1,1,zmin and the peak at 0,0,1. This will keep the admissiblity/compatibility. Alternatively it should be (x-1/2)(y-1/2)/(1-z) with the regular base peak at 1/2,1/2,1. So in the end the tilted, asymmetric pyramid is a bad choice. To get the 1 and 2-forms going without immediately needing to apply piola transformations doesn't seems to work.

jmv2009 avatar Jan 09 '25 19:01 jmv2009

I am changing to pyramid such that there are four slanted faces as in https://www.math.u-bordeaux.fr/~durufle/montjoie/pyramid.php. I also changed the orthogonal rational functions to include an extra factor of 1/(1-z) overall. This makes sure that the first order derivatives of the lower order rational functions are included in the function space as required for the generation of for order complexes of elements c.f. Cockburn and Fu. (to be verified again). For complexes with higher derivatives, more such factor may need to be included. There are still a couple of problems: a) basix.create_lattice is still on the original pyramid b) picture? c) Elements with dofs on vertices don't work yet, and will need modification. This will require removing the 1/(1-z) factor, but the orthogonal polynomials will need to stay the same, so it will need to be applied when needing orthogonal polynomials for a quadrature application.

jmv2009 avatar Feb 01 '25 16:02 jmv2009

Closing this in favour of #918

mscroggs avatar Apr 25 '25 12:04 mscroggs