Generate quadrature on facet element and tabulate basis

I am trying to manually assemble a boundary integral. I am unsure about the steps I should follow.

  1. Should I generate a quadrature on the facet element or directly on the cell?
  2. Should I tabulate the basis functions of the facet element or the cell’s? I think that for simple elements these two approaches are equivalent.

Let me know if a MWE is necessary.

How it is done internally in FEniCSx:

  1. Get quadrature points on the reference facet
  2. Push quadrature points forward to each facet of the reference cell
  3. Tabulate on those facets.

I’ve for instance shown how to push forward any point in a cell in:
https://jsdokken.com/FEniCS-workshop/src/finite_element_method/advanced_elements.html
which you can use to map points from a reference facet to that of the reference element (or you could check ffcx: ffcx/ffcx/element_interface.py at 2ad24229c91e2a058ffb9f8bc5f4b9cf81f04ee5 · FEniCS/ffcx · GitHub)

1 Like