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

Class to evaluate element matrices for DPG methods. More...

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

Public Types

using elem_mat_t = typename ProductElementMatrixProvider< SCALAR >::elem_mat_t
 internal type for element matrices More...
 
using ElemMat = typename ProductElementMatrixProvider< SCALAR >::ElemMat
 

Public Member Functions

 DpgElementMatrixProvider (const DpgElementMatrixProvider &)=delete
 standard constructors More...
 
 DpgElementMatrixProvider (DpgElementMatrixProvider &&) noexcept=default
 
DpgElementMatrixProvideroperator= (const DpgElementMatrixProvider &)=delete
 
DpgElementMatrixProvideroperator= (DpgElementMatrixProvider &&)=delete
 
 DpgElementMatrixProvider (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...
 
ElemMat Eval (const lf::mesh::Entity &cell)
 main routine for the computation of DPG element matrices More...
 
virtual ~DpgElementMatrixProvider ()=default
 

Private Attributes

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

Detailed Description

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

Class to evaluate element matrices for DPG methods.

Template Parameters
SCALARtype for the entries of the element matrix. Usually 'double'.
Note
This class complies with the type requirements for the template argument ENTITY_MATRIX_PROVIDER of the function lf::assemble::AssembleMatrixLocally().

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

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

The practical DPG method can be implemented by computing a DPG element matrix . 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 matrix boils down to

Definition at line 52 of file dpg_element_matrix_provider.h.

Member Typedef Documentation

◆ elem_mat_t

template<typename SCALAR >
using projects::dpg::DpgElementMatrixProvider< SCALAR >::elem_mat_t = typename ProductElementMatrixProvider<SCALAR>::elem_mat_t

internal type for element matrices

Definition at line 55 of file dpg_element_matrix_provider.h.

◆ ElemMat

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

Return type of the Eval() method

Definition at line 57 of file dpg_element_matrix_provider.h.

Constructor & Destructor Documentation

◆ DpgElementMatrixProvider() [1/3]

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

standard constructors

◆ DpgElementMatrixProvider() [2/3]

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

◆ DpgElementMatrixProvider() [3/3]

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

main constructor

Parameters
extendedStiffnessMatrixProviderevaluates the extended element stiffness matrix \( B \)
gramianProviderevaluates the local Gramian matrix \( G \)

Definition at line 72 of file dpg_element_matrix_provider.h.

◆ ~DpgElementMatrixProvider()

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

Member Function Documentation

◆ Eval()

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

main routine for the computation of DPG element matrices

Parameters
cellreference to the cell for which the DPG element matrix should be computed
Returns
a small dense, containing the DPG element matrix.

Definition at line 116 of file dpg_element_matrix_provider.h.

◆ isActive()

template<typename SCALAR >
virtual bool projects::dpg::DpgElementMatrixProvider< 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 86 of file dpg_element_matrix_provider.h.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ extendedStiffnessMatrixProvider_

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

A ProductElementMatrixProvider that evaluates the extended element stiffness matrix \(B\)

Definition at line 102 of file dpg_element_matrix_provider.h.

◆ gramianProvider_

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

A ProductElementMatrixProvider that evaluates the local Gramian \( G \)

Definition at line 105 of file dpg_element_matrix_provider.h.


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