|
1 | | -//! Finite element definitions |
| 1 | +//! Ciarlet finite elements. |
| 2 | +//! |
| 3 | +//! In the Ciarlet definition, a finite element is defined to be a triple |
| 4 | +//! $(\mathcal{R}, \mathcal{V}, \mathcal{L})$, where: |
| 5 | +//! |
| 6 | +//! - $\mathcal{R}\subset\mathbb{R}^d$ is the reference cell, |
| 7 | +//! - $\mathcal{V}$ is a finite dimensional function space on $\mathcal{R}$ of dimension $n$, usually polynomials, |
| 8 | +//! - $\mathcal{L} = \{\ell_0,\dots, \ell_{n-1}\}$ is a basis of the dual space $\mathcal{V}^* = \set{f:\mathcal{V} -> \mathbb{R}: f\text{ is linear}}$, with |
| 9 | +// each functional associated with a subentity of the reference cell $\mathcal{R}$. |
| 10 | +//! |
| 11 | +//! The basis functions $\phi_0,\dots, \phi_{n-1}$ of the finite element space are defined by |
| 12 | +//! $$\ell_i(\phi_j) = \begin{cases}1 &\text{if }~i = j \newline |
| 13 | +//! 0 &\text{otherwise}\end{cases}. |
| 14 | +//! $$ |
| 15 | +//! |
| 16 | +//! ## Example |
| 17 | +//! The order 1 [Lagrange space](https://defelement.org/elements/lagrange.html) on a triangle is |
| 18 | +//! defined by: |
| 19 | +//! |
| 20 | +//! - $\mathcal{R}$ is a triangle with vertices $(0, 0)$, $(1, 0)$, $(0, 1)$. |
| 21 | +//! - $\mathcal{V} = \text{span}\set{1, x, y}$. |
| 22 | +//! - $\mathcal{L} = \set{\ell_0, \ell_0, \ell_1}$ with $\ell_j$ the pointwise evaluation at vertex $v_j$, and each functional associated with the relevant vertex. |
| 23 | +//! |
| 24 | +//! This gives the basis functions $\phi_0(x, y) = 1 - x - y$, $\phi_1(x, y) = x$, $\phi_2(x, y) = y$. |
| 25 | +//! |
| 26 | +//! ## References |
| 27 | +//! - [https://defelement.org/ciarlet.html](https://defelement.org/ciarlet.html) |
2 | 28 |
|
3 | 29 | extern crate blas_src; |
4 | 30 | extern crate lapack_src; |
|
74 | 100 | { |
75 | 101 | /// Create a Ciarlet element. |
76 | 102 | /// |
77 | | - /// This should not be used directly. Instead users should call the `create` |
78 | | - /// function for one of the following special cases of a general Ciarlet element. |
| 103 | + /// The majority of users will not wish to use this directly, and should insteal call |
| 104 | + /// the `create`function for one of the following special cases of a general Ciarlet element: |
79 | 105 | /// - [crate::ciarlet::lagrange::create]: Create a new Lagrange element. |
80 | 106 | /// - [crate::ciarlet::nedelec::create]: Create a new Nedelec element. |
81 | 107 | /// - [crate::ciarlet::raviart_thomas::create]: Create a Raviart-Thomas element. |
|
0 commit comments