LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Class providing element matrices associated with bilinear forms between cartesian/product spaces. More...
#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/dpg/product_element_matrix_provider.h>
Public Types | |
using | elem_mat_t = typename SubElementMatrixProvider< SCALAR >::elem_mat_t |
internal type for element matrices More... | |
using | ElemMat = typename SubElementMatrixProvider< SCALAR >::ElemMat |
Public Member Functions | |
ProductElementMatrixProvider (const ProductElementMatrixProvider &)=delete | |
standard constructors More... | |
ProductElementMatrixProvider (ProductElementMatrixProvider &&) noexcept=default | |
ProductElementMatrixProvider & | operator= (const ProductElementMatrixProvider &)=delete |
ProductElementMatrixProvider & | operator= (ProductElementMatrixProvider &&)=delete |
ProductElementMatrixProvider (std::shared_ptr< ProductUniformFESpace< SCALAR > > fe_space_trial, std::shared_ptr< ProductUniformFESpace< SCALAR > > fe_space_test, std::vector< std::shared_ptr< SubElementMatrixProvider< SCALAR > > > subproviders) | |
main constructor More... | |
virtual bool | isActive (const lf::mesh::Entity &) |
All cells are considered active in the default implementation. More... | |
ElemMat | Eval (const lf::mesh::Entity &cell) |
main routine for the computation of element matrices More... | |
virtual | ~ProductElementMatrixProvider ()=default |
virtual destructor More... | |
Private Attributes | |
std::shared_ptr< ProductUniformFESpace< SCALAR > > | fe_space_trial_ |
std::shared_ptr< ProductUniformFESpace< SCALAR > > | fe_space_test_ |
std::vector< std::shared_ptr< SubElementMatrixProvider< SCALAR > > > | subproviders_ |
Class providing element matrices associated with bilinear forms between cartesian/product spaces.
SCALAR | type for the entries of the element matrices. Ususally 'double' |
This class provides element matrices associated to bilinear forms \( b: U \times V \rightarrow \mathbb{R} \) between two product spaces (c.f. ProductUniformFEDofHandler, ProductUniformFESpace)
\[ U = U_0 \times U_1 \times \dots \times U_{n-1} \]
\[ V = V_0 \times V_1 \times \dots \times V_{m-1} \]
that have the following structure
\[ b((u_1, \dots, u_{n-1}),(v_1, \dots v_{m-1})) = \sum_{k} b_k(u_{i_k},v_{j_k}) \]
with
\[ b_k : U_{i_k} \times V_{j_k} \rightarrow \mathbb{R} \]
The evaluation of element matrices for such "building block" bilinear forms \( b_k \) is preformed by means of the SubElementMatrixProvider interface. This class takes a vector of such SubElementMatrixProviders in its constructors and builds the element matrix for the bilinear form \( b\) by stacking together the sub matrices (using the rules of local dof ordering specified in ProductUniformFEDofHandler).
Definition at line 60 of file product_element_matrix_provider.h.
using projects::dpg::ProductElementMatrixProvider< SCALAR >::elem_mat_t = typename SubElementMatrixProvider<SCALAR>::elem_mat_t |
internal type for element matrices
Definition at line 63 of file product_element_matrix_provider.h.
using projects::dpg::ProductElementMatrixProvider< SCALAR >::ElemMat = typename SubElementMatrixProvider<SCALAR>::ElemMat |
Return type of the Eval() method
Definition at line 65 of file product_element_matrix_provider.h.
|
delete |
standard constructors
|
defaultnoexcept |
|
inline |
main constructor
fe_space_trial | the product trial finite element space \( U \) of the bilinar form |
fe_space_test | the product test finite element space \( V \) of the bilinear form |
subproviders | a vector of SubElementMatrixProviders, that evaluate the element matrices associated to the "building block" bilinear forms \( b_K \) |
Definition at line 86 of file product_element_matrix_provider.h.
|
virtualdefault |
virtual destructor
ProductElementMatrixProvider< SCALAR >::ElemMat projects::dpg::ProductElementMatrixProvider< SCALAR >::Eval | ( | const lf::mesh::Entity & | cell | ) |
main routine for the computation of element matrices
cell | refernce to the cell for which the element matrix should be computed |
Definition at line 133 of file product_element_matrix_provider.h.
|
inlinevirtual |
All cells are considered active in the default implementation.
This method is meant to be overloaded if assembly should be restricted to a subset of cells.
Definition at line 101 of file product_element_matrix_provider.h.
|
delete |
|
delete |
|
private |
shared pointer to the test (product) finite element space
Definition at line 118 of file product_element_matrix_provider.h.
|
private |
shared pointer to the trial (product) finite element space
Definition at line 116 of file product_element_matrix_provider.h.
|
private |
vector of pointers to providers that provide "building block" element matrices
Definition at line 121 of file product_element_matrix_provider.h.