Skip to content

Assemble methode doesn't support traingle mesh with udin=2 #186

Description

@bboeyken

The assemble function can't deal with triangulized surface in udim = 2 for lagrange and nedelec interpolation. assemble calls quaddata and _allocate_workspace. This last method calls the following function, for a lagrange reference space:

# Evaluete linear lagrange elements on a triangle
function (f::LagrangeRefSpace{T,1,3})(t) where T

This methode calculates the normal of a triangle. However in a udim = 2, a triangle has no normal vector.

A solution is to overload this function so that it doesn't require the normal vector.

Example for the issue is the following:

Ω = meshrectangle(1.0, 1.0, 0.5, 2)
X = lagrangec0d1(Ω, boundary(Ω))

I = BEAST.Identity()
assemble(I, X,X)

Which give rise to "BoundsError: attempt to access Tuple{} at index [1]", meaning there is no normal vector.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions