LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Public Member Functions | Private Attributes | List of all members
projects::dpg::ProductElementVectorProviderBuilder< SCALAR > Class Template Reference

Builder class to build a ProductElementVectorProvider. More...

#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/dpg/product_element_vector_provider_builder.h>

Public Member Functions

 ProductElementVectorProviderBuilder (const ProductElementVectorProviderBuilder &)=delete
 standard constructor More...
 
 ProductElementVectorProviderBuilder (ProductElementVectorProviderBuilder &&) noexcept=delete
 
ProductElementVectorProviderBuilderoperator= (const ProductElementVectorProviderBuilder &)=delete
 
ProductElementVectorProviderBuilderoperator= (ProductElementVectorProviderBuilder &&)=delete
 
 ProductElementVectorProviderBuilder (std::shared_ptr< ProductUniformFESpace< SCALAR > > fe_space_test)
 main contructor, construct a new builder More...
 
template<typename FUNCTOR >
ProductElementVectorProviderBuilderAddLoadElementVectorProvider (size_type test_component, FUNCTOR f)
 Adds a linear form \( l_k \) to \( l \) representing a simple load linear form. More...
 
std::shared_ptr< ProductElementVectorProvider< SCALAR > > Build ()
 Build the ProductElementVectorProvider based on the provided linear forms. More...
 
 ~ProductElementVectorProviderBuilder ()=default
 default destructor More...
 
template<typename FUNCTOR >
ProductElementVectorProviderBuilder< SCALAR > & AddLoadElementVectorProvider (size_type test_component, FUNCTOR f)
 

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...
 

Detailed Description

template<typename SCALAR>
class projects::dpg::ProductElementVectorProviderBuilder< SCALAR >

Builder class to build a ProductElementVectorProvider.

Template Parameters
SCLARtype 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.

Constructor & Destructor Documentation

◆ ProductElementVectorProviderBuilder() [1/3]

template<typename SCALAR >
projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::ProductElementVectorProviderBuilder ( const ProductElementVectorProviderBuilder< SCALAR > &  )
delete

standard constructor

◆ ProductElementVectorProviderBuilder() [2/3]

template<typename SCALAR >
projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::ProductElementVectorProviderBuilder ( ProductElementVectorProviderBuilder< SCALAR > &&  )
deletenoexcept

◆ ProductElementVectorProviderBuilder() [3/3]

template<typename SCALAR >
projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::ProductElementVectorProviderBuilder ( std::shared_ptr< ProductUniformFESpace< SCALAR > >  fe_space_test)
inlineexplicit

main contructor, construct a new builder

Parameters
fe_space_testcollection of specifications about the (product) space \( V \)

Definition at line 46 of file product_element_vector_provider_builder.h.

◆ ~ProductElementVectorProviderBuilder()

default destructor

Member Function Documentation

◆ AddLoadElementVectorProvider() [1/2]

template<typename SCALAR >
template<typename FUNCTOR >
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.

Parameters
test_componentindex of the component \( v \) of \( l_k \)
fmesh function for the scalar valued source function \( f \)
Template Parameters
FUNCTORsee 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().

◆ AddLoadElementVectorProvider() [2/2]

template<typename SCALAR >
template<typename FUNCTOR >
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.

◆ Build()

template<typename SCALAR >
std::shared_ptr< ProductElementVectorProvider< SCALAR > > projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::Build

◆ operator=() [1/2]

template<typename SCALAR >
ProductElementVectorProviderBuilder & projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::operator= ( const ProductElementVectorProviderBuilder< SCALAR > &  )
delete

◆ operator=() [2/2]

template<typename SCALAR >
ProductElementVectorProviderBuilder & projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::operator= ( ProductElementVectorProviderBuilder< SCALAR > &&  )
delete

Member Data Documentation

◆ fe_space_test_

template<typename SCALAR >
std::shared_ptr<ProductUniformFESpace<SCALAR> > projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::fe_space_test_
private

collection of specifications for the test space

Definition at line 83 of file product_element_vector_provider_builder.h.

◆ subproviders_

template<typename SCALAR >
std::vector<std::shared_ptr<SubElementVectorProvider<SCALAR> > > projects::dpg::ProductElementVectorProviderBuilder< SCALAR >::subproviders_
private

vector of Element Vector Providers representing already added linear forms

Definition at line 86 of file product_element_vector_provider_builder.h.


The documentation for this class was generated from the following file: