FEniCS / FEniCS/dolfinx

Inconsistent Lagrange element type for coordinates at higher degrees

Open
#3,634 1 comment 1 reaction 1 assignee Claimed by @mscroggs View on GitHub
proposal
Dominant language
C++
Stars
1.2k
Forks
261
Avg merge
1d 19h
Merged PRs (30d)
71

Description

#3633 checks that the coordinate element used in generated code is the same as the coordinate element associated with the mesh. It exposed inconsistent mixing of `basix.LagrangeVariant.unset` and `basix.LagrangeVariant.equispaced` for coordinate elements. In practice it makes no different at degree <-= 2. To get consistency, #3633 changes mesh coordinate elements to `basix.LagrangeVariant.unset`.

`basix.ufl.element` defaults to `basix.LagrangeVariant.unset`. Forcing the user to specify the variant would be tiresome since nearly all meshes are degree 1 or 2. We could just raise/throw an exception for p > 2 geometry elements when the variant is `basix.LagrangeVariant.unset`, i.e. force the user to be explicit for higher order meshes (where is matters).

For high-order meshes, it would be neat if we could interpolate the geometry, e.g. interpolate a degree 3 mesh with equispaced points to a degree 3 mesh with GLL points.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.