LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Interface class providing sub element matrices associated with bilinear forms between components of Cartesian product spaces. More...
#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/dpg/sub_element_matrix_provider.h>
Public Types | |
using | size_type = lf::uscalfe::size_type |
using | elem_mat_t = Eigen::Matrix< SCALAR, Eigen::Dynamic, Eigen::Dynamic > |
internal type for element matrices More... | |
using | ElemMat = elem_mat_t |
Public Member Functions | |
SubElementMatrixProvider ()=default | |
virtual | ~SubElementMatrixProvider ()=default |
SubElementMatrixProvider (const SubElementMatrixProvider &)=delete | |
standard constructors More... | |
SubElementMatrixProvider (SubElementMatrixProvider &&) noexcept=default | |
SubElementMatrixProvider & | operator= (const SubElementMatrixProvider &)=delete |
SubElementMatrixProvider & | operator= (SubElementMatrixProvider &&)=delete |
virtual bool | isActive (const lf::mesh::Entity &) |
All cells are considered active in the default implementation. More... | |
virtual ElemMat | Eval (const lf::mesh::Entity &cell)=0 |
main routine for the computation of (sub) element matrices More... | |
virtual size_type | TrialComponent () const =0 |
returns the index of the trial space component \( u_{i_k} \) which is the trial space for the bilinear form \( b_k \) More... | |
virtual size_type | TestComponent () const =0 |
returns the index of the test space component \( v_{j_k} \) which is the test space for the bilinear form \( b_k \) More... | |
Interface class providing sub element matrices associated with bilinear forms between components of Cartesian product spaces.
SCALAR | type for the entries of the element matrices. Ususally 'double' |
This class provides sub element matrices used to construct element matrices associated to bilinear forms \( b: U \times V \rightarrow \mathbb{R} \) between two product spaces (c.f. ProductUniformFEDofHandler, ProductUniformFESpace)
\[ U = U_0 \times U_1 \times \dots \times U_{n-1} \]
\[ V = V_0 \times V_1 \times \dots \times V_{m-1} \]
that have the following structure
\[ b((u_1, \dots, u_{n-1}),(v_1, \dots v_{m-1})) = \sum_{k} b_k(u_{i_k},v_{j_k}) \]
with
\[ b_k : U_{i_k} \times V_{j_k} \rightarrow \mathbb{R} \]
This class allows the evaluation of element matries associated to such "building block" bilinear forms \( b_k \) and provides information about the occuring components \( u_{i_k}, v_{j_k} \). Using this information, the evaluated element matrices are used as sub matrices to construct the element matrices associated to the bilinear form \( b \) in the class ProductElementMatrixProvider.
Definition at line 55 of file sub_element_matrix_provider.h.
using projects::dpg::SubElementMatrixProvider< SCALAR >::elem_mat_t = Eigen::Matrix<SCALAR, Eigen::Dynamic, Eigen::Dynamic> |
internal type for element matrices
Definition at line 59 of file sub_element_matrix_provider.h.
using projects::dpg::SubElementMatrixProvider< SCALAR >::ElemMat = elem_mat_t |
Return type of the Eval() method
Definition at line 61 of file sub_element_matrix_provider.h.
using projects::dpg::SubElementMatrixProvider< SCALAR >::size_type = lf::uscalfe::size_type |
Definition at line 57 of file sub_element_matrix_provider.h.
|
default |
|
virtualdefault |
|
delete |
standard constructors
|
defaultnoexcept |
|
pure virtual |
main routine for the computation of (sub) element matrices
cell | refernce to the cell for which the element matrix should be computed |
Implemented in projects::dpg::DiffusionElementMatrixProvider< SCALAR, DIFF_COEFF >, projects::dpg::ReactionElementMatrixProvider< SCALAR, REACTION_COEFF >, projects::dpg::ConvectionElementMatrixProvider< SCALAR, CONVECTION_COEFF_1, CONVECTION_COEFF_2 >, projects::dpg::FluxElementMatrixProvider< SCALAR, DIFF_COEFF >, and projects::dpg::TraceElementMatrixProvider< SCALAR, COEFF >.
|
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 78 of file sub_element_matrix_provider.h.
|
delete |
|
delete |
|
pure virtual |
returns the index of the test space component \( v_{j_k} \) which is the test space for the bilinear form \( b_k \)
Implemented in projects::dpg::DiffusionElementMatrixProvider< SCALAR, DIFF_COEFF >, projects::dpg::ReactionElementMatrixProvider< SCALAR, REACTION_COEFF >, projects::dpg::ConvectionElementMatrixProvider< SCALAR, CONVECTION_COEFF_1, CONVECTION_COEFF_2 >, projects::dpg::FluxElementMatrixProvider< SCALAR, DIFF_COEFF >, and projects::dpg::TraceElementMatrixProvider< SCALAR, COEFF >.
|
pure virtual |
returns the index of the trial space component \( u_{i_k} \) which is the trial space for the bilinear form \( b_k \)
Implemented in projects::dpg::DiffusionElementMatrixProvider< SCALAR, DIFF_COEFF >, projects::dpg::ReactionElementMatrixProvider< SCALAR, REACTION_COEFF >, projects::dpg::ConvectionElementMatrixProvider< SCALAR, CONVECTION_COEFF_1, CONVECTION_COEFF_2 >, projects::dpg::FluxElementMatrixProvider< SCALAR, DIFF_COEFF >, and projects::dpg::TraceElementMatrixProvider< SCALAR, COEFF >.