![]() |
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
LehrFEM++ provides an interface for (scalar) finite element spaces. Scalar means that the approximation space is always scalar-valued, and the shape functions are scalar-valued.
The lf::fe namespace provides a general interface for scalar finite element spaces. Implementation and usage of scalar FE spaces are covered in more detail in Lecture Document Paragraph 2.8.3.28.
A special case of the general scalar finite element space is a Hierarchic Scalar Finite Element Space, implemented by lf::fe::HierarchicScalarFESpace. Hierarchic FE spaces assign a polynomial degree for the shape functions to each mesh entity. They can easily be constructed from a mesh and a function mapping mesh entities to polynomial degrees.
The lf::uscalfe (Uniform Scalar Finite Elements) namespace is a specialization of lf::fe for uniform scalar finite element spaces. Uniform in this context means that the approximation space has a uniform order of approximation over the whole mesh. In other words, the shape functions of a given approximation space depend only on the underlying reference element of a mesh entity.
A prominent example of a uniform finite element space is the n-th order Lagrangian finite element spaces. Lecture Document Section 2.6 discusses these spaces and the mathematical background in detail.
LehrFEM++ provides convenience classes for constructing order 1, 2, and 3 Lagrangian finite element spaces:
lf::uscalfe::FeSpaceLagrangeO1: (Bi)Linear Lagrangian Finite Element space.lf::uscalfe::FeSpaceLagrangeO2: Quadratic Lagrangian Finite Element space.lf::uscalfe::FeSpaceLagrangeO3: Cubic Lagrangian Finite Element space.