LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Builder class to build a ProductElementVectorProvider. More...
#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/dpg/product_element_vector_provider_builder.h>
Private Attributes | |
std::shared_ptr< ProductUniformFESpace< SCALAR > > | fe_space_test_ |
collection of specifications for the test space More... | |
std::vector< std::shared_ptr< SubElementVectorProvider< SCALAR > > > | subproviders_ |
vector of Element Vector Providers representing already added linear forms More... | |
Builder class to build a ProductElementVectorProvider.
SCLAR | type of entries of the element vectors. Fieldtype such as double. |
This class can be used to construct a ProductElementVectorProvider on a product space
\[ V = V_0 \times V_1 \times \dots \times V_{m-1} \]
passed in the constructor. Methods are provided to add several linear forms
\[ l_k : V_{j_k} \rightarrow \mathbb{R} \]
on a specified component of the space.
the constructed ProductElementVectorProvider evalautes element vectors of the linear form \( l: V \rightarrow \mathbb{R} \) given by
\[ l((v_1, \dots v_{m-1})) = \sum_{k} l_k(v_{j_k}) \]
Definition at line 29 of file product_element_vector_provider_builder.h.
|
delete |
standard constructor
|
deletenoexcept |
|
inlineexplicit |
main contructor, construct a new builder
fe_space_test | collection of specifications about the (product) space \( V \) |
Definition at line 46 of file product_element_vector_provider_builder.h.
|
default |
default destructor
ProductElementVectorProviderBuilder & projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::AddLoadElementVectorProvider | ( | size_type | test_component, |
FUNCTOR | f | ||
) |
Adds a linear form \( l_k \) to \( l \) representing a simple load linear form.
test_component | index of the component \( v \) of \( l_k \) |
f | mesh function for the scalar valued source function \( f \) |
FUNCTOR | see the type requirements of the template parameter FUNCTOR of the LoadElementVectorProvider class. |
The (local) added linear form \( l_k\) is
\[ v \mapsto \int_K f(\mathbf{x})\,v\,\mathrm{d}\mathbf{x}\;, \]
For further information about the added added linear form \( l_k \) see the documentation of LoadElementVectorProvider
Referenced by projects::dpg::test::TestConververgencePrimalDPGAdaptedNormConvectionDiffusionDirichletBVP(), and projects::dpg::test::TestConververgencePrimalDPGConvectionDiffusionDirichletBVP().
ProductElementVectorProviderBuilder< SCALAR > & projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::AddLoadElementVectorProvider | ( | size_type | test_component, |
FUNCTOR | f | ||
) |
Definition at line 92 of file product_element_vector_provider_builder.h.
std::shared_ptr< ProductElementVectorProvider< SCALAR > > projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::Build |
Build the ProductElementVectorProvider based on the provided linear forms.
Definition at line 102 of file product_element_vector_provider_builder.h.
Referenced by projects::dpg::test::TestConververgencePrimalDPGAdaptedNormConvectionDiffusionDirichletBVP(), and projects::dpg::test::TestConververgencePrimalDPGConvectionDiffusionDirichletBVP().
|
delete |
|
delete |
|
private |
collection of specifications for the test space
Definition at line 83 of file product_element_vector_provider_builder.h.
|
private |
vector of Element Vector Providers representing already added linear forms
Definition at line 86 of file product_element_vector_provider_builder.h.