Click here to read what the information on this page means.
Alternative names | conforming Arnold–Winther |
Orders | \(3\leqslant k\) |
Reference elements | triangle |
Polynomial set | \(\mathcal{Z}^{(2)}_{k-1} \oplus \mathcal{Z}^{(3)}_{k}\) ↓ Show polynomial set definitions ↓↑ Hide polynomial set definitions ↑\(\mathcal{Z}^{(2)}_k=\left\{\mathbf{M}\in\mathcal{P}_{k}^{d\times d}\middle|\mathbf{M}^t=\mathbf{M}\right\}\)
\(\mathcal{P}_k=\operatorname{span}\left\{\prod_{i=1}^dx_i^{p_i}\middle|\sum_{i=1}^dp_i\leqslant k\right\}\)
\(\mathcal{Z}^{(3)}_k=\left\{\mathbf{M}\in\mathcal{P}_{k}^{d\times d}\middle|\mathbf{M}^t=\mathbf{M}\text{ and }\operatorname{div}\mathbf{M}=0\right\}\) |
DOFs | On each vertex: point evaluations of three components
On each edge: integral moments of normal-normal and normal-tangent inner products with an order \(k-2\) Lagrange space
On each face: integral moments of three components with an order \(k-3\) Lagrange space, and integral moments of tensor dot product with \(\frac{\partial}{\partial(x, y)}x^2y^2(1-x-y)^2f\) for each order \(k-4\) polynomial \(f\) in an order \(k-4\) Lagrange space |
Number of DOFs | triangle: \((3k^2+5k+6)/2\) |
Categories | Matrix-valued elements |
FIAT | FIAT.ArnoldWinther ↓ Show FIAT examples ↓↑ Hide FIAT examples ↑Before trying 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 Arnold-Winther order 3 element = FIAT.ArnoldWinther(FIAT.ufc_cell("triangle"), 3) This implementation is incorrect for this element. |
Symfem | "AW" ↓ Show Symfem examples ↓↑ Hide Symfem examples ↑Before trying this example, you must install Symfem: pip3 install symfem This element can then be created with the following lines of Python: import symfem
# Create Arnold-Winther order 3 on a triangle element = symfem.create_element("triangle", "AW", 3)
# Create Arnold-Winther order 4 on a triangle element = symfem.create_element("triangle", "AW", 4) This implementation is used to compute the examples below and verify other implementations. |
(legacy) UFL | "AWc" ↓ Show (legacy) UFL examples ↓↑ Hide (legacy) UFL examples ↑Before trying this example, you must install (legacy) UFL: pip3 install git+https://github.com/FEniCS/ufl.git@ufl_legacy This element can then be created with the following lines of Python: import ufl_legacy
# Create Arnold-Winther order 3 on a triangle element = ufl_legacy.FiniteElement("AWc", "triangle", 3)
# Create Arnold-Winther order 4 on a triangle element = ufl_legacy.FiniteElement("AWc", "triangle", 4) |
- Arnold, Douglas N. and Winther, Ragnar. Mixed finite elements for elasticity, Numerische Mathematik 92(3), 401–419, 2002. [DOI: 10.1007/s002110100348] [BibTeX]
Element added | 10 February 2021 |
Element last updated | 16 September 2023 |