Finite element space

Given a computational domain \(\Omega\) covered by a simplicial mesh \(\mathcal{T}_h(\Omega)\), the space \(V_h(\Omega)\) of \(\mathbb{P}_1\)-Lagrange finite element functions is the set of continuous piecewise affine functions i.e. defined as

\(V_h(\Omega):=\lbrace v_h\in \mathcal{C}^{0}(\overline{\Omega}),v_h\vert_{\tau}\in \mathbb{P}_1(\tau)\;\forall \tau\in \mathcal{T}_h(\Omega)\rbrace\)

\(\mathbb{P}_1(\tau):=\lbrace \varphi\vert_{\tau}, \varphi(\mathbf{x}) = \alpha\cdot\mathbf{x}+\beta, \alpha\in \mathbb{R}^d,\beta\in\mathbb{R}\rbrace\)

In the code femtool, such a vector space is modelled by an object of type FeSpace. In terms of data members, this object consists of a Mesh mesh_ and a dynamically allocated array of size the number of element in mesh_. Each cell of this dynamically allocated array stores the numbers of the degrees of freedom local to the corresponding mesh cell.

template<std::size_t DIM>
class FeSpace

P1-finite element space over a given mesh.