Skip to content

Inconsistent Lagrange element type for coordinates at higher degrees #3634

@garth-wells

Description

@garth-wells

#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.

Metadata

Metadata

Assignees

Labels

proposalSuggested change or addition

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions