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

Add support for macroelements #545

Open
3 of 9 tasks
mscroggs opened this issue Jul 6, 2022 · 1 comment
Open
3 of 9 tasks

Add support for macroelements #545

mscroggs opened this issue Jul 6, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@mscroggs
Copy link
Member

mscroggs commented Jul 6, 2022

Macroelements are defined by splitting the reference cell into smaller cells, then defining the polyset using piecewise polynomials on these subcells.

The hard assumption that basis functions are polynomial on the cell in Basix prevent these from being used currently.

There are two types of macro element that I am aware of:

1. Macro elements obtained by dividing each cell by splitting edges in half
For example: P1-iso-P2

image
tet-macro-diagram

The diagram for the tetrahedron is taken from Snoeijer, J., Numerical Reconstruction of Fundamental Solutions of the Stokes System with Finite Elements (with labels added)

2. Macro elements obtained by dividing cell by splitting angles in half
For example, Guzman-Neilan, HCT

image

I am yet to find a source that uses this type of macro element for a quad. Two possible dissections could be:
image

To do list

  • Allow for elements to have different polyset types
  • Come up with sensible naming for macro polysets #689
  • Edge macro elements (1)
    • Implement lowest degree polysets for edge macro elements
    • Implement arbitrary degree polysets for edge macro elements on intervals, quads, and hexes
    • Implement arbitrary degree polysets for edge macro elements on triangles and tets
  • Vertex macro elements (2)
    • Implement lowest degree polysets for vertex macro elements
    • Implement arbitrary degree polysets for vertex macro elements on intervals and quads
    • Implement arbitrary degree polysets for vertex macro elements on triangles
    • Implement polysets for 3D cells
@wence-
Copy link
Contributor

wence- commented Oct 12, 2023

There are a bunch of more sophisticated splits that deliver spline-like elements of higher continuity. For an example on quads, Lai and Shumaker (2002) https://epubs.siam.org/doi/epdf/10.1137/S0036141000377134 covers construction of $C^r, r \ge 1$ spaces on triangularly subdivided quads (the four-way splitting you have as a diagram). That split is sometimes called a "Malkus split" or "Malkus quad".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants