|
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Provides the local element matrix for a mesh entity.
An EntityMatrixProvider is an object that provides a local element matrix for a given mesh entity. EntityMatrixProvider's are mostly used together with lf::assemble::AssembleMatrixLocally to assemble a sparse system matrix.
The type EMP satisfies the Concept EntityMatrixProvider if given
emp an object of type EMPe is a lf::mesh::Entity objectSCALAR is an Eigen supported scalar datatype (e.g. double)ROWS is the number of rows of the local element matrix or Eigen::DynamicCOLS is the number of columns of the local element matrix or Eigen::Dynamicthe following expressions are valid:
| expression | return type | semantics |
|---|---|---|
emp.isActive(e) | bool | Defines whether the entity e is taken into account by the assembly routine. |
emp.Eval(e) | Eigen::Matrix<SCALAR, ROWS, COLS> | Returns the local element matrix for mesh entity e. Is only called if emp.isActive(e)==true. |
Eval() may sacrifice efficiency because it may entail additional allocation of dynamic memory. However, this design was chosen for the sake of readability of the code and in order to avoid nasty memory access errors that often occur when passing a matrix by reference.The concept of a EntityMatrixProvider is widely used in the lf::assemble and lf::uscalfe modules:
lf::assemble::AssembleMatrixLocally() accepts an EntityMatrixProvider which in turn defines how the (sparse) system matrix is assembled.Examples for classes implementing the concept EntityMatrixProvider are lf::uscalfe::LinearFELaplaceElementMatrix and lf::uscalfe::ReactionDiffusionElementMatrixProvider
Implementing Classes | |
| class | lf::fe::DiffusionElementMatrixProvider< SCALAR, DIFF_COEFF > |
| Class for computing element matrices for general scalar-valued finite elements and homogeneous 2nd-order elliptic bilinear forms. More... | |
| class | lf::fe::MassElementMatrixProvider< SCALAR, REACTION_COEFF > |
| Class for local quadrature based computation of element matrix for Lagrangian finite elements and a weighted \(L^2\) inner product. More... | |
| class | lf::fe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR > |
| Quadrature-based computation of local mass matrix for an edge. More... | |
| class | lf::uscalfe::LinearFELaplaceElementMatrix |
| Computing the element matrix for the (negative) Laplacian and linear finite elements. More... | |
| class | lf::uscalfe::ReactionDiffusionElementMatrixProvider< SCALAR, DIFF_COEFF, REACTION_COEFF > |
| Class for local quadrature based computations for Lagrangian finite elements and second-order scalar elliptic BVPs. More... | |
| class | lf::uscalfe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR > |
| Quadrature-based computation of local mass matrix for an edge. More... | |