Base class to calculate element matrices for the Identity, for both scalar and matrix formulas. More...

#include <bf_identity.hh>

Inheritance diagram for hp2Dedge::IdentityBase< F, G >:
hp2D::BilinearFormHelper_1_1< Real, typename concepts::Realtype< Real >::type >

Public Types

typedef concepts::Combtype< F, G >::type value_type
 

Public Member Functions

concepts::RCP< concepts::SharedJacobianAdj< 2 > > data () const
 Gets the pointer to the shared data. More...
 
void data (const concepts::RCP< concepts::SharedJacobianAdj< 2 > > d)
 Set the pointer to the shared data. More...
 
 IdentityBase (const concepts::ElementFormulaContainer< concepts::Mapping< G, 2 > > frm, bool all=false)
 
 IdentityBase (const concepts::ElementFormulaContainer< F > frm, bool all=false)
 Constructor. More...
 

Protected Member Functions

bool assemble_ (const 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
 Compute the intermediate data for element matrix computation. More...
 

Protected Attributes

bool all_
 Parameter for the sum factorisation. More...
 
concepts::ElementFormulaContainer< Real > frm_
 Element formula. More...
 
concepts::ElementFormulaContainer< concepts::Mapping< typename concepts::Realtype< Real >::type, 2 > > frmM_
 Matrix element formula. More...
 
concepts::Array< concepts::Mapping< typename concepts::Realtype< Real >::type, 2 > > intermediateMatrix_
 Intermediate matrix. More...
 
concepts::Array< Real > intermediateValue_
 Intermediate value. More...
 

Private Member Functions

void computeadjJ_adjJT_rank1_ (concepts::Array< concepts::Mapping< Real, 2 > > &intermediateMatrix, const int i, const int j) const
 Computes the either adj(J)*adj(J)^T or in the case of partial derivatives (i > NONE, j > NONE) the rank-1 product of j-th column of adj(J) with i-th row of adj(J)^T. More...
 
void computeJacobianMatrix_ (const BaseQuad< Real > &elm, concepts::Array< concepts::Mapping< Real, 2 > > &J, concepts::Array< Real > &detJ_inv) const
 Compute the Jacobian matrix and the inverse of its determinant on each quadrature point. More...
 

Private Attributes

concepts::RCP< concepts::SharedJacobianAdj< 2 > > sharedData_
 Shared data for vectorial bilinear forms. More...
 

Detailed Description

template<class F = Real, class G = typename concepts::Realtype<F>::type>
class hp2Dedge::IdentityBase< F, G >

Base class to calculate element matrices for the Identity, for both scalar and matrix formulas.

This class is inspired by hp2D::LaplaceBase.

Author
Vinh Tho Ma, 2016

Definition at line 62 of file bf_identity.hh.

Member Typedef Documentation

◆ value_type

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

Definition at line 65 of file bf_identity.hh.

Constructor & Destructor Documentation

◆ IdentityBase() [1/2]

template<class F = Real, class G = typename concepts::Realtype<F>::type>
hp2Dedge::IdentityBase< F, G >::IdentityBase ( const concepts::ElementFormulaContainer< F >  frm,
bool  all = false 
)

Constructor.

The formula frm is evaluated in each quadrature point.

◆ IdentityBase() [2/2]

template<class F = Real, class G = typename concepts::Realtype<F>::type>
hp2Dedge::IdentityBase< F, G >::IdentityBase ( const concepts::ElementFormulaContainer< concepts::Mapping< G, 2 > >  frm,
bool  all = false 
)

Member Function Documentation

◆ assemble_()

template<class F = Real, class G = typename concepts::Realtype<F>::type>
bool hp2Dedge::IdentityBase< F, G >::assemble_ ( const Quad< Real > *  elmX,
const Quad< Real > *  elmY,
concepts::ElementMatrix< value_type > &  em 
) const
protected

◆ computeadjJ_adjJT_rank1_()

void hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::computeadjJ_adjJT_rank1_ ( concepts::Array< concepts::Mapping< Real, 2 > > &  intermediateMatrix,
const int  i,
const int  j 
) const
privateinherited

Computes the either adj(J)*adj(J)^T or in the case of partial derivatives (i > NONE, j > NONE) the rank-1 product of j-th column of adj(J) with i-th row of adj(J)^T.

◆ computeIntermediate_()

void hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::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.

◆ computeJacobianMatrix_()

void hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::computeJacobianMatrix_ ( const BaseQuad< Real > &  elm,
concepts::Array< concepts::Mapping< Real, 2 > > &  J,
concepts::Array< Real > &  detJ_inv 
) const
privateinherited

Compute the Jacobian matrix and the inverse of its determinant on each quadrature point.

◆ data() [1/2]

concepts::RCP<concepts::SharedJacobianAdj<2> > hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::data ( ) const
inherited

Gets the pointer to the shared data.

◆ data() [2/2]

void hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::data ( const concepts::RCP< concepts::SharedJacobianAdj< 2 > >  d)
inherited

Set the pointer to the shared data.

Member Data Documentation

◆ all_

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

Parameter for the sum factorisation.

Definition at line 78 of file bf_identity.hh.

◆ frm_

concepts::ElementFormulaContainer<Real > hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::frm_
protectedinherited

Element formula.

Definition at line 193 of file bilinearFormHelper.hh.

◆ frmM_

concepts::ElementFormulaContainer<concepts::Mapping<typename concepts::Realtype< Real >::type ,2> > hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::frmM_
protectedinherited

Matrix element formula.

Definition at line 195 of file bilinearFormHelper.hh.

◆ intermediateMatrix_

concepts::Array<concepts::Mapping<typename concepts::Realtype< Real >::type ,2> > hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::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_

concepts::Array<Real > hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::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.

◆ sharedData_

concepts::RCP<concepts::SharedJacobianAdj<2> > hp2D::BilinearFormHelper_1_1< Real , typename concepts::Realtype< Real >::type >::sharedData_
privateinherited

Shared data for vectorial bilinear forms.

Definition at line 212 of file bilinearFormHelper.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich