Click here to read what the information on this page means.
Alternative names | Guzmán–Neilan |
Abbreviated names | GN |
Degrees | \(1\leqslant k\leqslant d-1\) where \(k\) is the Polynomial subdegree |
Polynomial subdegree | \(k\) |
Polynomial superdegree | \(d\) |
Reference elements | triangle, tetrahedron |
DOFs | On each vertex: point evaluations in coordinate direcions
On each edge: (if \(k>1\)) point evaluations in coordinate directions at midpoints
On each facet: normal integral moments with an degree \(0\) Lagrange space |
Number of DOFs | triangle: \(9\) tetrahedron: \(\begin{cases}16&k=1\\34&k=2\end{cases}\) |
Mapping | contravariant Piola |
continuity | Function values are continuous. |
Notes | This element is a modification of the Bernardi–Raugel element with the facet bubbles modified to be divergence free. |
Categories | Vector-valued elements, Macro elements |
This element is implemented in
FIAT and
Symfem .
↓ Show implementation detail ↓↑ Hide implementation detail ↑FIAT | FIAT.GuzmanNeilanFirstKindH1 ↓ Show FIAT examples ↓↑ Hide FIAT examples ↑Before running this example, you must install FIAT: pip3 install git+https://github.com/firedrakeproject/fiat.git This element can then be created with the following lines of Python: import FIAT
# Create Guzman-Neilan (first kind) degree 1 element = FIAT.GuzmanNeilanFirstKindH1(FIAT.ufc_cell("triangle"), 1)
# Create Guzman-Neilan (first kind) degree 1 element = FIAT.GuzmanNeilanFirstKindH1(FIAT.ufc_cell("tetrahedron"), 1)
# Create Guzman-Neilan (first kind) degree 2 element = FIAT.GuzmanNeilanFirstKindH1(FIAT.ufc_cell("tetrahedron"), 2) This implementation is correct for all the examples below. |
Symfem | "Guzman-Neilan first kind" ↓ Show Symfem examples ↓↑ Hide Symfem examples ↑Before running this example, you must install Symfem: pip3 install symfem This element can then be created with the following lines of Python: import symfem
# Create Guzman-Neilan (first kind) degree 1 on a triangle element = symfem.create_element("triangle", "Guzman-Neilan first kind", 1)
# Create Guzman-Neilan (first kind) degree 1 on a tetrahedron element = symfem.create_element("tetrahedron", "Guzman-Neilan first kind", 1)
# Create Guzman-Neilan (first kind) degree 2 on a tetrahedron element = symfem.create_element("tetrahedron", "Guzman-Neilan first kind", 2) This implementation is used to compute the examples below and verify other implementations. |
- Guzmán, Johnny and Neilan, Michael. Inf-sup stable finite elements on barycentric refinements producing divergence-free approximations in arbitrary dimensions, SIAM Journal on Numerical Analysis 56, 2826–2844, 2018. [DOI: 10.1137/17M1153467] [BibTeX]
Element added | 01 August 2021 |
Element last updated | 17 October 2024 |