Class documentation of Concepts

Loading...
Searching...
No Matches
hp2Dedge::GraduvMatrix< F > Class Template Referenceabstract

#include <bf_graduv.hh>

Inheritance diagram for hp2Dedge::GraduvMatrix< F >:
concepts::BilinearForm< F, G > hp2Dedge::GraduvBase< F, G > concepts::Cloneable concepts::OutputOperator hp2D::BilinearFormHelper_1_1< F, G >

Public Types

typedef concepts::ElementFormulaContainer< concepts::Mapping< F, 2 > > FrmE_Matrix
 
typedef concepts::Combtype< F, G >::type value_type
 

Public Member Functions

 GraduvMatrix (const FrmE_Matrix frm=FrmE_Matrix())
 
void operator() (const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const
 
void operator() (const hp2D::Quad< Real > &elmX, const Quad< Real > &elmY, concepts::ElementMatrix< F > &em) const
 
virtual GraduvMatrix< F > * clone () const
 
virtual void operator() (const Element< G > &elmX, const Element< G > &elmY, ElementMatrix< F > &em) const =0
 
virtual void operator() (const Element< G > &elmX, const Element< G > &elmY, ElementMatrix< F > &em, const ElementPair< G > &ep) const
 
void data (const concepts::RCP< concepts::SharedJacobianAdj< 2 > > d)
 Set the pointer to the shared data.
 
concepts::RCP< concepts::SharedJacobianAdj< 2 > > data () const
 Gets the pointer to the shared data.
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 
bool assemble_ (const hp2D::Quad< Real > *elmX, const Quad< Real > *elmY, concepts::ElementMatrix< value_type > &em) const
 
void computeIntermediate_ (const BaseQuad< Real > &elm, const int i=-1, const int j=-1) const
 

Protected Attributes

bool all_
 Parameter for the sum factorisation.
 
concepts::Array< F > intermediateValue_
 
concepts::Array< concepts::Mapping< G, 2 > > intermediateMatrix_
 
concepts::ElementFormulaContainer< F > frm_
 Element formula.
 
concepts::ElementFormulaContainer< concepts::Mapping< G, 2 > > frmM_
 Matrix element formula.
 

Detailed Description

template<class F = Real>
class hp2Dedge::GraduvMatrix< F >

A function class to calculate element matrices for the bilinear form

\[\int\limits_{K}(A(\underline{\xi})\underline{u})^\top\;\nabla{v}\;d\underline{\xi} = \int\limits_{\hat{K}}\underline{\hat{u}}^\top J^{-1}A(\underline{\xi})^{\top}J^{-\top}\;\nabla{\hat{v}}|\det J|\;d\underline{\hat{\xi}}\]

Definition at line 134 of file bf_graduv.hh.

Member Typedef Documentation

◆ FrmE_Matrix

template<class F = Real>
typedef concepts::ElementFormulaContainer<concepts::Mapping<F, 2> > hp2Dedge::GraduvMatrix< F >::FrmE_Matrix

Definition at line 139 of file bf_graduv.hh.

◆ value_type

template<class F = Real, class G = typename concepts::Realtype<F>::type>
typedef concepts::Combtype<F,G>::type hp2Dedge::GraduvBase< F, G >::value_type
inherited

Definition at line 66 of file bf_graduv.hh.

Constructor & Destructor Documentation

◆ ~GraduvMatrix()

template<class F = Real>
virtual hp2Dedge::GraduvMatrix< F >::~GraduvMatrix ( )
inlinevirtual

Definition at line 142 of file bf_graduv.hh.

Member Function Documentation

◆ clone()

template<class F = Real>
virtual GraduvMatrix< F > * hp2Dedge::GraduvMatrix< F >::clone ( ) const
inlinevirtual

Virtual constructor. Returns a pointer to a copy of itself. The caller is responsible to destroy this copy.

Implements concepts::BilinearForm< F, G >.

Definition at line 153 of file bf_graduv.hh.

◆ computeIntermediate_()

template<class F , class G = typename concepts::Realtype<F>::type>
void hp2D::BilinearFormHelper_1_1< F, G >::computeIntermediate_ ( const BaseQuad< Real > &  elm,
const int  i = -1,
const int  j = -1 
) const
protectedinherited

Compute the intermediate data for element matrix computation.

Parameters
iif i=0 or 1, then take only i-th column of Jacobian matrix (for test function)
jif j=0 or 1, then take only j-th column of Jacobian matrix (for trial function)

The Jacobian matrices have to been taken both full (i,j = -1) or both partial (i,j = 0 or 1).

Matrix formulas and complex valued scalar formulas are only implemented for full Jacobians.

◆ info()

template<class F = Real>
virtual std::ostream & hp2Dedge::GraduvMatrix< F >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::BilinearForm< F, G >.

◆ operator()() [1/2]

template<class F , class G = typename Realtype<F>::type>
virtual void concepts::BilinearForm< F, G >::operator() ( const Element< G > &  elmX,
const Element< G > &  elmY,
ElementMatrix< F > &  em 
) const
pure virtualinherited

Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em.

Postcondition
The returned matrix em has the correct size.
Parameters
elmXLeft element (test functions)
elmYRight element (trial functions)
emReturn element matrix

Implemented in vectorial::BilinearForm< F, G >, concepts::BilinearFormLiCo< F, G >, concepts::BilinearFormContainer< F, G >, concepts::BilinearF_Sum< F, H, J, G >, and concepts::BilinearF_W< F, H, J, G >.

◆ operator()() [2/2]

template<class F , class G = typename Realtype<F>::type>
virtual void concepts::BilinearForm< F, G >::operator() ( const Element< G > &  elmX,
const Element< G > &  elmY,
ElementMatrix< F > &  em,
const ElementPair< G > &  ep 
) const
inlinevirtualinherited

Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em. If this method is not reimplemented in a derived class, the default behaviour is to call the application operator without ep.

Postcondition
The returned matrix em has the correct size.
Parameters
elmXLeft element
elmYRight element
emReturn element matrix
epElement pair holding more information on the pair elmX and elmY

Reimplemented in vectorial::BilinearForm< F, G >.

Definition at line 57 of file bilinearForm.hh.

Member Data Documentation

◆ all_

template<class F = Real, class G = typename concepts::Realtype<F>::type>
bool hp2Dedge::GraduvBase< F, G >::all_
protectedinherited

Parameter for the sum factorisation.

Definition at line 79 of file bf_graduv.hh.

◆ frm_

template<class F , class G = typename concepts::Realtype<F>::type>
concepts::ElementFormulaContainer<F> hp2D::BilinearFormHelper_1_1< F, G >::frm_
protectedinherited

Element formula.

Definition at line 193 of file bilinearFormHelper.hh.

◆ frmM_

template<class F , class G = typename concepts::Realtype<F>::type>
concepts::ElementFormulaContainer<concepts::Mapping<G,2> > hp2D::BilinearFormHelper_1_1< F, G >::frmM_
protectedinherited

Matrix element formula.

Definition at line 195 of file bilinearFormHelper.hh.

◆ intermediateMatrix_

template<class F , class G = typename concepts::Realtype<F>::type>
concepts::Array<concepts::Mapping<G,2> > hp2D::BilinearFormHelper_1_1< F, G >::intermediateMatrix_
mutableprotectedinherited

Intermediate matrix

In case of a scalar formula:

\[\mbox{adj}(J) \mbox{adj}(J)^\top\]

In case of a matrix formula $M$:

\[\mbox{adj}(J) M \mbox{adj}(J)^\top\]

In case of partial Jacobian:

\[\mbox{adj}(J)_{\cdot,j} (\mbox{adj}(J)_{\cdot,i})^\top\]

Definition at line 191 of file bilinearFormHelper.hh.

◆ intermediateValue_

template<class F , class G = typename concepts::Realtype<F>::type>
concepts::Array<F> hp2D::BilinearFormHelper_1_1< F, G >::intermediateValue_
mutableprotectedinherited

Intermediate value

In case of a scalar formula:

\[\frac{f(F_K(\xi))}{\det J}\]

In case of a matrix formula:

\[\frac{1}{\det J}\]

Definition at line 179 of file bilinearFormHelper.hh.


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