Click here to read what the information on this page means.
| Abbreviated names | BR | 
| Degrees | \(1\leqslant k\leqslant d-1\) where \(k\) is the polynomial subdegree | 
| Polynomial subdegree | \(k\) | 
| Polynomial superdegree | \(d\) | 
| Reference cells | triangle, tetrahedron | 
| Finite dimensional space | \(\mathcal{P}_{k}^d \oplus \mathcal{Z}^{(5)}_{k}\) (triangle) 
\(\mathcal{P}_{k}^d \oplus \mathcal{Z}^{(6)}_{k}\) (tetrahedron, \(k=1\)) 
\(\mathcal{P}_{k}^d \oplus \mathcal{Z}^{(7)}_{k}\) (tetrahedron, \(k=2\)) 
↓ Show set definitions ↓↑ Hide set definitions ↑\(\mathcal{P}_k=\operatorname{span}\left\{\prod_{i=1}^dx_i^{p_i}\middle|\sum_{i=1}^dp_i\leqslant k\right\}\)
  \(\mathcal{Z}^{(5)}_k=\left\{\left(\begin{array}{c}xy\\xy\end{array}\right),\left(\begin{array}{c}y(1-x-y)\\0\end{array}\right),\left(\begin{array}{c}0\\x(1-x-y)\end{array}\right)\right\}\)
  \(\mathcal{Z}^{(6)}_k=\left\{\left(\begin{array}{c}xyz\\xyz\\xyz\end{array}\right),\left(\begin{array}{c}yz(1-x-y-z)\\0\\0\end{array}\right),\left(\begin{array}{c}0\\xz(1-x-y-z)\\0\end{array}\right),\left(\begin{array}{c}0\\0\\xy(1-x-y-z)\end{array}\right)\right\}\)
  \(\mathcal{Z}^{(7)}_k=\left\{\left(\begin{array}{c}xyz\\xyz\\xyz\end{array}\right),\left(\begin{array}{c}yz(1-x-y-z)\\0\\0\end{array}\right),\left(\begin{array}{c}0\\xz(1-x-y-z)\\0\end{array}\right),\left(\begin{array}{c}0\\0\\xy(1-x-y-z)\end{array}\right),\left(\begin{array}{c}xyz(1-x-y-z)\\0\\0\end{array}\right),\left(\begin{array}{c}0\\xyz(1-x-y-z)\\0\end{array}\right),\left(\begin{array}{c}0\\0\\xyz(1-x-y-z)\end{array}\right)\right\}\)  | 
| DOFs | On each vertex: point evaluations in coordinate directions 
On each edge: (if \(k>1\)) point evaluations in coordinate directions at midpoints 
On each facet: normal integral moments with a degree \(0\) Lagrange space | 
| Number of DOFs | triangle: \(9\) tetrahedron: \(\begin{cases}16&k=1\\37&k=2\end{cases}\) | 
| Mapping | contravariant Piola | 
| continuity | Function values are continuous. | 
| Categories | Vector-valued elements | 
This element is implemented in 
FIAT  and 
Symfem .
↓ Show implementation detail ↓↑ Hide implementation detail ↑| FIAT | FIAT.BernardiRaugel ↓ 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 Bernardi-Raugel degree 1 element = FIAT.BernardiRaugel(FIAT.ufc_cell("triangle"), 1)
  # Create Bernardi-Raugel degree 1 element = FIAT.BernardiRaugel(FIAT.ufc_cell("tetrahedron"), 1)
  # Create Bernardi-Raugel degree 2 element = FIAT.BernardiRaugel(FIAT.ufc_cell("tetrahedron"), 2)   This implementation is correct for some of the examples below. Correct: triangle,1; tetrahedron,1  Incorrect: tetrahedron,2  | 
| Symfem | "Bernardi-Raugel" ↓ 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 Bernardi-Raugel degree 1 on a triangle element = symfem.create_element("triangle", "Bernardi-Raugel", 1)
  # Create Bernardi-Raugel degree 1 on a tetrahedron element = symfem.create_element("tetrahedron", "Bernardi-Raugel", 1)
  # Create Bernardi-Raugel degree 2 on a tetrahedron element = symfem.create_element("tetrahedron", "Bernardi-Raugel", 2)   This implementation is used to compute the examples below and verify other implementations. | 
 
| Element added | 19 April 2021 | 
| Element last updated | 04 June 2025 |