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

No one assigned

    Labels

    proposalSuggested change or addition

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions