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 elements | triangle, tetrahedron |
Polynomial set | \(\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 polynomial set definitions ↓↑ Hide polynomial 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 an 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 | 17 October 2024 |