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

Class to evaluate element vectors of DPG methods. More...

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

Public Types

using elem_vec_t = typename ProductElementVectorProvider< SCALAR >::elem_vec_t
 internal type for element vectors More...
 
using ElemVec = typename ProductElementVectorProvider< SCALAR >::ElemVec
 Return type of the Eval() method. More...
 
using ElemMat = typename ProductElementMatrixProvider< SCALAR >::ElemMat
 return type of the Eval() method of the ProductElementMatrixProvider class More...
 

Public Member Functions

 DpgElementVectorProvider (const DpgElementVectorProvider &)=delete
 standard constructors More...
 
 DpgElementVectorProvider (DpgElementVectorProvider &&) noexcept=default
 
DpgElementVectorProvideroperator= (const DpgElementVectorProvider &)=delete
 
DpgElementVectorProvideroperator= (DpgElementVectorProvider &&)=delete
 
 DpgElementVectorProvider (std::shared_ptr< ProductElementVectorProvider< SCALAR > > extendedLoadVectorProvider, std::shared_ptr< ProductElementMatrixProvider< SCALAR > > extendedStiffnessMatrixProvider, std::shared_ptr< ProductElementMatrixProvider< SCALAR > > gramianProvider)
 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 DPG element vectors More...
 
virtual ~DpgElementVectorProvider ()=default
 

Private Attributes

std::shared_ptr< ProductElementVectorProvider< SCALAR > > extendedLoadVectorProvider_
 
std::shared_ptr< ProductElementMatrixProvider< SCALAR > > extendedStiffnessMatrixProvider_
 
std::shared_ptr< ProductElementMatrixProvider< SCALAR > > gramianProvider_
 

Detailed Description

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

Class to evaluate element vectors of DPG methods.

Template Parameters
SCALARtype for the entries of the element matrix. Usually 'double'.
Note
This interface class complies with the requirements for the template parameter ELEM_VEC_COMP of the function lf::assemble::AssembleVectorLocally().

This class evaluates the DPG element vector associated to a practical DPG method

In an abstract setting to evaluate the DPG element vector the following ingredients are needed

The practical DPG method can be implemented by computing a DPG element vector. If \( \{ b^1_u \dots b^{Q_U}_u \} \) denote the local shape functions of \( U_h \) and \( \{ b^2_v \dots b^{Q_V}_v \} \) denote the local shape functiosn of \( V^R \) on an elment \( K \), the computation of the DPG element vector boils down to

Definition at line 56 of file dpg_element_vector_provider.h.

Member Typedef Documentation

◆ elem_vec_t

template<typename SCALAR >
using projects::dpg::DpgElementVectorProvider< SCALAR >::elem_vec_t = typename ProductElementVectorProvider<SCALAR>::elem_vec_t

internal type for element vectors

Definition at line 59 of file dpg_element_vector_provider.h.

◆ ElemMat

template<typename SCALAR >
using projects::dpg::DpgElementVectorProvider< SCALAR >::ElemMat = typename ProductElementMatrixProvider<SCALAR>::ElemMat

return type of the Eval() method of the ProductElementMatrixProvider class

Definition at line 64 of file dpg_element_vector_provider.h.

◆ ElemVec

template<typename SCALAR >
using projects::dpg::DpgElementVectorProvider< SCALAR >::ElemVec = typename ProductElementVectorProvider<SCALAR>::ElemVec

Return type of the Eval() method.

Definition at line 61 of file dpg_element_vector_provider.h.

Constructor & Destructor Documentation

◆ DpgElementVectorProvider() [1/3]

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

standard constructors

◆ DpgElementVectorProvider() [2/3]

template<typename SCALAR >
projects::dpg::DpgElementVectorProvider< SCALAR >::DpgElementVectorProvider ( DpgElementVectorProvider< SCALAR > &&  )
defaultnoexcept

◆ DpgElementVectorProvider() [3/3]

template<typename SCALAR >
projects::dpg::DpgElementVectorProvider< SCALAR >::DpgElementVectorProvider ( std::shared_ptr< ProductElementVectorProvider< SCALAR > >  extendedLoadVectorProvider,
std::shared_ptr< ProductElementMatrixProvider< SCALAR > >  extendedStiffnessMatrixProvider,
std::shared_ptr< ProductElementMatrixProvider< SCALAR > >  gramianProvider 
)
inline

main constructor

Parameters
extendedLoadVectorProviderevaluates the extended element load vector \( l \)
extendedStiffnessMatrixProviderevaluates the extended element stiffness matrix \(B \)
gramianProviderevaluates the local Gramian \( G \)

Definition at line 81 of file dpg_element_vector_provider.h.

◆ ~DpgElementVectorProvider()

template<typename SCALAR >
virtual projects::dpg::DpgElementVectorProvider< SCALAR >::~DpgElementVectorProvider ( )
virtualdefault

Member Function Documentation

◆ Eval()

template<typename SCALAR >
DpgElementVectorProvider< SCALAR >::ElemVec projects::dpg::DpgElementVectorProvider< SCALAR >::Eval ( const lf::mesh::Entity cell)

main routine for the computation of DPG element vectors

Parameters
cellrefernce to the cell for which the DPG element vector should be computed
Returns
a small vector, containing the DPG element vector.

Definition at line 132 of file dpg_element_vector_provider.h.

◆ isActive()

template<typename SCALAR >
virtual bool projects::dpg::DpgElementVectorProvider< SCALAR >::isActive ( const lf::mesh::Entity )
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 98 of file dpg_element_vector_provider.h.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ extendedLoadVectorProvider_

template<typename SCALAR >
std::shared_ptr<ProductElementVectorProvider<SCALAR> > projects::dpg::DpgElementVectorProvider< SCALAR >::extendedLoadVectorProvider_
private

A ProductElementVectorProvider, that evaluates the extended load vector l

Definition at line 114 of file dpg_element_vector_provider.h.

◆ extendedStiffnessMatrixProvider_

template<typename SCALAR >
std::shared_ptr<ProductElementMatrixProvider<SCALAR> > projects::dpg::DpgElementVectorProvider< SCALAR >::extendedStiffnessMatrixProvider_
private

A ProductElementMatrixProvider, that evaluates the extended element stiffness matrix B

Definition at line 118 of file dpg_element_vector_provider.h.

◆ gramianProvider_

template<typename SCALAR >
std::shared_ptr<ProductElementMatrixProvider<SCALAR> > projects::dpg::DpgElementVectorProvider< SCALAR >::gramianProvider_
private

A ProductElementMatrixProvider, that evaluates the local Gramian G

Definition at line 120 of file dpg_element_vector_provider.h.


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