Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make_face_restriction/DG face mass matrix: Handling elements with different-shaped faces (e.g. pyramids) #150

Open
inducer opened this issue Apr 7, 2021 · 0 comments

Comments

@inducer
Copy link
Owner

inducer commented Apr 7, 2021

Way out there, I know, but @thomasgibson, @lukeolson and I were thinking about it today. Currently, the DG face mass matrix code in grudge assumes that for each volume element, one element per face is generated, winding up with nfaces * nelements elements, and that the elements for each face are numbered contiguously. This is not feasible for a pyramid, or any other element type that has more than one shape of face. (Because element groups are numbered contiguously, and the different-shaped face element must be in a different group.) With time, we should probably remove this assumption, and instead move to "face-major" numbering (from "volume-element-major" numbering currently). Unfortunately, this has an efficiency impact in DG, as the face mass matrix must then find its face data from (for e.g. tetrahedra) four different places in memory rather than one contiguous one.

Relevant source:

def make_face_restriction(actx, discr, group_factory, boundary_tag,

@inducer inducer changed the title make_face_restriction/DG face mass matrix: Handling elements with different-shaped faces make_face_restriction/DG face mass matrix: Handling elements with different-shaped faces (e.g. pyramids) Apr 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant