LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Class providing element vectors associated with linear forms on cartesian/product spaces. More...
#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/dpg/product_element_vector_provider.h>
Public Types | |
using | elem_vec_t = typename SubElementVectorProvider< SCALAR >::elem_vec_t |
internal type for element vectors More... | |
using | ElemVec = typename SubElementVectorProvider< SCALAR >::ElemVec |
Public Member Functions | |
ProductElementVectorProvider (const ProductElementVectorProvider &)=delete | |
Standard constructors. More... | |
ProductElementVectorProvider (ProductElementVectorProvider &&) noexcept=default | |
ProductElementVectorProvider & | operator= (const ProductElementVectorProvider &)=delete |
ProductElementVectorProvider & | operator= (ProductElementVectorProvider &&)=delete |
ProductElementVectorProvider (std::shared_ptr< ProductUniformFESpace< SCALAR > > fe_space_test, std::vector< std::shared_ptr< SubElementVectorProvider< SCALAR > > > subproviders) | |
main constructor More... | |
virtual bool | isActive (const lf::mesh::Entity &) |
All cells are considered active in the default implementation. More... | |
ElemVec | Eval (const lf::mesh::Entity &cell) |
main routine for the computation of element vectors More... | |
virtual | ~ProductElementVectorProvider ()=default |
virtual destructor More... | |
Private Attributes | |
std::shared_ptr< ProductUniformFESpace< SCALAR > > | fe_space_test_ |
std::vector< std::shared_ptr< SubElementVectorProvider< SCALAR > > > | subproviders_ |
Class providing element vectors associated with linear forms on cartesian/product spaces.
SCALAR | type for the entries of the element matrices. Ususally 'double' |
ELEM_VEC_COMP
of the function AssembleVectorLocally().This class provides element vectors associated to linar forms \( l: V \rightarrow \mathbb R \) on a product space (c.f. ProductUniformFEDofHandler, ProductUniformFESpace)
\[ V = V_0 \times V_1 \times \dots \times V_{m-1} \]
that has the following structure
\[ l((v_1, \dots v_{m-1})) = \sum_{k} l_k(v_{j_k}) \]
with
\[ l_k : V_{j_k} \rightarrow \mathbb{R} \]
The evaluation of element vectors for such "building block" linear forms \( l_k \) is performed by means of the SubElementVectorProvider interface.
This class takes a vector of such SubElementVectorProviders in its constructor and builds the element vector for the bilinear form \( l \) by stacking together the sub vectors (using the rules of local dof ordering specified in ProductUniformFEDofHandler).
Definition at line 59 of file product_element_vector_provider.h.
using projects::dpg::ProductElementVectorProvider< SCALAR >::elem_vec_t = typename SubElementVectorProvider<SCALAR>::elem_vec_t |
internal type for element vectors
Definition at line 62 of file product_element_vector_provider.h.
using projects::dpg::ProductElementVectorProvider< SCALAR >::ElemVec = typename SubElementVectorProvider<SCALAR>::ElemVec |
Return type of the Eval() method
Definition at line 64 of file product_element_vector_provider.h.
|
delete |
Standard constructors.
|
defaultnoexcept |
|
inline |
main constructor
fe_space_test | the product test finite element space \( V \) of the linear form |
subproviders | a vector of SubElementVectorProviders, that evaluate element vectors associated to the "building block" liinear forms \( l_k \) |
Definition at line 83 of file product_element_vector_provider.h.
|
virtualdefault |
virtual destructor
ProductElementVectorProvider< SCALAR >::ElemVec projects::dpg::ProductElementVectorProvider< SCALAR >::Eval | ( | const lf::mesh::Entity & | cell | ) |
main routine for the computation of element vectors
cell | refernce to the cell for which the element vector should be computed |
Definition at line 125 of file product_element_vector_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 96 of file product_element_vector_provider.h.
|
delete |
|
delete |
|
private |
shared pointer to the test (product) finite element space
Definition at line 111 of file product_element_vector_provider.h.
|
private |
vector of pointers to providers that provide "building block" element vectors
Definition at line 114 of file product_element_vector_provider.h.